update treesitter syntax

pull/1/head
ray-x 3 years ago
parent 3b11dbb98c
commit abbc421aee

@ -1,4 +1,4 @@
# [WIP] go.nvim
# go.nvim
A modern golang neovim plugin based on treesitter and nvim-lsp. It is written in Lua and async as much as possible.
PR & Suggestions welcome.
@ -28,6 +28,16 @@ To startup/setup the plugin
require('go').setup()
```
## Screenshots
### Add comments
![auto comments](https://github.com/ray-x/files/blob/master/img/go.nvim/comment.gif?raw=true)
### Add/Remove tags
![auto tag](https://github.com/ray-x/files/blob/master/img/go.nvim/tags.gif?raw=true)
## code format
nvim-lsp support goimport by default.

@ -1,22 +1,16 @@
local nodes = require("go.ts.nodes")
M = {
-- query_struct = "(type_spec name:(type_identifier) @definition.struct type: (struct_type))",
query_package = "(package_clause (package_identifier)@package.name)@package.clause",
query_struct_id = "(type_spec name:(type_identifier) @definition.struct (struct_type))",
query_em_struct_id = "(field_declaration name:(field_identifier) @definition.struct (struct_type))",
query_struct_block = [[((type_declaration (type_spec name:(type_identifier) @struct.name type: (struct_type)))@struct.declaration)]]",
query_em_struct_block = [[(field_declaration name:(field_identifier)@struct.name type: (struct_type)) @struct.declaration)]],
query_struct_block = [[((type_declaration (type_spec name:(type_identifier) @struct.name type: (struct_type)))@struct.declaration)]],
query_em_struct_block = [[(field_declaration name:(field_identifier)@struct.name type: (struct_type)) @struct.declaration]],
query_struct_block_from_id = [[(((type_spec name:(type_identifier) type: (struct_type)))@block.struct_from_id)]],
--query_em_struct = "(field_declaration name:(field_identifier) @definition.struct type: (struct_type))",
query_interface_id = [[((type_declaration (type_spec name:(type_identifier) @interface.name type:(interface_type)))@interface.declaration)]],
query_interface_method = [[((method_spec name: (field_identifier)@method.name)@interface.method.declaration)]],
query_func = "((function_declaration name: (identifier)@function.name) @function.declaration)",
-- query_method = "(method_declaration receiver: (parameter_list (parameter_declaration name:(identifier)@method.receiver.name type:(type_identifier)@method.receiver.type)) name:(field_identifier)@method.name)@method.declaration"
@ -24,7 +18,6 @@ M = {
receiver: (parameter_list)@method.receiver
name: (field_identifier)@method.name
body:(block))@method.declaration)]],
query_method_void = [[((method_declaration
receiver: (parameter_list
(parameter_declaration
@ -35,7 +28,6 @@ M = {
parameters: (parameter_list)@method.parameter
body:(block)
)@method.declaration)]],
query_method_multi_ret = [[(method_declaration
receiver: (parameter_list
(parameter_declaration
@ -47,7 +39,6 @@ M = {
result: (parameter_list)@method.result
body:(block)
)@method.declaration]],
query_method_single_ret = [[((method_declaration
receiver: (parameter_list
(parameter_declaration
@ -59,7 +50,6 @@ M = {
result: (type_identifier)@method.result
body:(block)
)@method.declaration)]],
query_tr_method_void = [[((method_declaration
receiver: (parameter_list
(parameter_declaration
@ -70,7 +60,6 @@ M = {
parameters: (parameter_list)@method.parameter
body:(block)
)@method.declaration)]],
query_tr_method_multi_ret = [[((method_declaration
receiver: (parameter_list
(parameter_declaration
@ -82,7 +71,6 @@ M = {
result: (parameter_list)@method.result
body:(block)
)@method.declaration)]],
query_tr_method_single_ret = [[((method_declaration
receiver: (parameter_list
(parameter_declaration
@ -96,63 +84,82 @@ M = {
)@method.declaration)]]
}
function get_name_defaults()
return {
["func"] = "function",
["if"] = "if",
["else"] = "else",
["for"] = "for",
}
return {
["func"] = "function",
["if"] = "if",
["else"] = "else",
["for"] = "for"
}
end
M.get_struct_node_at_pos = function(row, col)
local query = require("go.ts.go").query_struct_block .. " " .. require("go.ts.go").query_em_struct_block
local nodes = require("go.ts.nodes")
local query = M.query_struct_block .. " " .. M.query_em_struct_block
local bufn = vim.fn.bufnr("")
local ns = nodes.nodes_at_cursor(query, get_name_defaults(), bufn, row, col)
return ns[#ns]
if ns == nil then
print("struct not found")
else
return ns[#ns]
end
end
M.get_interface_node_at_pos = function(row, col)
local query = require("go.ts.go").query_interface_id
local nodes = require("go.ts.nodes")
local query = M.query_interface_id
local bufn = vim.fn.bufnr("")
local ns = nodes.nodes_at_cursor(query, get_name_defaults(), bufn, row, col)
return ns[#ns]
if ns == nil then
print("struct not found")
else
return ns[#ns]
end
end
M.get_interface_method_node_at_pos = function(row, col)
local query = require("go.ts.go").query_interface_method
local nodes = require("go.ts.nodes")
local query = M.query_interface_method
local bufn = vim.fn.bufnr("")
local ns = nodes.nodes_at_cursor(query, get_name_defaults(), bufn, row, col)
return ns[#ns]
if ns == nil then
print("struct not found")
else
return ns[#ns]
end
end
M.get_func_method_node_at_pos = function(row, col)
local query = require("go.ts.go").query_func .. " " .. require("go.ts.go").query_method_name
local query = M.query_func .. " " .. M.query_method_name
-- local query = require("go.ts.go").query_method_name
local nodes = require("go.ts.nodes")
local bufn = vim.fn.bufnr("")
local ns = nodes.nodes_at_cursor(query, get_name_defaults(), bufn, row, col)
if ns == nil then return nil end
return ns[#ns]
if ns == nil then
return nil
end
if ns == nil then
print("struct not found")
else
return ns[#ns]
end
end
M.get_package_node_at_pos = function(row, col)
if row > 10 then return end
local query = require("go.ts.go").query_package
if row > 10 then
return
end
local query = M.query_package
-- local query = require("go.ts.go").query_method_name
local nodes = require("go.ts.nodes")
local bufn = vim.fn.bufnr("")
local ns = nodes.nodes_at_cursor(query, get_name_defaults(), bufn, row, col)
if ns == nil then return nil end
return ns[#ns]
if ns == nil then
return nil
end
if ns == nil then
print("struct not found")
else
return ns[#ns]
end
end
return M

@ -6,7 +6,7 @@ describe(
"should get nodes ",
function()
vim.g.go_nvim_verbose = true
vim.g.go_nvim_comment_placeholder = "go.nvim"
vim.g.go_nvim_comment_placeholder = ""
local status = require("plenary.reload").reload_module("go.nvim")
status = require("plenary.reload").reload_module("nvim-treesitter/nvim-treesitter")
@ -26,7 +26,7 @@ describe(
function()
vim.fn.setpos(".", {bufn, 20, 14, 0})
local query = require("go.comment").gen(20, 14)
eq("// createPlaylist function go.nvim", query)
eq("// createPlaylist function ", query)
end
)
@ -35,7 +35,7 @@ describe(
function()
vim.fn.setpos(".", {bufn, 14, 4, 0})
local query = require("go.comment").gen(14, 4)
eq("// playlist struct go.nvim", query)
eq("// playlist struct ", query)
end
)
end

Loading…
Cancel
Save