Prioritizes syntax at the current cursor position for determining the file type

This commit is contained in:
jpsouzasilva
2018-08-25 15:22:18 -03:00
parent 63c98d801b
commit 7843f18e40

View File

@@ -376,46 +376,42 @@ endfunction
function! emmet#getFileType(...) abort function! emmet#getFileType(...) abort
let flg = get(a:000, 0, 0) let flg = get(a:000, 0, 0)
let type = ''
let pos = emmet#util#getcurpos()
if has_key(s:emmet_settings, &filetype) let type = synIDattr(synID(pos[1], pos[2], 1), 'name')
let type = &filetype if type =~# '^css\w'
let type = 'css'
elseif type =~# '^html\w'
let type = 'html'
elseif type =~# '^javaScript'
let type = 'javascript'
elseif len(type) ==# 0 && type =~# '^xml'
let type = 'xml'
else else
let types = split(&filetype, '\.') if has_key(s:emmet_settings, &filetype)
for part in types let type = &filetype
if emmet#lang#exists(part) else
let type = part let types = split(&filetype, '\.')
break for part in types
endif if emmet#lang#exists(part)
let base = emmet#getBaseType(part) let type = part
if base !=# '' break
if flg
let type = &filetype
else
let type = base
endif endif
unlet base let base = emmet#getBaseType(part)
break if base !=# ''
endif if flg
endfor let type = &filetype
else
let type = base
endif
unlet base
break
endif
endfor
endif
if len(type) ==# 0 | let type = 'html' | endif
endif endif
if type ==# 'html'
let pos = emmet#util#getcurpos()
let type = synIDattr(synID(pos[1], pos[2], 1), 'name')
if type =~# '^css\w'
let type = 'css'
endif
if type =~# '^html\w'
let type = 'html'
endif
if type =~# '^javaScript'
let type = 'javascript'
endif
if len(type) ==# 0 && type =~# '^xml'
let type = 'xml'
endif
endif
if len(type) ==# 0 | let type = 'html' | endif
return type return type
endfunction endfunction
@@ -523,7 +519,7 @@ function! emmet#expandAbbr(mode, abbr) range abort
if len(filters) ==# 0 if len(filters) ==# 0
let filters = ['html'] let filters = ['html']
endif endif
if a:mode ==# 2 if a:mode ==# 2
let leader = substitute(input('Tag: ', ''), '^\s*\(.*\)\s*$', '\1', 'g') let leader = substitute(input('Tag: ', ''), '^\s*\(.*\)\s*$', '\1', 'g')
if len(leader) ==# 0 if len(leader) ==# 0