2014-09-05 17:08:40 -04:00
|
|
|
(provide 'init-webdev)
|
|
|
|
|
2014-08-29 22:37:25 -04:00
|
|
|
(use-package rainbow-mode
|
2014-08-07 18:35:22 -04:00
|
|
|
:defer t
|
2014-12-05 17:28:03 -05:00
|
|
|
:init (add-hook 'scss-mode-hook 'rainbow-mode))
|
2014-08-07 18:35:22 -04:00
|
|
|
|
2014-08-29 22:37:25 -04:00
|
|
|
(use-package scss-mode
|
2014-11-29 20:21:03 -05:00
|
|
|
:mode "\\.scss$"
|
2014-08-24 06:27:11 -04:00
|
|
|
:config
|
|
|
|
(progn
|
2014-12-05 17:28:03 -05:00
|
|
|
(add-hook 'scss-mode-hook 'enable-tab-width-2)
|
2014-11-29 20:21:03 -05:00
|
|
|
(add-hook 'scss-mode-hook 'ac-css-mode-setup)
|
|
|
|
|
|
|
|
(setq-default css-indent-offset 2)
|
2014-08-24 06:27:11 -04:00
|
|
|
(setq scss-compile-at-save nil)
|
2014-08-07 18:35:22 -04:00
|
|
|
|
2014-11-29 20:21:03 -05:00
|
|
|
(bind '(normal visual) scss-mode-map "gQ" 'web-beautify-css)))
|
2014-08-07 18:35:22 -04:00
|
|
|
|
2014-09-05 17:08:40 -04:00
|
|
|
;;; HTML/Markup
|
2014-11-29 20:21:03 -05: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 web-mode
|
2014-11-29 20:21:03 -05:00
|
|
|
:mode (("\\.\\(p\\)?htm\\(l\\)?$" . web-mode)
|
|
|
|
("\\.tpl\\(\\.php\\)?$" . web-mode)
|
|
|
|
("\\.erb$" . web-mode)
|
|
|
|
("wp-content/themes/.+/.+\\.php$" . web-mode))
|
2014-08-21 03:33:30 -04:00
|
|
|
:config
|
2014-08-24 06:27:36 -04:00
|
|
|
(progn
|
2014-11-29 20:21:03 -05:00
|
|
|
(add-hook 'web-mode-hook 'enable-tab-width-2)
|
2014-08-24 06:27:36 -04:00
|
|
|
|
2014-12-05 17:28:03 -05:00
|
|
|
(setq web-mode-ac-sources-alist '(("css" . (ac-source-css-property)))
|
2014-11-29 20:21:03 -05:00
|
|
|
web-mode-markup-indent-offset 2
|
2014-09-20 16:54:04 -04:00
|
|
|
web-mode-code-indent-offset 2
|
|
|
|
web-mode-css-indent-offset 2
|
|
|
|
web-mode-style-padding 2
|
|
|
|
web-mode-script-padding 2
|
|
|
|
web-mode-block-padding 2)
|
2014-08-25 23:15:33 -04:00
|
|
|
|
2014-11-29 20:21:03 -05:00
|
|
|
(bind web-mode-map (kbd "s-/") 'web-mode-comment-or-uncomment)
|
|
|
|
(bind 'normal web-mode-map
|
|
|
|
"zf" 'web-mode-fold-or-unfold
|
|
|
|
",t" 'web-mode-element-rename)
|
|
|
|
(bind '(normal visual) web-mode-map
|
2014-12-05 17:28:03 -05:00
|
|
|
"gQ" 'web-beautify-html
|
|
|
|
"]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)))
|
2014-11-29 20:21:03 -05:00
|
|
|
|
|
|
|
(use-package emmet-mode
|
|
|
|
:defer t
|
|
|
|
:init
|
|
|
|
(progn
|
|
|
|
(add-hook 'scss-mode-hook 'emmet-mode)
|
|
|
|
(add-hook 'web-mode-hook 'emmet-mode)
|
|
|
|
(add-hook 'html-mode-hook 'emmet-mode)
|
|
|
|
(add-hook 'haml-mode-hook 'emmet-mode)
|
|
|
|
(add-hook 'nxml-mode-hook 'emmet-mode))
|
|
|
|
:config
|
|
|
|
(progn
|
|
|
|
(setq emmet-move-cursor-between-quotes t)
|
|
|
|
|
|
|
|
(bind 'insert emmet-mode-keymap
|
|
|
|
(kbd "s-e") 'emmet-expand-yas
|
|
|
|
(kbd "s-E") 'emmet-expand-line)))
|
2014-09-05 17:08:40 -04:00
|
|
|
|
|
|
|
(use-package php-mode
|
2014-11-29 20:21:03 -05:00
|
|
|
:mode "\\.\\(php\\|inc\\)$"
|
2014-09-05 17:08:40 -04:00
|
|
|
:config
|
|
|
|
(progn
|
2014-09-20 16:54:04 -04:00
|
|
|
(add-hook! 'php-mode-hook (setq my-run-code-interpreter "php"))
|
2014-09-05 17:08:40 -04:00
|
|
|
(setq php-template-compatibility nil)))
|
2014-08-07 18:35:22 -04:00
|
|
|
|
2014-12-05 17:28:03 -05:00
|
|
|
(use-package js2-mode :mode "\\.js$"
|
2014-08-09 19:25:06 -04:00
|
|
|
:config
|
|
|
|
(progn
|
2014-12-05 17:28:03 -05:00
|
|
|
(setq-default js2-show-parse-errors nil)
|
|
|
|
(setq-default js2-global-externs '("module" "require" "buster" "sinon" "assert"
|
|
|
|
"refute" "setTimeout" "clearTimeout"
|
|
|
|
"setInterval" "clearInterval" "location"
|
|
|
|
"__dirname" "console" "JSON" "jQuery" "$"
|
|
|
|
;; Launchbar API
|
|
|
|
"LaunchBar" "File" "Action" "HTTP" "include"))
|
2014-11-29 20:21:03 -05:00
|
|
|
|
2014-12-05 17:28:03 -05:00
|
|
|
(bind '(normal visual) js2-mode-map "gQ" 'web-beautify-js)
|
2014-11-29 20:21:03 -05:00
|
|
|
|
|
|
|
(use-package js2-refactor
|
2014-12-05 17:28:03 -05:00
|
|
|
;; :config
|
2014-11-29 20:21:03 -05:00
|
|
|
;; TODO Set up keymaps
|
|
|
|
)
|
2014-08-07 18:35:22 -04:00
|
|
|
|
2014-12-05 17:28:03 -05:00
|
|
|
(use-package tern
|
|
|
|
:commands tern-mode
|
|
|
|
;; replace auto-complete with tern-ac-complete only in js-mode
|
|
|
|
:init (add-hook! 'js2-mode-hook
|
|
|
|
(tern-mode t)
|
|
|
|
(tern-ac-setup)
|
|
|
|
(setq my-run-code-interpreter "node"))
|
|
|
|
:config
|
|
|
|
(progn
|
|
|
|
(after "auto-complete"
|
|
|
|
(require 'tern-auto-complete)
|
|
|
|
(setq tern-ac-on-dot nil)
|
|
|
|
(bind 'insert js2-mode-map
|
|
|
|
[remap auto-complete] 'tern-ac-complete)
|
|
|
|
(bind 'motion js2-mode-map
|
|
|
|
"gd" 'tern-find-definition))
|
|
|
|
|
|
|
|
(after "company-tern"
|
|
|
|
(add-to-list 'company-backends 'company-tern)
|
|
|
|
;; (setq company-tern-meta-as-single-line t)
|
|
|
|
;; (setq company-tern-property-marker "")
|
|
|
|
;; (setq company-tooltip-align-annotations t)
|
|
|
|
)))))
|
2014-08-21 03:33:30 -04:00
|
|
|
|
2014-11-29 20:21:03 -05:00
|
|
|
|
|
|
|
(use-package web-beautify
|
|
|
|
:commands (web-beautify-js web-beautify-css web-beautify-html)
|
|
|
|
:config
|
|
|
|
(progn
|
|
|
|
(add-hook! 'scss-mode-hook (setenv "jsbeautify_indent_size" "2"))
|
|
|
|
(add-hook! 'web-mode-hook (setenv "jsbeautify_indent_size" "4"))
|
|
|
|
(add-hook! 'js2-mode-hook (setenv "jsbeautify_indent_size" "4"))))
|