aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNate Eagleson <nate@nateeag.com>2014-02-17 23:26:47 -0500
committerNate Eagleson <nate@nateeag.com>2014-02-17 23:26:47 -0500
commitf050749c293c79328a1a722259e97829fcd681f2 (patch)
treeac228a9472d2cbfc96a8a0355e66100242c0dc4f
parent7b40f1d47e4be0b7f4266d43314e96310a597bba (diff)
downloademmet-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.el24
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