javascript: conform to v2 module format

This commit is contained in:
Henrik Lissner 2017-02-03 19:23:29 -05:00
parent 2b4da7edf5
commit 5dc174f41c
4 changed files with 75 additions and 55 deletions

View file

@ -1,4 +1,4 @@
;;; custom-screeps.el
;;; lang/javascript/+screeps.el
(defconst screeps-objects
'("ConstructionSite" "Creep" "Flag" "Game" "Memory" "Mineral" "Nuke"

View file

@ -1,7 +0,0 @@
;;; autoload.el --- description
;;;###autoload
(defun +js-fake-fun ())
(provide 'autoload)
;;; autoload.el ends here

View file

@ -1,21 +1,26 @@
;;; config.el
(config! js2-mode
(add-hook! '(tern-mode flycheck-mode highlight-indent-guides-mode))
;; NOTE Do indentation settings after editorconfig has done its thing
(add-hook! (setq js-switch-indent-offset js-indent-level))
;; lang/javascript/config.el
(use-package! js2-mode
:mode "\\.js$"
:interpreter "node"
:init
(setq js2-skip-preprocessor-directives t
js2-highlight-external-variables nil
js2-mode-show-parse-errors nil)
;;
(set! :repl nodejs-repl
:company-backends (tern)
:electric (?\} ?\) ?. "||" "&&")
:map (:localleader :nv ";" 'doom/append-semicolon)
:emr ((:v js2r-extract-function "extract function")
:config
(add-hook! '(tern-mode flycheck-mode highlight-indent-guides-mode))
;; Only way to conform switch-case indentation to editorconfig's config
(add-hook! (setq js-switch-indent-offset js-indent-level))
(map! :map js2-mode-map :localleader :nv ";" 'doom/append-semicolon)
(set! :repl nodejs-repl)
(set! :company-backends tern)
(set! :electric-chars ?\} ?\) ?.)
(set! :electric-words "||" "&&")
(set! :emr
(:v js2r-extract-function "extract function")
(:v js2r-extract-method "extract method")
(:v js2r-introduce-parameter "introduce parameter")
(:n js2r-localize-parameter "localize parameter")
@ -40,10 +45,17 @@
(:nv js2r-log-this "log this")
(:nv js2r-debug-this "debug this")
(:n js2r-forward-slurp "forward slurp")
(:n js2r-forward-barf "forward barf"))))
(:n js2r-forward-barf "forward barf")))
(config! coffee-mode
(setq-default coffee-indent-like-python-mode t))
(use-package! js2-refactor :after emr)
(use-package! company-tern :commands company-tern :after tern)
(use-package! jsx-mode :mode "\\.jsx$")
(use-package! coffee-mode
:mode "\\.coffee$"
:init (setq coffee-indent-like-python-mode t))
;;

View file

@ -1,13 +1,28 @@
;;; lang/js/packages.el
;; -*- no-byte-compile: t; -*-
;; lang/javascript/packages.el
(package! js2-mode :mode "\\.js$" :interpreter "node")
(package! js2-mode)
(package! jsx-mode)
(package! coffee-mode)
(package! tern)
(package! company-tern)
(package! js2-refactor)
(package! jsx-mode :mode "\\.jsx$")
(bootstrap! javascript
"Sets up NodeJS, the TrepanJS debugger."
(package! coffee-mode :mode "\\.coffee$")
:if-arch
(unless (and (executable-find "node")
(executable-find "npm"))
(sudo "pacman --needed --noconfirm -S nodejs npm"))
(package! tern :after js2-mode)
;; :if-deb
;; TODO
(package! company-tern :after js2-mode)
:if-macos
(unless (executable-find "node")
(sh "brew install node"))
(package! js2-refactor :after js2-mode)
:after
(unless (executable-find "tern")
(sh "npm -g install trepanjs tern")))