aboutsummaryrefslogtreecommitdiffstats
path: root/zencoding-mode.el
diff options
context:
space:
mode:
author--- <deactivated@gmail.com>2009-11-08 17:11:32 +0800
committerChris Done <chrisdone@gmail.com>2009-11-11 15:43:34 +0800
commit9f8ae5e285a35a26e4b17cd39f57b4d7c9c19582 (patch)
tree93a8d74a3d0de170c0716ad1a871ee05133e0ce3 /zencoding-mode.el
parentf2fa84b7c1437ef2bb2010ee536f2fc22afbf7ea (diff)
downloademmet-mode-9f8ae5e285a35a26e4b17cd39f57b4d7c9c19582.tar.lz
emmet-mode-9f8ae5e285a35a26e4b17cd39f57b4d7c9c19582.tar.xz
emmet-mode-9f8ae5e285a35a26e4b17cd39f57b4d7c9c19582.zip
Move expression finding out of zencoding-expand-line
Diffstat (limited to 'zencoding-mode.el')
-rw-r--r--zencoding-mode.el28
1 files changed, 16 insertions, 12 deletions
diff --git a/zencoding-mode.el b/zencoding-mode.el
index 2dd2e11..7e05c5e 100644
--- a/zencoding-mode.el
+++ b/zencoding-mode.el
@@ -364,23 +364,27 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Zencoding minor mode
+(defun zencoding-expr-at-point ()
+ "Extract a zencoding expression and the corresponding bounds
+ for the current line."
+ (let* ((start (line-beginning-position))
+ (end (line-end-position))
+ (line (buffer-substring-no-properties start end))
+ (expr (zencoding-regex "\\([ \t]*\\)\\(.+\\)" line 2)))
+ (if (first expr)
+ (list (first expr) start end))))
+
(defun zencoding-expand-line ()
"Replace the current line's zencode expression with the corresponding expansion."
(interactive)
- (let* ((line-start (line-beginning-position))
- (line
- (buffer-substring-no-properties line-start (line-end-position)))
- (match (zencoding-regex "\\([ \t]*\\)\\(.+\\)" line '(0 1 2)))
- (indentation (elt match 1))
- (expr (elt match 2)))
+ (let ((expr (zencoding-expr-at-point)))
(if expr
- (let* ((markup (zencoding-transform (car (zencoding-expr expr))))
- (markup-filled (replace-regexp-in-string "><" ">\n<" markup)))
- (message (concat "Expanded: " expr))
+ (let* ((markup (zencoding-transform (car (zencoding-expr (first expr)))))
+ (filled (replace-regexp-in-string "><" ">\n<" markup)))
(save-excursion
- (delete-region line-start (line-end-position))
- (insert markup-filled)
- (indent-region line-start (+ line-start (length markup-filled))))))))
+ (delete-region (second expr) (third expr))
+ (insert filled)
+ (indent-region (second expr) (point)))))))
(defvar zencoding-mode-keymap nil
"Keymap for zencode minor mode.")