diff --git a/README.md b/README.md index e830e9d..d3b9176 100644 --- a/README.md +++ b/README.md @@ -139,10 +139,14 @@ generator = nil, -- Template to use with the generator. (More on this below) template = { - { nil, "- " }, - { "parameters", "- @param %s any" }, - { "vararg", "- @vararg any" }, - { "return_statement", "- @return any" } + -- Which annotation convention to use + annotation_convention = "emmylua", + emmylua = { + { nil, "- " }, + { "parameters", "- @param %s any" }, + { "vararg", "- @vararg any" }, + { "return_statement", "- @return any" } + } }, ``` diff --git a/lua/neogen.lua b/lua/neogen.lua index 7e67e17..593b919 100644 --- a/lua/neogen.lua +++ b/lua/neogen.lua @@ -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()] @@ -46,8 +45,8 @@ 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.fn.cursor(to_place + 1, start_column) + vim.api.nvim_command("startinsert!") end end end diff --git a/lua/neogen/configurations/lua.lua b/lua/neogen/configurations/lua.lua index f391678..62a7ba5 100644 --- a/lua/neogen/configurations/lua.lua +++ b/lua/neogen/configurations/lua.lua @@ -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 = { - { nil, "- " }, - { "parameters", "- @param %s any" }, - { "vararg", "- @vararg any" }, - { "return_statement", "- @return any" } + -- Which annotation convention to use + annotation_convention = "emmylua", + emmylua = { + { nil, "- " }, + { "parameters", "- @param %s any" }, + { "vararg", "- @vararg any" }, + { "return_statement", "- @return any" }, + }, }, } diff --git a/lua/neogen/generators/lua.lua b/lua/neogen/generators/lua.lua new file mode 100644 index 0000000..a94e6dc --- /dev/null +++ b/lua/neogen/generators/lua.lua @@ -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