diff options
author | Shin Aoyama <smihica@gmail.com> | 2014-06-27 10:11:41 +0900 |
---|---|---|
committer | Shin Aoyama <smihica@gmail.com> | 2014-06-27 10:11:41 +0900 |
commit | f56174e5905a40583b47f9737abee3af8da3faeb (patch) | |
tree | 5ba42a9bd00a8098d76f0524d16666b656609a2c | |
parent | 6a0f56dd41ab92dcc08f41ef66eca06d7d37336d (diff) | |
parent | 9ed7f5fccad1ce05fef43fb77972dd1e33d02fd4 (diff) | |
download | emmet-mode-f56174e5905a40583b47f9737abee3af8da3faeb.tar.lz emmet-mode-f56174e5905a40583b47f9737abee3af8da3faeb.tar.xz emmet-mode-f56174e5905a40583b47f9737abee3af8da3faeb.zip |
Merge pull request #22 from pobocks/issue_21
Proof of concept that #21 is doable.
-rw-r--r-- | emmet-mode.el | 19 | ||||
-rw-r--r-- | src/mode-def.el | 19 |
2 files changed, 30 insertions, 8 deletions
diff --git a/emmet-mode.el b/emmet-mode.el index 2380aea..b06a8b6 100644 --- a/emmet-mode.el +++ b/emmet-mode.el @@ -3470,10 +3470,21 @@ tbl)) for the current line." (let* ((start (line-beginning-position)) (end (line-end-position)) - (line (buffer-substring-no-properties start end)) - (expr (emmet-regex "\\([ \t]*\\)\\([^\n]+\\)" line 2))) - (if (first expr) - (list (first expr) start end)))) + (line (buffer-substring-no-properties start end))) + (save-excursion + (save-match-data + (let ((bound (point))) + (goto-char start) + (if (re-search-forward "\\(\\([ \t]+\\)?<[^>]*?>\\)+" bound t) + (progn + (setq start (match-end 0)) + (setq end bound) + (setq line (buffer-substring-no-properties start end)) + ) + )))) + (let ((expr (emmet-regex "\\([ \t]*\\)\\([^\n]+\\)" line 2))) + (if (first expr) + (list (first expr) start end))))) (defcustom emmet-indentation 4 "Number of spaces used for indentation." diff --git a/src/mode-def.el b/src/mode-def.el index fa01727..dd82409 100644 --- a/src/mode-def.el +++ b/src/mode-def.el @@ -10,10 +10,21 @@ for the current line." (let* ((start (line-beginning-position)) (end (line-end-position)) - (line (buffer-substring-no-properties start end)) - (expr (emmet-regex "\\([ \t]*\\)\\([^\n]+\\)" line 2))) - (if (first expr) - (list (first expr) start end)))) + (line (buffer-substring-no-properties start end))) + (save-excursion + (save-match-data + (let ((bound (point))) + (goto-char start) + (if (re-search-forward "\\(\\([ \t]+\\)?<[^>]*?>\\)+" bound t) + (progn + (setq start (match-end 0)) + (setq end bound) + (setq line (buffer-substring-no-properties start end)) + ) + )))) + (let ((expr (emmet-regex "\\([ \t]*\\)\\([^\n]+\\)" line 2))) + (if (first expr) + (list (first expr) start end))))) (defcustom emmet-indentation 4 "Number of spaces used for indentation." |