chore: move text node filtering to utils function

This commit is contained in:
Mikhail Morozov 2024-07-16 14:22:57 +03:00
parent 0782035107
commit 7f9f55b285
2 changed files with 15 additions and 14 deletions

View File

@ -287,20 +287,8 @@ local function validate_tag_regex(node, start_regex, end_regex)
if node == nil then
return false
end
local texts = utils.get_node_text(node)
local filtered = {}
-- For some nodes (tsx) 'vim.treesitter.get_node_text' can return empty lines or lines with spaces
-- We have to exclude them
for i = 1, #texts do
local text = texts[i]:gsub("^%s*(.-)%s*$", "%1")
if text ~= "" then
filtered[#filtered + 1] = text
end
end
if string.match(filtered[1], start_regex) and string.match(filtered[#filtered], end_regex) then
if string.match(texts[1], start_regex) and string.match(texts[#texts], end_regex) then
return true
end
return false

View File

@ -63,7 +63,20 @@ end
M.get_node_text = function(node)
local _, txt = pcall(get_node_text, node, vim.api.nvim_get_current_buf())
return vim.split(txt, "\n") or {}
local texts = vim.split(txt, "\n")
local filtered = {}
-- For some nodes (tsx) 'vim.treesitter.get_node_text' can return empty lines or lines with spaces
-- We have to exclude them
for i = 1, #texts do
local text = texts[i]:gsub("^%s*(.-)%s*$", "%1")
if text ~= "" then
filtered[#filtered + 1] = text
end
end
return filtered or {}
end
-- Stolen from nvim `0.10.0` for `0.9.5` users