mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 13:15:09 -07:00
parent
97f8d1de1c
commit
318c0415d5
@ -23,7 +23,7 @@ error('Cannot require a meta file')
|
|||||||
--- @field conceal? boolean
|
--- @field conceal? boolean
|
||||||
--- @field spell? boolean
|
--- @field spell? boolean
|
||||||
--- @field ui_watched? boolean
|
--- @field ui_watched? boolean
|
||||||
--- @field url? boolean
|
--- @field url? string
|
||||||
--- @field hl_mode? string
|
--- @field hl_mode? string
|
||||||
---
|
---
|
||||||
--- @field virt_text? [string, string][]
|
--- @field virt_text? [string, string][]
|
||||||
|
@ -170,7 +170,7 @@ end
|
|||||||
--- Returns all URLs at cursor, if any.
|
--- Returns all URLs at cursor, if any.
|
||||||
--- @return string[]
|
--- @return string[]
|
||||||
function M._get_urls()
|
function M._get_urls()
|
||||||
local urls = {}
|
local urls = {} ---@type string[]
|
||||||
|
|
||||||
local bufnr = vim.api.nvim_get_current_buf()
|
local bufnr = vim.api.nvim_get_current_buf()
|
||||||
local cursor = vim.api.nvim_win_get_cursor(0)
|
local cursor = vim.api.nvim_win_get_cursor(0)
|
||||||
@ -183,7 +183,7 @@ function M._get_urls()
|
|||||||
})
|
})
|
||||||
for _, v in ipairs(extmarks) do
|
for _, v in ipairs(extmarks) do
|
||||||
local details = v[4]
|
local details = v[4]
|
||||||
if details.url then
|
if details and details.url then
|
||||||
urls[#urls + 1] = details.url
|
urls[#urls + 1] = details.url
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -195,7 +195,7 @@ function M._get_urls()
|
|||||||
local lang = ltree:lang()
|
local lang = ltree:lang()
|
||||||
local query = vim.treesitter.query.get(lang, 'highlights')
|
local query = vim.treesitter.query.get(lang, 'highlights')
|
||||||
if query then
|
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 _, match, metadata in query:iter_matches(tree:root(), bufnr, row, row + 1, { all = true }) do
|
||||||
for id, nodes in pairs(match) do
|
for id, nodes in pairs(match) do
|
||||||
for _, node in ipairs(nodes) do
|
for _, node in ipairs(nodes) do
|
||||||
@ -203,7 +203,8 @@ function M._get_urls()
|
|||||||
local url = metadata[id] and metadata[id].url
|
local url = metadata[id] and metadata[id].url
|
||||||
if url and match[url] then
|
if url and match[url] then
|
||||||
for _, n in ipairs(match[url]) do
|
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
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user