diff --git a/Cask b/Cask index bf8ab15dd..297f271b0 100644 --- a/Cask +++ b/Cask @@ -145,6 +145,12 @@ (depends-on "omnisharp") (depends-on "shader-mode") +;; CSS -- modules/module-css.el +(depends-on "stylus-mode") +(depends-on "less-css-mode") +(depends-on "scss-mode") +(depends-on "sass-mode") + ;; Data -- modules/module-data.el (depends-on "vimrc-mode") (depends-on "json-mode") @@ -238,10 +244,6 @@ (depends-on "company-web") (depends-on "emmet-mode") (depends-on "haml-mode") -(depends-on "stylus-mode") -(depends-on "less-css-mode") -(depends-on "scss-mode") -(depends-on "sass-mode") (depends-on "pug-mode" :git "https://github.com/hlissner/pug-mode") diff --git a/modules/module-css.el b/modules/module-css.el new file mode 100644 index 000000000..1ade21bae --- /dev/null +++ b/modules/module-css.el @@ -0,0 +1,60 @@ +;;; module-css.el + +(after! emr + (emr-declare-command 'narf/css-toggle-inline-or-block + :title "toggle inline/block" + :modes '(css-mode less-css-mode scss-mode) + :predicate (lambda () (not (use-region-p))))) + +(sp-with-modes '(css-mode scss-mode less-css-mode stylus-mode) + (sp-local-pair "/*" "*/" :post-handlers '(("[d-3]||\n[i]" "RET") ("| " "SPC")))) + +(use-package css-mode + :mode "\\.css$" + :init (add-hook! css-mode '(yas-minor-mode-on flycheck-mode rainbow-mode)) + :config + (def-company-backend! css-mode (css yasnippet)) + (push '("css" "scss" "sass" "less" "styl") projectile-other-file-alist)) + +(use-package stylus-mode + :mode "\\.styl$" + :init (add-hook! stylus-mode '(yas-minor-mode-on flycheck-mode)) + :config (push '("styl" "css") projectile-other-file-alist)) + +(use-package less-css-mode + :mode "\\.less$" + :config (push '("less" "css") projectile-other-file-alist)) + + +;; +;; Sass +;; + +(setq scss-sass-options '("--style" "compressed")) + +(use-package sass-mode + :mode "\\.sass$" + :config + (def-builder! sass-mode narf/sass-build) + (def-company-backend! sass-mode (css yasnippet)) + (def-docset! sass-mode "sass,bourbon") + (push '("sass" "css") projectile-other-file-alist)) + +(use-package scss-mode + :mode "\\.scss$" + :config + (def-builder! scss-mode narf/scss-build) + (def-company-backend! scss-mode (css yasnippet)) + (def-docset! scss-mode "sass,bourbon") + (push '("scss" "css") projectile-other-file-alist) + (setq scss-compile-at-save nil)) + +(map! :map (css-mode-map sass-mode-map scss-mode-map) + :n "M-R" 'narf/web-refresh-browser + (:localleader :nv ";" 'narf/append-semicolon) + (:leader + :n ";" 'helm-css-scss + :n ":" 'helm-css-scss-multi)) + +(provide 'module-css) +;;; module-css.el ends here diff --git a/modules/module-web.el b/modules/module-web.el index 0716ab9c3..a986a2f15 100644 --- a/modules/module-web.el +++ b/modules/module-web.el @@ -1,65 +1,5 @@ ;;; module-web.el -;; -;; CSS modes -;; - -(use-package css-mode - :mode "\\.css$" - :init (add-hook! css-mode '(yas-minor-mode-on flycheck-mode)) - :config - (def-company-backend! css-mode (css yasnippet)) - (push '("css" "scss" "sass" "less" "styl") projectile-other-file-alist)) - -(after! emr - (emr-declare-command 'narf/css-toggle-inline-or-block - :title "toggle inline/block" - :modes '(css-mode less-css-mode scss-mode) - :predicate (lambda () (not (use-region-p))))) - -(setq scss-sass-options '("--style" "compressed")) - -(sp-with-modes '(scss-mode less-css-mode stylus-mode) - (sp-local-pair "/*" "*/" - :post-handlers '(("[d-3]||\n[i]" "RET") ("| " "SPC")))) - -(use-package stylus-mode - :mode "\\.styl$" - :init (add-hook! stylus-mode '(yas-minor-mode-on flycheck-mode)) - :config (push '("styl" "css") projectile-other-file-alist)) - -(use-package less-css-mode - :mode "\\.less$" - :config (push '("less" "css") projectile-other-file-alist)) - -(use-package sass-mode - :mode "\\.sass$" - :config - (def-builder! sass-mode narf/sass-build) - (def-company-backend! sass-mode (css yasnippet)) - (def-docset! sass-mode "sass,bourbon") - (push '("sass" "css") projectile-other-file-alist)) - -(use-package scss-mode - :mode "\\.scss$" - :config - (def-builder! scss-mode narf/scss-build) - (def-company-backend! scss-mode (css yasnippet)) - (def-docset! scss-mode "sass,bourbon") - (push '("scss" "css") projectile-other-file-alist) - (setq scss-compile-at-save nil) - (map! :map scss-mode-map - :n "M-R" 'narf/web-refresh-browser - (:localleader :nv ";" 'narf/append-semicolon) - (:leader - :n ";" 'helm-css-scss - :n ":" 'helm-css-scss-multi))) - - -;; -;; Markup modes -;; - (use-package haml-mode :mode "\\.haml$") (use-package pug-mode @@ -131,8 +71,7 @@ ;; (def-project-type! jekyll ":{" - :modes (web-mode js-mode js2-mode json-mode coffee-mode scss-mode sass-mode - less-css-mode pug-mode) + :modes (web-mode js-mode coffee-mode css-mode haml-mode pug-mode) :match "/\\(\\(css\\|_\\(layouts\\|posts\\|sass\\)\\)/.+\\|.+.html\\)$" :files ("config.yml" "_layouts/") (add-hook! mode