aboutsummaryrefslogtreecommitdiffstats
path: root/modules/init-web-mode.el
blob: 5eba924067c389854f3925ee2977a6e517085d32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
;;; init-web-mode.el --- .Emacs Configuration -*- lexical-binding: t -*-
;;; Commentary:
;;

;;; Code:
(use-package web-mode
  :mode (("\\.html?\\'"  . web-mode)
         ("\\.djhtml\\'" . web-mode)
         ("\\.tpl\\'"    . web-mode)
         ("\\.jsp\\'"    . web-mode)
         ("\\.gsp\\'"    . web-mode)
         ("\\.scss\\'"   . web-mode)
         ("\\.ctp\\'"    . web-mode))
  :config
  ;; web-modeの設定
  (setq web-mode-enable-current-element-highlight t)
  (set-face-background 'web-mode-current-element-highlight-face "#a3a3a3")

  ;; Django hook
  ;; require projectile
  (defun my-django-mode-hook ()
    (if (projectile-project-p)
        (when (file-exists-p (concat (projectile-project-root) "manage.py"))
          (web-mode-set-engine "django")

          ;; HTML auto functions
          (setq web-mode-enable-auto-opening t)
          (setq web-mode-enable-auto-closing t)
          (setq web-mode-enable-auto-quoting t)
          (setq web-mode-enable-auto-expanding t)

          ;; Auto-pairing
          (require 'smartparens)
          (sp-pair "{% " " %}")
          (sp-pair "{{ " " }}")
          (sp-pair "{# " " #}")
          (sp-pair "{" nil :actions :rem)
          (sp-pair "<" ">")

          (setq web-mode-enable-auto-pairing nil))))
  ;; Add hooks
  (add-hook 'web-mode-hook 'my-django-mode-hook))

(provide 'init-web-mode)
;;; init-web-mode.el ends here