aboutsummaryrefslogtreecommitdiffstats
path: root/src/mode-def.el
diff options
context:
space:
mode:
authorsmihica <smihica@gmail.com>2013-03-24 04:25:40 +0900
committersmihica <smihica@gmail.com>2013-03-24 04:37:10 +0900
commite353327def110e43716be349c9cf79420a985ca5 (patch)
tree5304e4cabf3525b06dc13be79f8b7ccc8a5df323 /src/mode-def.el
parent62dd4214c839aa9124f9b5d13d8dff2bdb2fe180 (diff)
downloademmet-mode-e353327def110e43716be349c9cf79420a985ca5.tar.lz
emmet-mode-e353327def110e43716be349c9cf79420a985ca5.tar.xz
emmet-mode-e353327def110e43716be349c9cf79420a985ca5.zip
Supported subset of emmet's CSS Abbreviations. You can test it in css-mode.
Diffstat (limited to 'src/mode-def.el')
-rw-r--r--src/mode-def.el32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/mode-def.el b/src/mode-def.el
index 7a832ae..1f7e396 100644
--- a/src/mode-def.el
+++ b/src/mode-def.el
@@ -27,6 +27,11 @@
(replace-regexp-in-string "\n" (concat "\n" first-col)
(replace-regexp-in-string " " tab markup)))))
+(defun zencoding-transform (input)
+ (if (eql major-mode 'css-mode)
+ (zencoding-css-transform input)
+ (zencoding-html-transform input)))
+
;;;###autoload
(defun zencoding-expand-line (arg)
"Replace the current line's zencode expression with the corresponding expansion.
@@ -57,11 +62,12 @@ For more information see `zencoding-mode'."
(zencoding-preview beg end))
(let ((expr (zencoding-expr-on-line)))
(if expr
- (let* ((markup (zencoding-transform (car (zencoding-expr (first expr)))))
- (pretty (zencoding-prettify markup (current-indentation))))
- (save-excursion
- (delete-region (second expr) (third expr))
- (zencoding-insert-and-flash pretty))))))))
+ (let ((markup (zencoding-transform (first expr))))
+ (when markup
+ (let ((pretty (zencoding-prettify markup (current-indentation))))
+ (save-excursion
+ (delete-region (second expr) (third expr))
+ (zencoding-insert-and-flash pretty))))))))))
(defvar zencoding-mode-keymap nil
"Keymap for zencode minor mode.")
@@ -100,19 +106,19 @@ See also `zencoding-expand-line'."
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Zencoding yasnippet integration
-(defun zencoding-transform-yas (ast)
+(defun zencoding-transform-yas (input)
(let* ((leaf-count 0)
(zencoding-leaf-function
(lambda ()
(format "$%d" (incf leaf-count)))))
- (zencoding-transform ast)))
+ (zencoding-transform input)))
;;;###autoload
(defun zencoding-expand-yas ()
(interactive)
(let ((expr (zencoding-expr-on-line)))
(if expr
- (let* ((markup (zencoding-transform-yas (car (zencoding-expr (first expr)))))
+ (let* ((markup (zencoding-transform-yas (first expr)))
(filled (replace-regexp-in-string "><" ">\n<" markup)))
(delete-region (second expr) (third expr))
(insert filled)
@@ -272,12 +278,10 @@ accept it or skip it."
(defun zencoding-preview-transformed (indent)
(let* ((string (buffer-substring-no-properties
(overlay-start zencoding-preview-input)
- (overlay-end zencoding-preview-input)))
- (ast (car (zencoding-expr string))))
- (when (not (eq ast 'error))
- (let ((output (zencoding-transform ast)))
- (when output
- (zencoding-prettify output indent))))))
+ (overlay-end zencoding-preview-input))))
+ (let ((output (zencoding-transform string)))
+ (when output
+ (zencoding-prettify output indent)))))
(defun zencoding-update-preview (indent)
(let* ((pretty (zencoding-preview-transformed indent))