feat(json): add treesit support

This commit is contained in:
Henrik Lissner
2025-05-22 19:53:10 +02:00
parent f5a1af4bf6
commit 7af7280f9e
3 changed files with 19 additions and 9 deletions

View File

@@ -2,16 +2,12 @@
(use-package! json-mode
:mode "\\.js\\(?:on\\|[hl]int\\(?:rc\\)?\\)\\'"
:init
(when (modulep! +lsp)
(add-hook 'json-mode-local-vars-hook #'lsp! 'append))
(when (modulep! +tree-sitter)
(add-hook! '(json-mode-local-vars-hook
jsonc-mode-local-vars-hook)
:append #'tree-sitter!))
:config
(set-electric! 'json-mode :chars '(?\n ?: ?{ ?}))
(when (modulep! +lsp)
(add-hook 'json-mode-local-vars-hook #'lsp! 'append))
(map! :after json-mode
:map json-mode-map
:localleader
@@ -24,6 +20,21 @@
"f" #'json-mode-beautify))
(use-package! json-ts-mode
:when (modulep! +tree-sitter)
:when (fboundp 'json-ts-mode) ; 29.1+ only
:defer t
:init
(set-tree-sitter! 'json-mode 'json-ts-mode
'((json :url "https://github.com/tree-sitter/tree-sitter-json"
:rev "v0.24.8")))
:config
;; HACK: Rely on `major-mode-remap-defaults'.
(cl-callf2 assq-delete-all 'json-ts-mode auto-mode-alist)
(when (modulep! +lsp)
(add-hook 'json-ts-mode-local-vars-hook #'lsp! 'append)))
(use-package! counsel-jq
:when (modulep! :completion ivy)