6 Commits

Author SHA1 Message Date
mattn
e983971449 Merge pull request #566 from mmppppss/master
fix bug in len() invalid
2025-07-15 11:44:13 +09:00
Pedro Pozo
56199c129a fix bugemmet.vim
in files with double extension type: "hola.txt.md" it generated an error
it is because you were passing a null to len() that detects if the file does not have an extension len(type)==0
2025-07-14 21:12:24 -04:00
mattn
6c511a8d7d Merge pull request #558 from kola-web/master
support treesitter
2024-08-10 11:07:49 +09:00
kola
033476412e Change treesitter judgment method 2024-08-10 09:32:53 +08:00
kola
8f1581550d my_utils.lua -> emmet_utils.lua 2024-08-10 09:29:20 +08:00
kola
c5c5188a0b support treesitter 2024-08-09 18:06:47 +08:00
2 changed files with 33 additions and 9 deletions

View File

@@ -379,8 +379,12 @@ function! emmet#getFileType(...) abort
endif
endif
let pos = emmet#util#getcurpos()
let type = synIDattr(synID(max([pos[1], 1]), max([pos[2], 1]), 1), 'name')
if get(g:, 'loaded_nvim_treesitter', 0)
let type = luaeval('require"emmet_utils".get_node_at_cursor()')
else
let pos = emmet#util#getcurpos()
let type = synIDattr(synID(max([pos[1], 1]), max([pos[2], 1]), 1), 'name')
endif
" ignore htmlTagName as it seems to occur too often
if type == 'htmlTagName'
@@ -426,7 +430,7 @@ function! emmet#getFileType(...) abort
endfor
endif
return len(type) == 0 ? 'html' : type
return empty(type) ? 'html' : type
endfunction
function! emmet#getDollarExprs(expand) abort
@@ -1913,11 +1917,7 @@ let s:emmet_settings = {
\ 'cap': 'caption',
\ 'colg': 'colgroup',
\ 'fst': 'fieldset',
\ 'fst:disabled': 'fieldset',
\ 'btn': 'button',
\ 'btn:d': 'button',
\ 'btn:r': 'button',
\ 'btn:s': 'button',
\ 'btn:': 'button',
\ 'optg': 'optgroup',
\ 'opt': 'option',
\ 'pic': 'picture',
@@ -1933,7 +1933,6 @@ let s:emmet_settings = {
\ 'sty': 'style',
\ 'prog': 'progress',
\ 'fset': 'fieldset',
\ 'fset:d': 'fieldset',
\ 'datag': 'datagrid',
\ 'datal': 'datalist',
\ 'kg': 'keygen',

25
lua/emmet_utils.lua Normal file
View File

@@ -0,0 +1,25 @@
local M = {}
M.get_node_at_cursor = function()
local ts_utils = require("nvim-treesitter.ts_utils")
local node = ts_utils.get_node_at_cursor()
if not node then
return nil
end
while node do
local node_type = node:type()
if node_type == "element" then
return "html"
elseif node_type == "stylesheet" then
return "css"
end
node = node:parent()
end
return ""
end
return M