Add default comments when no results (python, lua)

This commit is contained in:
Daniel Mathiot
2021-08-24 17:06:32 +02:00
parent bf66cb12b5
commit b58292f71f
5 changed files with 28 additions and 17 deletions

View File

@@ -67,7 +67,7 @@ neogen.setup = function(opts)
languages = {
lua = require("neogen.configurations.lua"),
python = require("neogen.configurations.python"),
javascript = require("neogen.configurations.javascript")
javascript = require("neogen.configurations.javascript"),
},
})

View File

@@ -1,10 +1,18 @@
local function_tree = {
{ retrieve = "first", node_type = "formal_parameters", subtree = {
{ retrieve = "all", node_type = "identifier", extract = true }
} },
{ retrieve = "first", node_type = "statement_block", subtree = {
{ retrieve = "first", node_type = "return_statement", extract = true }
} }
{
retrieve = "first",
node_type = "formal_parameters",
subtree = {
{ retrieve = "all", node_type = "identifier", extract = true },
},
},
{
retrieve = "first",
node_type = "statement_block",
subtree = {
{ retrieve = "first", node_type = "return_statement", extract = true },
},
},
}
return {
parent = { "function_declaration", "expression_statement", "variable_declaration" },
@@ -13,7 +21,7 @@ return {
["function_declaration"] = {
["0"] = {
extract = function (node)
extract = function(node)
local results = {}
local tree = function_tree
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
@@ -22,12 +30,12 @@ return {
results.parameters = res.identifier
results.return_statement = res.return_statement
return results
end
}
end,
},
},
["expression_statement|variable_declaration"] = {
["1"] = {
extract = function (node)
extract = function(node)
local results = {}
local tree = { { retrieve = "all", node_type = "function", subtree = function_tree } }
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
@@ -36,8 +44,8 @@ return {
results.parameters = res.identifier
results.return_statement = res.return_statement
return results
end
}
end,
},
},
},
@@ -50,7 +58,7 @@ return {
{ nil, "/**" },
{ "parameters", " * @param {any} %s " },
{ "return_statement", " * @returns {any} " },
{ nil, " */" }
}
}
{ nil, " */" },
},
},
}

View File

@@ -67,6 +67,7 @@ return {
annotation_convention = "emmylua",
emmylua = {
{ nil, "- " },
{ nil, "- ", { no_results = true } },
{ "parameters", "- @param %s any" },
{ "vararg", "- @vararg any" },
{ "return_statement", "- @return any" },

View File

@@ -106,6 +106,7 @@ return {
use_default_comment = false, -- If you want to prefix the template with the default comment for the language, e.g for python: # (default_generator)
google_docstrings = {
{ nil, '"""' },
{ nil, '""" """', { no_results = true } },
{ "parameters", "\t%s: ", { before_first_item = { "", "Args:" } } },
{ "attributes", "\t%s: ", { before_first_item = { "", "Attributes: " } } },
{ "return_statement", "", { before_first_item = { "", "Returns: " } } },
@@ -114,6 +115,7 @@ return {
},
numpydoc = {
{ nil, '"""' },
{ nil, '""" """', { no_results = true } },
{ "parameters", "%s: ", { before_first_item = { "", "Parameters", "----------" } } },
{ "attributes", "%s: ", { before_first_item = { "", "Attributes", "----------" } } },
{ "return_statement", "", { before_first_item = { "", "Returns", "-------" } } },

View File

@@ -64,7 +64,7 @@ neogen.default_generator = function(parent, data, template)
end
if opts.no_results == true and vim.tbl_isempty(data) then
table.insert(result, prefix .. values[2])
table.insert(result, prefix .. values[2])
else
if not type and opts.no_results ~= true and not vim.tbl_isempty(data) then
table.insert(result, prefix .. values[2]:format(""))