diff options
-rw-r--r-- | emmet-mode.el | 13 | ||||
-rw-r--r-- | src/mode-def.el | 13 |
2 files changed, 20 insertions, 6 deletions
diff --git a/emmet-mode.el b/emmet-mode.el index b6d3edf..60bd0c6 100644 --- a/emmet-mode.el +++ b/emmet-mode.el @@ -3584,11 +3584,14 @@ For more information see `emmet-mode'." (delete-region (second expr) (third expr)) (emmet-insert-and-flash markup) (let ((output-markup (buffer-substring-no-properties (second expr) (point)))) - (when (and emmet-move-cursor-after-expanding (emmet-html-text-p markup)) - (let ((p (point))) + (when emmet-move-cursor-after-expanding + (let ((p (point)) + (new-pos (if (emmet-html-text-p output-markup) + (emmet-html-next-insert-point output-markup) + (emmet-css-next-insert-point output-markup)))) (goto-char (+ (- p (length output-markup)) - (emmet-html-next-insert-point output-markup))))))))))))) + new-pos)))))))))))) (defvar emmet-mode-keymap (let @@ -3718,6 +3721,10 @@ See also `emmet-expand-line'." (emmet-aif (re-search-forward ".+</" nil t) (- it 3)) ; try to place cursor after tag contents (length str)))) ; ok, just go to the end +(defun emmet-css-next-insert-point (str) + (string-match ": *\\(;\\)$" str) + (or (match-beginning 1) (length str))) + (defvar emmet-flash-ovl nil) (make-variable-buffer-local 'emmet-flash-ovl) diff --git a/src/mode-def.el b/src/mode-def.el index 8b60374..f2f8b2c 100644 --- a/src/mode-def.el +++ b/src/mode-def.el @@ -95,11 +95,14 @@ For more information see `emmet-mode'." (delete-region (second expr) (third expr)) (emmet-insert-and-flash markup) (let ((output-markup (buffer-substring-no-properties (second expr) (point)))) - (when (and emmet-move-cursor-after-expanding (emmet-html-text-p markup)) - (let ((p (point))) + (when emmet-move-cursor-after-expanding + (let ((p (point)) + (new-pos (if (emmet-html-text-p output-markup) + (emmet-html-next-insert-point output-markup) + (emmet-css-next-insert-point output-markup)))) (goto-char (+ (- p (length output-markup)) - (emmet-html-next-insert-point output-markup))))))))))))) + new-pos)))))))))))) (defvar emmet-mode-keymap (let @@ -229,6 +232,10 @@ See also `emmet-expand-line'." (emmet-aif (re-search-forward ".+</" nil t) (- it 3)) ; try to place cursor after tag contents (length str)))) ; ok, just go to the end +(defun emmet-css-next-insert-point (str) + (string-match ": *\\(;\\)$" str) + (or (match-beginning 1) (length str))) + (defvar emmet-flash-ovl nil) (make-variable-buffer-local 'emmet-flash-ovl) |