From f9693c92ad64704dac71b64f520cab0367f698be Mon Sep 17 00:00:00 2001 From: Smirnov Oleksandr Date: Wed, 29 Jun 2022 15:43:39 +0300 Subject: [PATCH] feat(_utils.ts): get package --- lua/gopher/_utils/ts/init.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lua/gopher/_utils/ts/init.lua b/lua/gopher/_utils/ts/init.lua index 3c253cc..1e1dcae 100644 --- a/lua/gopher/_utils/ts/init.lua +++ b/lua/gopher/_utils/ts/init.lua @@ -4,6 +4,7 @@ local M = { querys = { struct_block = [[((type_declaration (type_spec name:(type_identifier) @struct.name type: (struct_type)))@struct.declaration)]], em_struct_block = [[(field_declaration name:(field_identifier)@struct.name type: (struct_type)) @struct.declaration]], + package = [[(package_clause (package_identifier)@package.name)@package.clause]], method_name = [[((method_declaration receiver: (parameter_list)@method.receiver name: (field_identifier)@method.name body:(block))@method.declaration)]], func = [[((function_declaration name: (identifier)@function.name) @function.declaration)]], }, @@ -49,4 +50,22 @@ function M.get_func_method_node_at_pos(row, col, bufnr) end end +---@param row string +---@param col string +---@param bufnr string +---@return table|nil +function M.get_package_node_at_pos(row, col, bufnr) + -- stylua: ignore + if row > 10 then return end + local query = M.querys.package + local bufn = bufnr or vim.api.nvim_get_current_buf() + local ns = nodes.nodes_at_cursor(query, get_name_defaults(), bufn, row, col) + if ns == nil then + u.notify("package not found", "warn") + return nil + else + return ns[#ns] + end +end + return M