Improve Godoc support (#75)

* Improve Godoc support

Godoc recommends, as per https://go.dev/blog/godoc , that documentation
comments start with the name of the thing being documented.

This adds that, as well as better support for structs and interfaces.

* ref(go) Use `as` keyword in configuration trees

* chore: Bump neogen version

Co-authored-by: danymat <d.danymat@gmail.com>
This commit is contained in:
Barak Michener
2022-03-03 01:43:26 -08:00
committed by GitHub
parent b7d2ce8c1d
commit 7e97b9a71e
3 changed files with 61 additions and 5 deletions

View File

@@ -1,17 +1,46 @@
local template = require("neogen.template")
local extractors = require("neogen.utilities.extractors")
local nodes_utils = require("neogen.utilities.nodes")
return {
parent = {
func = { "function_declaration" },
type = { "package_clause", "const_declaration", "var_declaration" },
func = { "function_declaration", "method_declaration" },
type = { "package_clause", "const_declaration", "var_declaration", "type_declaration" },
},
data = {
func = {
["function_declaration"] = {
["0"] = {
extract = function()
return {}
extract = function(node)
local tree = {
{
retrieve = "first",
node_type = "identifier",
extract = "true",
as = "func_name",
},
}
local nodes = nodes_utils:matching_nodes_from(node, tree)
local res = extractors:extract_from_matched(nodes)
return res
end,
},
},
["method_declaration"] = {
["0"] = {
extract = function(node)
local tree = {
{
retrieve = "first",
node_type = "field_identifier",
extract = "true",
as = "func_name",
},
}
local nodes = nodes_utils:matching_nodes_from(node, tree)
local res = extractors:extract_from_matched(nodes)
return res
end,
},
},
@@ -24,6 +53,29 @@ return {
end,
},
},
["type_declaration"] = {
["0"] = {
extract = function(node)
local tree = {
{
retrieve = "all",
node_type = "type_spec",
subtree = {
{
retrieve = "first",
node_type = "type_identifier",
extract = true,
as = "type_name",
},
},
},
}
local nodes = nodes_utils:matching_nodes_from(node, tree)
local res = extractors:extract_from_matched(nodes)
return res
end,
},
},
},
},

View File

@@ -216,6 +216,8 @@ end
---
--- Note: We will only document `major` and `minor` versions, not `patch` ones.
---
--- ## 2.4.0~
--- - Improve godoc template (#75)
--- ## 2.3.0~
--- - Added bundled support with snippet engines !
--- Check out |snippet-integration| for basic setup
@@ -234,7 +236,7 @@ end
--- with multiple annotation conventions.
---@tag neogen-changelog
---@toc_entry Changes in neogen plugin
neogen.version = "2.3.0"
neogen.version = "2.4.0"
--minidoc_afterlines_end
return neogen

View File

@@ -1,3 +1,5 @@
return {
{ nil, " $1", { no_results = true } },
{ "func_name", " %s $1", { type = { "func" }}},
{ "type_name", " %s $1", { type = { "type" }}},
}