Created
July 31, 2017 08:46
-
-
Save guidoschmidt/edfc27b3b998db003e8e92efd7b9da12 to your computer and use it in GitHub Desktop.
Javascript & Web Development Setup for Emacs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;;; javascript-web.el --- Javascript & co. setup | |
;;; Commentary: | |
;; Setup web development tools | |
;;; Code: | |
;;; --- Javascript | |
(use-package indium | |
:ensure t | |
:config | |
(eval-when-compile | |
(add-hook 'js-mode-hook #'indium-interaction-mode))) | |
(use-package js2-refactor | |
:ensure t | |
:defer t | |
:config | |
(add-hook 'js2-mode-hook #'js2-refactor-mode) | |
(add-hook 'js-mode #'js2-refactor-mode) | |
(js2r-add-keybindings-with-prefix "C-c C-m")) | |
;;; --- JSON | |
(use-package json-mode | |
:ensure t | |
:defer t | |
:config | |
(setq js-indent-level 2)) | |
;;; --- Twig templates | |
(use-package twig-mode | |
:ensure t | |
:defer t) | |
;;; --- Typoscript | |
(use-package typoscript-mode | |
:ensure t | |
:defer t | |
:config | |
(add-to-list 'auto-mode-alist | |
'("\\.ts\\'" . typoscript-mode))) | |
;;; --- Vue.js | |
(use-package vue-mode | |
:ensure t | |
:defer t | |
:config | |
(use-package vue-html-mode :ensure t :defer t) | |
(setq mmm-submode-decoration-level 0)) | |
;;; --- JSX & React | |
(use-package rjsx-mode | |
:ensure t | |
:defer t | |
:config | |
(defun emmet/rjsx-mode-hook () | |
(setq-default emmet-expand-jsx-className? t) | |
(emmet-mode)) | |
(add-hook 'rjsx-mode-hook 'emmet/rjsx-mode-hook) | |
(setq-default rjsx-indent-level 2)) | |
;;; --- Elm | |
(use-package elm-mode | |
:ensure t | |
:defer t | |
:config | |
(add-hook 'elm-mode-hook #'elm-oracle-setup-completion) | |
(defun company/elm-mode-hook () | |
(add-to-list 'company-backends 'company-elm)) | |
(add-hook 'elm-mode-hook 'company/elm-mode-hook) | |
(custom-set-variables '(elm-format-on-save t))) | |
;;; --- Tern | |
(use-package tern | |
:ensure t | |
:init | |
(add-to-list | |
'load-path | |
"~/.nvm/versions/node/v8.1.2/lib/node_modules/tern/") | |
(autoload 'tern-mode "tern.el" nil t) | |
:config | |
(use-package company-tern | |
:ensure t | |
:defer t) | |
(defun tern/js-mode-hook () | |
(add-to-list 'company-backends 'company-tern) | |
(tern-mode t)) | |
(add-hook 'js-mode-hook 'tern/js-mode-hook)) | |
(provide 'javascript-web.el) | |
;;; javascript-web.el ends here |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment