diff options
author | Dave Mayo <pobocks@gmail.com> | 2014-08-10 21:21:13 -0400 |
---|---|---|
committer | Dave Mayo <pobocks@gmail.com> | 2014-08-10 21:21:13 -0400 |
commit | b52f4b982170dcda0360b7a6a6f2c9d785fc58fc (patch) | |
tree | 5ff8c9bf15f9802bc5fc73487cb460c8fde5c26b | |
parent | f085c9e3c248358cb5bd06b1d8495fa8b0f35638 (diff) | |
download | emmet-mode-b52f4b982170dcda0360b7a6a6f2c9d785fc58fc.tar.lz emmet-mode-b52f4b982170dcda0360b7a6a6f2c9d785fc58fc.tar.xz emmet-mode-b52f4b982170dcda0360b7a6a6f2c9d785fc58fc.zip |
Better method for dealing with HTML brackets, does not rely on search.
-rw-r--r-- | emmet-mode.el | 9 | ||||
-rw-r--r-- | src/mode-def.el | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/emmet-mode.el b/emmet-mode.el index 46c6c0d..2a2b023 100644 --- a/emmet-mode.el +++ b/emmet-mode.el @@ -3489,12 +3489,15 @@ tbl)) (defun emmet-find-left-bound () "Find the left bound of an emmet expr" (save-excursion (save-match-data - (let ((char (char-before))) + (let ((char (char-before)) + (last-gt (point))) (while char (cond ((member char '(?\} ?\] ?\))) (backward-sexp) (setq char (char-before))) - ((member char '(?\<)) - (search-forward ">") (setq char nil)) + ((eq char ?\>) + (setq last-gt (point)) (backward-char) (setq char (char-before))) + ((eq char ?\<) + (goto-char last-gt) (setq char nil)) ((not (string-match-p "[[:space:]\n]" (string char))) (backward-char) (setq char (char-before))) (t diff --git a/src/mode-def.el b/src/mode-def.el index 6d7aebc..b042400 100644 --- a/src/mode-def.el +++ b/src/mode-def.el @@ -18,12 +18,15 @@ (defun emmet-find-left-bound () "Find the left bound of an emmet expr" (save-excursion (save-match-data - (let ((char (char-before))) + (let ((char (char-before)) + (last-gt (point))) (while char (cond ((member char '(?\} ?\] ?\))) (backward-sexp) (setq char (char-before))) - ((member char '(?\<)) - (search-forward ">") (setq char nil)) + ((eq char ?\>) + (setq last-gt (point)) (backward-char) (setq char (char-before))) + ((eq char ?\<) + (goto-char last-gt) (setq char nil)) ((not (string-match-p "[[:space:]\n]" (string char))) (backward-char) (setq char (char-before))) (t |