summaryrefslogtreecommitdiff
path: root/.emacs.d.back/setup/setup-web-mode.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d.back/setup/setup-web-mode.el')
-rw-r--r--.emacs.d.back/setup/setup-web-mode.el73
1 files changed, 73 insertions, 0 deletions
diff --git a/.emacs.d.back/setup/setup-web-mode.el b/.emacs.d.back/setup/setup-web-mode.el
new file mode 100644
index 00000000..7f6857e7
--- /dev/null
+++ b/.emacs.d.back/setup/setup-web-mode.el
@@ -0,0 +1,73 @@
+;;; 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