diff options
author | --- <deactivated@gmail.com> | 2009-11-08 17:11:32 +0800 |
---|---|---|
committer | Chris Done <chrisdone@gmail.com> | 2009-11-11 15:43:34 +0800 |
commit | 9f8ae5e285a35a26e4b17cd39f57b4d7c9c19582 (patch) | |
tree | 93a8d74a3d0de170c0716ad1a871ee05133e0ce3 /zencoding-mode.el | |
parent | f2fa84b7c1437ef2bb2010ee536f2fc22afbf7ea (diff) | |
download | emmet-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.el | 28 |
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.") |