diff --git a/autoload/emmet.vim b/autoload/emmet.vim index a265ff7..15b4032 100644 --- a/autoload/emmet.vim +++ b/autoload/emmet.vim @@ -633,17 +633,20 @@ function! emmet#expandAbbr(mode, abbr) range endif let expand = substitute(expand, '\n\s*$', '', 'g') let expand = line[:-len(part)-1] . substitute(expand, "\n", "\n" . indent, 'g') . rest - let lines = split(expand, '\n') + let lines = split(expand, "\n", 1) if a:mode == 2 silent! exe "normal! gvc" endif - call setline(line('.'), lines[0]) + call setline('.', lines[0]) if len(lines) > 1 - call append(line('.'), lines[1:]) + call append('.', lines[1:]) endif endif endif - if search('\ze\$cursor\$', 'e') + if g:emmet_debug > 1 + call getchar() + endif + if search('\ze\$cursor\$') let oldselection = &selection let &selection = 'inclusive' if foldclosed(line('.')) != -1 @@ -653,10 +656,9 @@ function! emmet#expandAbbr(mode, abbr) range silent! s/\$cursor\$// silent! call setpos('.', pos) let &selection = oldselection - redraw - endif - if g:emmet_debug > 1 - call getchar() + if col('.') < col('$') + return "\" + endif endif return '' endfunction diff --git a/autoload/emmet/lang/html.vim b/autoload/emmet/lang/html.vim index 8bb40f6..88894db 100644 --- a/autoload/emmet/lang/html.vim +++ b/autoload/emmet/lang/html.vim @@ -196,7 +196,8 @@ function! emmet#lang#html#parseIntoTree(abbr, type) let atts = item[1:-2] if matchstr(atts, '^\s*\zs[0-9a-zA-Z-:]\+\(="[^"]*"\|=''[^'']*''\|=[^ ''"]\+\)') == '' if has_key(default_attributes, current.name) - let keys = keys(default_attributes[current.name]) + let dfa = default_attributes[current.name] + let keys = type(dfa) == 3 ? keys(dfa[0]) : keys(dfa) endif if len(keys) == 0 let keys = keys(default_attributes[current.name . ':src']) diff --git a/plugin/emmet.vim b/plugin/emmet.vim index e1e7f76..813049a 100644 --- a/plugin/emmet.vim +++ b/plugin/emmet.vim @@ -101,10 +101,10 @@ endif function! s:install_plugin(mode, buffer) let buffer = a:buffer ? '' : '' let items = [ - \ {'mode': 'i', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmmet-expand-abbr', 'func': '=emmet#util#closePopup()=emmet#expandAbbr(0,"")'}, + \ {'mode': 'i', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmmet-expand-abbr', 'func': '=emmet#util#closePopup()=emmet#expandAbbr(0,"")'}, \ {'mode': 'n', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmmet-expand-abbr', 'func': ':call emmet#expandAbbr(3,"")'}, \ {'mode': 'v', 'var': 'user_emmet_expandabbr_key', 'key': ',', 'plug': 'emmmet-expand-abbr', 'func': ':call emmet#expandAbbr(2,"")'}, - \ {'mode': 'i', 'var': 'user_emmet_expandword_key', 'key': ';', 'plug': 'emmet-expand-word', 'func': '=emmet#util#closePopup()=emmet#expandAbbr(1,"")'}, + \ {'mode': 'i', 'var': 'user_emmet_expandword_key', 'key': ';', 'plug': 'emmet-expand-word', 'func': '=emmet#util#closePopup()=emmet#expandAbbr(1,"")'}, \ {'mode': 'n', 'var': 'user_emmet_expandword_key', 'key': ';', 'plug': 'emmet-expand-word', 'func': ':call emmet#expandAbbr(1,"")'}, \ {'mode': 'i', 'var': 'user_emmet_update_tag', 'key': 'u', 'plug': 'emmmet-update-tag', 'func': '=emmet#util#closePopup()=emmet#updateTag()'}, \ {'mode': 'n', 'var': 'user_emmet_update_tag', 'key': 'u', 'plug': 'emmmet-update-tag', 'func': ':call emmet#updateTag()'}, @@ -118,17 +118,17 @@ function! s:install_plugin(mode, buffer) \ {'mode': 'n', 'var': 'user_emmet_next_key', 'key': 'n', 'plug': 'emmet-move-next', 'func': ':call emmet#moveNextPrev(0)'}, \ {'mode': 'i', 'var': 'user_emmet_prev_key', 'key': 'N', 'plug': 'emmet-move-prev', 'func': ':call emmet#moveNextPrev(1)'}, \ {'mode': 'n', 'var': 'user_emmet_prev_key', 'key': 'N', 'plug': 'emmet-move-prev', 'func': ':call emmet#moveNextPrev(1)'}, - \ {'mode': 'i', 'var': 'user_emmet_imagesize_key', 'key': 'i', 'plug': 'emmet-image-size', 'func': '=emmet#util#closePopup()=emmet#imageSize()'}, + \ {'mode': 'i', 'var': 'user_emmet_imagesize_key', 'key': 'i', 'plug': 'emmet-image-size', 'func': '=emmet#util#closePopup()=emmet#imageSize()'}, \ {'mode': 'n', 'var': 'user_emmet_imagesize_key', 'key': 'i', 'plug': 'emmet-image-size', 'func': ':call emmet#imageSize()'}, - \ {'mode': 'i', 'var': 'user_emmet_togglecomment_key', 'key': '/', 'plug': 'emmet-toogle-comment', 'func': '=emmet#util#closePopup()=emmet#toggleComment()'}, + \ {'mode': 'i', 'var': 'user_emmet_togglecomment_key', 'key': '/', 'plug': 'emmet-toogle-comment', 'func': '=emmet#util#closePopup()=emmet#toggleComment()'}, \ {'mode': 'n', 'var': 'user_emmet_togglecomment_key', 'key': '/', 'plug': 'emmet-toogle-comment', 'func': ':call emmet#toggleComment()'}, \ {'mode': 'i', 'var': 'user_emmet_splitjointag_key', 'key': 'j', 'plug': 'emmet-split-join-tag', 'func': ':call emmet#splitJoinTag()'}, \ {'mode': 'n', 'var': 'user_emmet_splitjointag_key', 'key': 'j', 'plug': 'emmet-split-join-tag', 'func': ':call emmet#splitJoinTag()'}, - \ {'mode': 'i', 'var': 'user_emmet_removetag_key', 'key': 'k', 'plug': 'emmet-remove-tag', 'func': '=emmet#util#closePopup()=emmet#removeTag()'}, + \ {'mode': 'i', 'var': 'user_emmet_removetag_key', 'key': 'k', 'plug': 'emmet-remove-tag', 'func': '=emmet#util#closePopup()=emmet#removeTag()'}, \ {'mode': 'n', 'var': 'user_emmet_removetag_key', 'key': 'k', 'plug': 'emmet-remove-tag', 'func': ':call emmet#removeTag()'}, - \ {'mode': 'i', 'var': 'user_emmet_anchorizeurl_key', 'key': 'a', 'plug': 'emmet-anchorize-url', 'func': '=emmet#util#closePopup()=emmet#anchorizeURL(0)'}, + \ {'mode': 'i', 'var': 'user_emmet_anchorizeurl_key', 'key': 'a', 'plug': 'emmet-anchorize-url', 'func': '=emmet#util#closePopup()=emmet#anchorizeURL(0)'}, \ {'mode': 'n', 'var': 'user_emmet_anchorizeurl_key', 'key': 'a', 'plug': 'emmet-anchorize-url', 'func': ':call emmet#anchorizeURL(0)'}, - \ {'mode': 'i', 'var': 'user_emmet_anchorizesummary_key', 'key': 'A', 'plug': 'emmet-anchorize-summary', 'func': '=emmet#util#closePopup()=emmet#anchorizeURL(1)'}, + \ {'mode': 'i', 'var': 'user_emmet_anchorizesummary_key', 'key': 'A', 'plug': 'emmet-anchorize-summary', 'func': '=emmet#util#closePopup()=emmet#anchorizeURL(1)'}, \ {'mode': 'n', 'var': 'user_emmet_anchorizesummary_key', 'key': 'A', 'plug': 'emmet-anchorize-summary', 'func': ':call emmet#anchorizeURL(1)'}, \ {'mode': 'v', 'var': 'user_emmet_mergelines_key', 'key': 'm', 'plug': 'emmet-merge-lines', 'func': ':call emmet#mergeLines()'}, \ {'mode': 'v', 'var': 'user_emmet_codepretty_key', 'key': 'c', 'plug': 'emmet-code-pretty', 'func': ':call emmet#codePretty()'},