First commit.
This commit is contained in:
112
lisp/modes/javascript.el
Normal file
112
lisp/modes/javascript.el
Normal file
@@ -0,0 +1,112 @@
|
||||
;;; javascript.el --- initializes JavaScript modes -*- lexical-binding: t; -*-
|
||||
;;; Commentary:
|
||||
;;; Code:
|
||||
|
||||
(defun user--javascript-mode-common-hook ()
|
||||
"JavaScript common mode hook."
|
||||
;; ;; Load CEDET
|
||||
;; (user--javascript-mode-cedet-hook)
|
||||
|
||||
;; (user/gnu-global-enable)
|
||||
|
||||
(flycheck-mode t)
|
||||
|
||||
;; (tern-mode t)
|
||||
)
|
||||
|
||||
|
||||
(defun user--javascript-mode-hook ()
|
||||
"JavaScript mode hook."
|
||||
(user--javascript-mode-common-hook))
|
||||
|
||||
|
||||
(defun user--inferior-js-mode-hook ()
|
||||
"Inferior JavaScript mode hook."
|
||||
;; Support ANSI colors.
|
||||
(ansi-color-for-comint-mode-on))
|
||||
|
||||
|
||||
(defun user--js2-mode-hook ()
|
||||
"JS2 mode hook."
|
||||
(user--javascript-mode-common-hook)
|
||||
;; Enable smart indentation
|
||||
(smart-tabs-mode t)
|
||||
;; Enable Flycheck
|
||||
(flycheck-mode t))
|
||||
|
||||
|
||||
;; (defun user--javascript-mode-cedet-hook ()
|
||||
;; "JavaScript CEDET support hook."
|
||||
;; (with-feature 'semantic/wisent/javascript
|
||||
;; (wisent-javascript-setup-parser)
|
||||
;; ;; (user--cedet-hook)
|
||||
;; ))
|
||||
|
||||
;;
|
||||
;;
|
||||
(use-package js
|
||||
:defer
|
||||
:hook ((javascript-mode-hook . user--javascript-mode-hook)
|
||||
(inferior-js-mode-hook . user--inferior-javascript-mode-hook)))
|
||||
|
||||
;; https://github.com/mooz/js2-mode
|
||||
;; Improved JavaScript editing mode for GNU Emacs
|
||||
(use-package js2-mode
|
||||
:defer
|
||||
:mode "\.[m]js$"
|
||||
;; :mode "\.ts$"
|
||||
:magic "#!/usr/bin/env node"
|
||||
:hook (js2-mode-hook . user--js2-mode-hook)
|
||||
:config
|
||||
(validate-setq
|
||||
;; ;; Configure indentation
|
||||
;; (setq js2-enter-indents-newline t)
|
||||
;; (setq js2-auto-indent-p t)
|
||||
;; Idle timeout before reparsing buffer
|
||||
js2-idle-timer-delay 0.5
|
||||
;; Disable error parsing in favor of Flycheck
|
||||
js2-strict-missing-semi-warning nil)
|
||||
|
||||
;; https://github.com/redguardtoo/js-comint
|
||||
;; js-comint will send the code from Emacs into node.js or rhino
|
||||
(use-package js-comint
|
||||
:disabled
|
||||
:config
|
||||
(validate-setq
|
||||
;; Set JavaScript inferior.
|
||||
inferior-js-program-command
|
||||
(cond
|
||||
((executable-find "js") (executable-find "js"))
|
||||
((executable-find "node")
|
||||
(concat (executable-find "node") " --interactive"))
|
||||
(t "java org.mozilla.javascript.tools.shell.Main")))
|
||||
|
||||
;; Workaround for Node.js prompt.
|
||||
(setenv "NODE_NO_READLINE" "1"))
|
||||
|
||||
;; https://github.com/prettier/prettier-emacs
|
||||
;; Minor mode to format JS code on file save
|
||||
(use-package prettier-js
|
||||
:disabled)
|
||||
|
||||
;; https://emacs-lsp.github.io/lsp-mode/page/lsp-typescript-javascript/
|
||||
(use-package lsp-javascript-typescript
|
||||
:disabled
|
||||
:if (executable-find "javascript-typescript-langserver")
|
||||
:hook (js2-mode-hook . lsp-javascript-typescript-enable))
|
||||
|
||||
;; https://github.com/torgeir/helm-js-codemod.el
|
||||
;; A helm interface for running js-codemod.el
|
||||
(use-package helm-js-codemod
|
||||
:disabled
|
||||
:if (executable-find "jscodeshift"))
|
||||
|
||||
;; https://github.com/js-emacs/xref-js2
|
||||
;; Jump to references/definitions using ag & js2-mode's AST in Emacs
|
||||
(use-package xref-js2
|
||||
:init
|
||||
(add-hook 'xref-backend-functions #'xref-js2-xref-backend nil t)))
|
||||
|
||||
|
||||
(provide 'modes/javascript)
|
||||
;;; javascript.el ends here
|
Reference in New Issue
Block a user