blob: 33333dc90a05e055c5f98622189d4eee839e4f29 (
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
;;; init-web-mode.el --- .Emacs Configuration -*- lexical-binding: t -*-
;;; Commentary:
;;
;;; Code:
(use-package web-mode
:pin "MELPA"
:mode (("\\.html?\\'" . web-mode)
("\\.djhtml\\'" . web-mode)
("\\.blade.php\\'" . web-mode)
("\\.tpl\\'" . web-mode)
("\\.twig\\'" . 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 "#616161")
;; Fix smarty
(setq web-mode-engines-alist
'(("smarty" . "\\.tpl\\'")))
;; Django hook
;; require projectile
(defun my-django-mode ()
(when (and (require 'web-mode nil t)
(fboundp 'web-mode-set-engine))
(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)))))
;; Pelican hook
(defun my-pelican-mode ()
(when (and (require 'web-mode nil t)
(fboundp 'web-mode-set-engine))
(if (projectile-project-p)
(when (file-exists-p (concat (projectile-project-root) "pelicanconf.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 "{" nil :actions :rem)
(sp-pair "<" ">")
(setq web-mode-enable-auto-pairing nil)))))
:hook
(web-mode . my-django-mode)
(web-mode . my-pelican-mode))
(provide 'init-web-mode)
;;; init-web-mode.el ends here
|