mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-01 12:17:25 -05:00
47 lines
1.2 KiB
EmacsLisp
47 lines
1.2 KiB
EmacsLisp
;;; lang/json/config.el -*- lexical-binding: t; -*-
|
|
|
|
(use-package! json-mode
|
|
:mode "\\.js\\(?:on\\|[hl]int\\(?:rc\\)?\\)\\'"
|
|
: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
|
|
:desc "Copy path" "p" #'json-mode-show-path
|
|
"t" #'json-toggle-boolean
|
|
"d" #'json-mode-kill-path
|
|
"x" #'json-nullify-sexp
|
|
"+" #'json-increment-number-at-point
|
|
"-" #'json-decrement-number-at-point
|
|
"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)
|
|
:defer t
|
|
:init
|
|
(map! :after json-mode
|
|
:map json-mode-map
|
|
:localleader
|
|
"s" #'counsel-jq))
|