From 7c8169608e6044192e5343f2291d1cb9248862fc Mon Sep 17 00:00:00 2001 From: danymat Date: Wed, 10 Nov 2021 22:45:29 +0100 Subject: [PATCH] (java) Add support for java functions --- lua/neogen/configurations/java.lua | 60 +++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/lua/neogen/configurations/java.lua b/lua/neogen/configurations/java.lua index df900fd..cee1d6f 100644 --- a/lua/neogen/configurations/java.lua +++ b/lua/neogen/configurations/java.lua @@ -1,9 +1,65 @@ return { parent = { class = { "class_declaration" }, + func = { "method_declaration" }, }, data = { + func = { + ["method_declaration"] = { + ["0"] = { + extract = function(node) + local results = {} + local tree = { + { + retrieve = "first", + node_type = "formal_parameters", + subtree = { + { + retrieve = "all", + node_type = "formal_parameter", + subtree = { + { retrieve = "all", node_type = "identifier", extract = true }, + }, + }, + }, + }, + { + retrieve = "first", + node_type = "block", + subtree = { + { retrieve = "first", node_type = "return_statement", extract = true }, + { + retrieve = "first", + node_type = "try_statement", + subtree = { + { + retrieve = "first", + node_type = "block", + subtree = { + { + retrieve = "first", + node_type = "return_statement", + extract = true, + }, + }, + }, + }, + }, + }, + }, + } + + local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree) + local res = neogen.utilities.extractors:extract_from_matched(nodes) + + results.parameters = res.identifier + results.return_statement = res.return_statement + return results + end, + }, + }, + }, class = { ["class_declaration"] = { ["0"] = { @@ -27,7 +83,9 @@ return { javadoc = { { nil, "/**" }, - { "class_name", " * %s $1" }, + { nil, " * %s $1" }, + { "parameters", " * @param %s $1" }, + { "return_statement", " * @return $1" }, { nil, " */" }, }, },