aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2024-09-01 12:15:02 -0500
committerGitHub <noreply@github.com>2024-09-01 10:15:02 -0700
commit318c0415d5b10b44fee4afa06994734f1beb7e71 (patch)
tree05738f88a23729e2c4b9ee4d0d4c7fdae4ce71af
parent97f8d1de1cfaebd67bc994401da38b003b64b6df (diff)
downloadrneovim-318c0415d5b10b44fee4afa06994734f1beb7e71.tar.gz
rneovim-318c0415d5b10b44fee4afa06994734f1beb7e71.tar.bz2
rneovim-318c0415d5b10b44fee4afa06994734f1beb7e71.zip
fix(ui): correctly pass metadata to get_node_text #30222
Fixes: #30220
-rw-r--r--runtime/lua/vim/_meta/api_keysets_extra.lua2
-rw-r--r--runtime/lua/vim/ui.lua9
2 files changed, 6 insertions, 5 deletions
diff --git a/runtime/lua/vim/_meta/api_keysets_extra.lua b/runtime/lua/vim/_meta/api_keysets_extra.lua
index 8faf5f49aa..81bce50746 100644
--- a/runtime/lua/vim/_meta/api_keysets_extra.lua
+++ b/runtime/lua/vim/_meta/api_keysets_extra.lua
@@ -23,7 +23,7 @@ error('Cannot require a meta file')
--- @field conceal? boolean
--- @field spell? boolean
--- @field ui_watched? boolean
---- @field url? boolean
+--- @field url? string
--- @field hl_mode? string
---
--- @field virt_text? [string, string][]
diff --git a/runtime/lua/vim/ui.lua b/runtime/lua/vim/ui.lua
index b831a4f23e..c2b19e92c0 100644
--- a/runtime/lua/vim/ui.lua
+++ b/runtime/lua/vim/ui.lua
@@ -170,7 +170,7 @@ end
--- Returns all URLs at cursor, if any.
--- @return string[]
function M._get_urls()
- local urls = {}
+ local urls = {} ---@type string[]
local bufnr = vim.api.nvim_get_current_buf()
local cursor = vim.api.nvim_win_get_cursor(0)
@@ -183,7 +183,7 @@ function M._get_urls()
})
for _, v in ipairs(extmarks) do
local details = v[4]
- if details.url then
+ if details and details.url then
urls[#urls + 1] = details.url
end
end
@@ -195,7 +195,7 @@ function M._get_urls()
local lang = ltree:lang()
local query = vim.treesitter.query.get(lang, 'highlights')
if query then
- local tree = ltree:tree_for_range(range)
+ local tree = assert(ltree:tree_for_range(range))
for _, match, metadata in query:iter_matches(tree:root(), bufnr, row, row + 1, { all = true }) do
for id, nodes in pairs(match) do
for _, node in ipairs(nodes) do
@@ -203,7 +203,8 @@ function M._get_urls()
local url = metadata[id] and metadata[id].url
if url and match[url] then
for _, n in ipairs(match[url]) do
- urls[#urls + 1] = vim.treesitter.get_node_text(n, bufnr, metadata[url])
+ urls[#urls + 1] =
+ vim.treesitter.get_node_text(n, bufnr, { metadata = metadata[url] })
end
end
end