diff options
author | Martin Polden <martin.polden@gmail.com> | 2014-06-23 09:57:08 +0200 |
---|---|---|
committer | Martin Polden <martin.polden@gmail.com> | 2014-06-23 09:57:08 +0200 |
commit | d17460d44ee6c533e04a00b1113ea3165ef72895 (patch) | |
tree | 635a91e92f2a79ecbf286cde640f7990293be50e /lisp/init-javascript.el | |
parent | 2b435d6c38dda0b5c6c51ddc24c59192d966036e (diff) |
Correct some filenames
Diffstat (limited to 'lisp/init-javascript.el')
-rw-r--r-- | lisp/init-javascript.el | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lisp/init-javascript.el b/lisp/init-javascript.el new file mode 100644 index 0000000..1611ed4 --- /dev/null +++ b/lisp/init-javascript.el @@ -0,0 +1,31 @@ +;; install packages +(require-package 'js2-mode) +(require-package 'json-mode) + +;; load js2-mode +(require 'js2-mode) +(add-to-list 'auto-mode-alist '("\\.js\\'" . js2-mode)) + +;; load json-mode +(require 'json-mode) +(add-to-list 'auto-mode-alist '("\\.json\\'" . json-mode)) + +;; prefer jq for reformatting json +(defun jq-reformat-region (begin end) + (interactive "r") + (if (executable-find "jq") + (shell-command-on-region + begin end "jq --monochrome-output --ascii-output ." (current-buffer) t) + (json-reformat-region begin end))) + +(defun jq-reformat () + (interactive) + (if (use-region-p) + (jq-reformat-region (region-beginning) (region-end)) + (jq-reformat-region (point-min) (point-max)))) + +(add-hook 'json-mode-hook + (lambda () + (define-key json-mode-map (kbd "C-c C-f") 'jq-reformat))) + +(provide 'init-javascript) |