74 lines
2.5 KiB
EmacsLisp
74 lines
2.5 KiB
EmacsLisp
;;; setup-web-mode.el --- rogs default web mode configuration
|
|
;;
|
|
;;; Commentary:
|
|
;;
|
|
;; My default configuration for web mode
|
|
;;
|
|
;;; Code:
|
|
|
|
;; Web Mode: Begin
|
|
;; JSX configs: http://cha1tanya.com/2015/06/20/configuring-web-mode-with-jsx.html
|
|
(require 'web-mode)
|
|
(add-to-list 'auto-mode-alist '("\\.phtml\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.tpl\\.php\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.[agj]sp\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.as[cp]x\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.erb\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.mustache\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.djhtml\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.html\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.css\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.scss\\'" . web-mode))
|
|
(add-to-list 'auto-mode-alist '("\\.es6\\'" . web-mode))
|
|
|
|
;; Use web-mode for .jsx files
|
|
(add-to-list 'auto-mode-alist '("\\.jsx$" . web-mode))
|
|
|
|
;; Use web-mode for .hbs files
|
|
(add-to-list 'auto-mode-alist '("\\.hbs$" . web-mode))
|
|
|
|
(setq web-mode-content-types-alist
|
|
'(("jsx" . "\\.js[x]?\\'")
|
|
("javascript" . "\\.es6?\\'")))
|
|
|
|
(defadvice web-mode-highlight-part (around tweak-jsx activate)
|
|
(if (equal web-mode-content-type "jsx")
|
|
(let ((web-mode-enable-part-face nil))
|
|
ad-do-it)
|
|
ad-do-it))
|
|
|
|
(defadvice web-mode-highlight-part (around tweak-jsx activate)
|
|
(if (equal web-mode-content-type "js")
|
|
(let ((web-mode-enable-part-face nil))
|
|
ad-do-it)
|
|
ad-do-it))
|
|
|
|
;; Style-Gook
|
|
(defun my-web-mode-hook ()
|
|
"Hooks for Web mode."
|
|
(setq web-mode-enable-auto-pairing t)
|
|
(setq web-mode-enable-css-colorization t)
|
|
(setq web-mode-enable-auto-expanding t)
|
|
(setq web-mode-enable-current-element-highlight t)
|
|
(setq web-mode-enable-current-column-highlight t)
|
|
)
|
|
|
|
;; Emmet-Hook
|
|
(add-hook 'web-mode-before-auto-complete-hooks
|
|
'(lambda ()
|
|
(let ((web-mode-cur-language
|
|
(web-mode-language-at-pos)))
|
|
(if (string= web-mode-cur-language "css")
|
|
(setq emmet-use-css-transform t)
|
|
(setq emmet-use-css-transform nil)))))
|
|
|
|
(add-hook 'web-mode-hook 'emmet-mode) ;; Auto-start on any markup modes
|
|
(add-hook 'html-mode-hook 'emmet-mode) ;; Auto-start on any markup modes
|
|
(add-hook 'web-mode-hook 'my-web-mode-hook)
|
|
(add-hook 'web-mode-hook #'emmet-mode)
|
|
(setq emmet-preview-default t)
|
|
(add-hook 'web-mode-hook 'rainbow-mode)
|
|
|
|
(provide 'setup-web-mode)
|
|
;;; setup-web-mode.el ends here
|