diff options
author | Nate Eagleson <nate@nateeag.com> | 2014-02-17 23:26:47 -0500 |
---|---|---|
committer | Nate Eagleson <nate@nateeag.com> | 2014-02-17 23:26:47 -0500 |
commit | f050749c293c79328a1a722259e97829fcd681f2 (patch) | |
tree | ac228a9472d2cbfc96a8a0355e66100242c0dc4f | |
parent | 7b40f1d47e4be0b7f4266d43314e96310a597bba (diff) | |
download | emmet-mode-f050749c293c79328a1a722259e97829fcd681f2.tar.lz emmet-mode-f050749c293c79328a1a722259e97829fcd681f2.tar.xz emmet-mode-f050749c293c79328a1a722259e97829fcd681f2.zip |
CSS mode detection is more robust and flexible
By introducing a few new variables, we make it easier for users to
control whether emmet-mode will generate HTML or CSS from its
abbreviations.
The new variables are particularly helpful for using emmet-mode in
[web-mode](https://github.com/fxbois/web-mode), where both CSS and HTML
may be present in the same buffer, so major-mode detection is not a
reliable means of deciding whether to generate CSS or HTML.
-rw-r--r-- | emmet-mode.el | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/emmet-mode.el b/emmet-mode.el index c5f9a25..6710c4a 100644 --- a/emmet-mode.el +++ b/emmet-mode.el @@ -6,7 +6,7 @@ ;; Version: 1.0.5 ;; Author: Shin Aoyama <smihica@gmail.com> ;; URL: https://github.com/smihica/emmet -;; Last-Updated: 2013-09-16 Mon +;; Last-Updated: 2014-02-17 Mon ;; Keywords: convenience ;; This file is free software; you can redistribute it and/or modify @@ -3337,8 +3337,20 @@ tbl)) (replace-regexp-in-string "\n" (concat "\n" first-col) (replace-regexp-in-string " " tab markup))))) +(defvar emmet-use-css-transform nil + "When true, transform Emmet snippets into CSS, instead of the usual HTML.") +(make-variable-buffer-local 'emmet-use-css-transform) + +(defvar emmet-css-major-modes + '(css-mode + scss-mode + sass-mode + less-mode + less-css-mode) + "Major modes that use emmet for CSS, rather than HTML.") + (defun emmet-transform (input) - (if (memq major-mode '(css-mode scss-mode sass-mode)) + (if emmet-use-css-transform (emmet-css-transform input) (emmet-html-transform input))) @@ -3394,6 +3406,11 @@ For more information see `emmet-mode'." (define-key emmet-mode-keymap (kbd "C-j") 'emmet-expand-line) (define-key emmet-mode-keymap (kbd "<C-return>") 'emmet-expand-line))) +(defun emmet-after-hook () + "Initialize Emmet's buffer-local variables." + (if (memq major-mode emmet-css-major-modes) + (setq emmet-use-css-transform t))) + ;;;###autoload (define-minor-mode emmet-mode "Minor mode for writing HTML and CSS markup. @@ -3416,7 +3433,8 @@ Home page URL `http://www.emacswiki.org/emacs/Emmet'. See also `emmet-expand-line'." :lighter " Emmet" - :keymap emmet-mode-keymap) + :keymap emmet-mode-keymap + :after-hook (emmet-after-hook)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Emmet yasnippet integration |