Specify template convention in lua

This commit is contained in:
Daniel Mathiot
2021-08-23 10:51:29 +02:00
parent 25ef26da35
commit dd54ea7708
4 changed files with 33 additions and 13 deletions

View File

@@ -139,10 +139,14 @@ generator = nil,
-- Template to use with the generator. (More on this below)
template = {
-- Which annotation convention to use
annotation_convention = "emmylua",
emmylua = {
{ nil, "- " },
{ "parameters", "- @param %s any" },
{ "vararg", "- @vararg any" },
{ "return_statement", "- @return any" }
}
},
```

View File

@@ -10,7 +10,6 @@ require("neogen.locators.default")
require("neogen.granulators.default")
require("neogen.generators.default")
neogen.auto_generate = function(custom_template)
vim.treesitter.get_parser(0):for_each_tree(function(tree, language_tree)
local language = neogen.configuration.languages[language_tree:lang()]
@@ -47,7 +46,7 @@ neogen.auto_generate = function(custom_template)
-- Place cursor after annotations ans start editing
if neogen.configuration.input_after_comment == true then
vim.fn.cursor(to_place + 1, start_column)
vim.api.nvim_command('startinsert!')
vim.api.nvim_command("startinsert!")
end
end
end

View File

@@ -41,7 +41,7 @@ return {
return {
parameters = regular_params,
vararg = varargs,
return_statement = return_statement
return_statement = return_statement,
}
end,
},
@@ -53,12 +53,16 @@ return {
-- Use default granulator and generator
granulator = nil,
generator = nil,
generator = require("neogen.generators.lua"),
template = {
-- Which annotation convention to use
annotation_convention = "emmylua",
emmylua = {
{ nil, "- " },
{ "parameters", "- @param %s any" },
{ "vararg", "- @vararg any" },
{ "return_statement", "- @return any" }
{ "return_statement", "- @return any" },
},
},
}

View File

@@ -0,0 +1,13 @@
--- Uses the specified annotation convention in template, an will use the default generator
return function(parent, data, template)
-- Uses emmylua template by default
if template.annotation_convention == nil then
template = template["emmylua"]
end
-- Uses the template annotation convention specified in config
template = template[template.annotation_convention]
if template ~= nil then
return neogen.default_generator(parent, data, template)
end
end