;;; Colourise CSS colour literals
(when (eval-when-compile (>= emacs-major-version 24))
;; rainbow-mode needs color.el, bundled with Emacs >= 24.
(require-package 'rainbow-mode)
(dolist (hook '(css-mode-hook html-mode-hook sass-mode-hook))
(add-hook hook 'rainbow-mode)))
;;; Embedding in html
(require-package 'mmm-mode)
(after-load 'mmm-vars
(mmm-add-group
'html-css
'((css-cdata
:submode css-mode
:face mmm-code-submode-face
:front ""
:insert ((?j js-tag nil @ "" @)))
(css
:submode css-mode
:face mmm-code-submode-face
:front ""
:insert ((?j js-tag nil @ "" @)))
(css-inline
:submode css-mode
:face mmm-code-submode-face
:front "style=\""
:back "\"")))
(dolist (mode (list 'html-mode 'nxml-mode))
(mmm-add-mode-ext-class mode "\\.r?html\\(\\.erb\\)?\\'" 'html-css)))
;;; SASS and SCSS
(require-package 'sass-mode)
(require-package 'scss-mode)
(setq-default scss-compile-at-save nil)
;;; LESS
(require-package 'less-css-mode)
(when (featurep 'js2-mode)
(require-package 'skewer-less))
;;; Auto-complete CSS keywords
(after-load 'auto-complete
(dolist (hook '(css-mode-hook sass-mode-hook scss-mode-hook))
(add-hook hook 'ac-css-mode-setup)))
;;; Use eldoc for syntax hints
(require-package 'css-eldoc)
(autoload 'turn-on-css-eldoc "css-eldoc")
(add-hook 'css-mode-hook 'turn-on-css-eldoc)
(provide 'init-css)