doomemacs/init/mod-webdev.el

100 lines
2.6 KiB
EmacsLisp
Raw Normal View History

2014-08-29 22:37:25 -04:00
(use-package rainbow-mode
2014-08-07 18:35:22 -04:00
:defer t
:init (add-hook 'scss-mode 'rainbow-mode))
2014-08-29 22:37:25 -04:00
(use-package scss-mode
2014-08-09 19:25:06 -04:00
:mode "\\.scss\\'"
:config
(progn
(setq scss-compile-at-save nil)
(add-hook 'scss-mode-hook 'ac-css-mode-setup)))
2014-08-07 18:35:22 -04:00
2014-08-29 22:37:25 -04:00
(use-package haml-mode :mode "\\.haml\\'")
2014-08-07 18:35:22 -04:00
2014-08-29 22:37:25 -04:00
(use-package php-mode
2014-08-09 19:25:06 -04:00
:mode (("\\.php\\'" . php-mode)
("\\.inc\\'" . php-mode))
:interpreter "php"
:config
(progn
(my/setup-run-code php-mode-map "php")
(setq php-template-compatibility nil)))
2014-08-07 18:35:22 -04:00
2014-08-29 22:37:25 -04:00
(use-package web-mode
2014-08-21 03:33:30 -04:00
:mode (("\\.\\(p\\)?htm\\(l\\)?\\'" . web-mode)
("\\.tpl\\(\\.php\\)?\\'" . web-mode)
("\\.erb\\'" . web-mode)
("wp-content/themes/.+/.+\\.php\\'" . web-mode))
:config
2014-08-24 06:27:36 -04:00
(progn
(setq web-mode-ac-sources-alist
'(("css" . (ac-source-css-property))))
(setq web-mode-markup-indent-offset 4
web-mode-css-indent-offset 4
web-mode-code-indent-offset 4)
(nvmap web-mode-map
"]a" 'web-mode-attribute-next
"]t" 'web-mode-tag-next
"[t" 'web-mode-tag-previous
"]T" 'web-mode-element-child
"[T" 'web-mode-element-parent)
(nmap web-mode-map
"zf" 'web-mode-fold-or-unfold
",ct" 'web-mode-element-rename)
2014-08-24 06:27:36 -04:00
(define-key web-mode-map (kbd "s-/") 'web-mode-comment-or-uncomment)
2014-08-24 06:27:36 -04:00
(add-hook 'web-mode-hook 'jekyll-mode-maybe)))
2014-08-07 18:35:22 -04:00
2014-08-29 22:37:25 -04:00
(use-package tern
2014-08-09 19:25:06 -04:00
:commands tern-mode
:config
(progn
(my/setup-run-code js-mode-map "node")
2014-08-29 22:37:25 -04:00
(use-package tern-auto-complete
2014-08-09 19:25:06 -04:00
:config (setq tern-ac-on-dot nil)))
:init
;; replace auto-complete with tern-ac-complete only in js-mode
(add-hook 'js-mode-hook
(lambda ()
(tern-mode t)
2014-08-24 06:27:36 -04:00
(tern-ac-setup)
(imap js-mode-map (kbd "C-SPC") 'tern-ac-complete
))))
2014-08-09 19:25:06 -04:00
2014-08-29 22:37:25 -04:00
(use-package emmet-mode
2014-08-09 19:25:06 -04:00
:defer t
:config
(setq emmet-move-cursor-between-quotes t)
2014-08-09 19:25:06 -04:00
:init
(progn
(add-hook 'scss-mode-hook 'emmet-mode)
(add-hook 'web-mode-hook 'emmet-mode)
2014-08-21 03:33:30 -04:00
(add-hook 'haml-mode-hook 'emmet-mode)
2014-08-09 19:25:06 -04:00
(add-hook 'nxml-mode-hook 'emmet-mode)))
2014-08-07 18:35:22 -04:00
2014-08-21 03:33:30 -04:00
;; Jekyll support
(define-minor-mode jekyll-mode
:init-value nil
:lighter " :{"
:keymap (make-sparse-keymap))
(defun jekyll-mode-maybe()
(let ((root (projectile-project-root)))
(if (or (string-match "[.-]jekyll/" root)
(file-exists-p (concat root ".jekyll-mode")))
(jekyll-mode t))))
(nmap jekyll-mode-map (kbd ",b")
(λ (open-file-with "http://localhost:4000")))
(add-hook 'scss-mode-hook 'jekyll-mode-maybe)
(add-hook 'web-mode-hook 'jekyll-mode-maybe)
(add-hook 'markdown-mode-hook 'jekyll-mode-maybe)
2014-08-07 18:35:22 -04:00
;;
(provide 'mod-webdev)