49 lines
1.7 KiB
EmacsLisp
49 lines
1.7 KiB
EmacsLisp
(use-package js2-mode
|
|
:mode "\\.js$"
|
|
:interpreter "node"
|
|
:config
|
|
(progn
|
|
(setq-default js2-show-parse-errors nil)
|
|
(setq-default js2-global-externs '("module" "require" "buster" "sinon" "assert"
|
|
"refute" "setTimeout" "clearTimeout"
|
|
"setInterval" "clearInterval" "location"
|
|
"__dirname" "console" "JSON" "jQuery" "$"
|
|
;; Launchbar API
|
|
"LaunchBar" "File" "Action" "HTTP" "include"))
|
|
|
|
(after "emr" (use-package js2-refactor))
|
|
|
|
(use-package tern
|
|
:commands tern-mode
|
|
;; replace auto-complete with tern-ac-complete only in js-mode
|
|
:init
|
|
(progn
|
|
(add-hook 'js2-mode-hook 'tern-mode)
|
|
(after "auto-complete" (add-hook 'js2-mode-hook 'tern-ac-setup)))
|
|
:config
|
|
(progn
|
|
(after "auto-complete"
|
|
(use-package tern-auto-complete
|
|
:config
|
|
(progn
|
|
(setq tern-ac-on-dot nil)
|
|
(bind 'insert js2-mode-map [remap auto-complete] 'tern-ac-complete)
|
|
(bind 'motion js2-mode-map "gd" 'tern-find-definition))))
|
|
|
|
(after "company"
|
|
(use-package company-tern
|
|
:config
|
|
(company--backend-on 'js2-mode-hook 'company-tern)
|
|
;; (setq company-tern-meta-as-single-line t)
|
|
;; (setq company-tern-property-marker "")
|
|
;; (setq company-tooltip-align-annotations t)
|
|
))))))
|
|
|
|
(use-package json-mode
|
|
:mode (("\\.json\\'" . json-mode)
|
|
("\\.jshintrc\\'" . json-mode)))
|
|
|
|
|
|
|
|
(provide 'init-js)
|
|
;;; init-js.el ends here
|