ref: Code refactoring
- Try to not expose as much commands and code via neogen - Use minidoc to generate docgen
This commit is contained in:
@@ -1,3 +1,7 @@
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
local default_locator = require("neogen.locators.default")
|
||||
|
||||
local c_params = {
|
||||
retrieve = "first",
|
||||
node_type = "parameter_list",
|
||||
@@ -64,12 +68,12 @@ local c_function_extractor = function(node)
|
||||
c_params,
|
||||
}
|
||||
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
if nodes.function_declarator then
|
||||
local subnodes = neogen.utilities.nodes:matching_nodes_from(nodes.function_declarator[1]:parent(), tree)
|
||||
local subres = neogen.utilities.extractors:extract_from_matched(subnodes)
|
||||
local subnodes = nodes_utils:matching_nodes_from(nodes.function_declarator[1]:parent(), tree)
|
||||
local subres = extractors:extract_from_matched(subnodes)
|
||||
res = vim.tbl_deep_extend("keep", res, subres)
|
||||
end
|
||||
|
||||
@@ -139,7 +143,7 @@ local c_config = {
|
||||
},
|
||||
|
||||
locator = function(node_info, nodes_to_match)
|
||||
local result = neogen.default_locator(node_info, nodes_to_match)
|
||||
local result = default_locator(node_info, nodes_to_match)
|
||||
if not result then
|
||||
return nil
|
||||
end
|
||||
@@ -198,8 +202,8 @@ local cpp_config = {
|
||||
local tree = {
|
||||
{ retrieve = "first", node_type = "type_identifier", extract = true },
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
return res
|
||||
end,
|
||||
},
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
|
||||
return {
|
||||
parent = {
|
||||
func = {
|
||||
@@ -42,8 +45,8 @@ return {
|
||||
},
|
||||
},
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
res.identifier = res["_"]
|
||||
return res
|
||||
end,
|
||||
@@ -97,8 +100,8 @@ return {
|
||||
},
|
||||
},
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
return res
|
||||
end,
|
||||
},
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
|
||||
local function_tree = {
|
||||
{
|
||||
retrieve = "first",
|
||||
@@ -58,8 +61,8 @@ return {
|
||||
local results = {}
|
||||
local tree = function_tree
|
||||
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
if res.throws then
|
||||
results.throw_statement = res.throws
|
||||
@@ -77,8 +80,8 @@ return {
|
||||
local results = {}
|
||||
local tree = function_tree
|
||||
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
results.parameters = res.identifier
|
||||
if res.throws then
|
||||
@@ -98,8 +101,8 @@ return {
|
||||
extract = function(node)
|
||||
local results = {}
|
||||
local tree = { { retrieve = "all", node_type = "identifier", extract = true } }
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
results.class_name = res.identifier
|
||||
return results
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
|
||||
local function_tree = {
|
||||
{
|
||||
retrieve = "first",
|
||||
@@ -37,8 +40,8 @@ return {
|
||||
extract = function(node)
|
||||
local results = {}
|
||||
local tree = function_tree
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
results.parameters = res.identifier
|
||||
results.return_statement = res.return_statement
|
||||
@@ -51,8 +54,8 @@ return {
|
||||
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)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
results.parameters = res.identifier
|
||||
results.return_statement = res.return_statement
|
||||
@@ -65,8 +68,8 @@ return {
|
||||
extract = function(node)
|
||||
local results = {}
|
||||
local tree = { { retrieve = "all", node_type = "arrow_function", subtree = function_tree } }
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
results.parameters = res.identifier
|
||||
results.return_statement = res.return_statement
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
|
||||
local function_extractor = function(node, type)
|
||||
if not vim.tbl_contains({ "local", "function" }, type) then
|
||||
error("Incorrect call for function_extractor")
|
||||
@@ -26,8 +29,8 @@ local function_extractor = function(node, type)
|
||||
}
|
||||
end
|
||||
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
return {
|
||||
parameters = res.identifier,
|
||||
@@ -56,7 +59,7 @@ local extract_from_var = function(node)
|
||||
extract = true,
|
||||
},
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
return nodes
|
||||
end
|
||||
|
||||
@@ -93,7 +96,7 @@ return {
|
||||
["0"] = {
|
||||
extract = function(node)
|
||||
local nodes = extract_from_var(node)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
return {
|
||||
class_name = res.identifier,
|
||||
}
|
||||
@@ -109,7 +112,7 @@ return {
|
||||
result.type = {}
|
||||
|
||||
local nodes = extract_from_var(node)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes, { type = true })
|
||||
local res = extractors:extract_from_matched(nodes, { type = true })
|
||||
|
||||
-- We asked the extract_from_var function to find the type node at right assignment.
|
||||
-- We check if it found it, or else will put `any` in the type
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
|
||||
return {
|
||||
parent = {
|
||||
type = { "property_declaration", "const_declaration", "foreach_statement" },
|
||||
@@ -12,8 +15,8 @@ return {
|
||||
local tree = {
|
||||
{ node_type = "property_element", retrieve = "all", extract = true },
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
return res
|
||||
end,
|
||||
},
|
||||
@@ -54,8 +57,8 @@ return {
|
||||
},
|
||||
},
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
return res
|
||||
end,
|
||||
},
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
local ts_utils = require("nvim-treesitter.ts_utils")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
|
||||
return {
|
||||
-- Search for these nodes
|
||||
@@ -74,7 +76,7 @@ return {
|
||||
extract = true,
|
||||
},
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
if nodes["typed_parameter"] then
|
||||
results["typed_parameters"] = {}
|
||||
for _, n in pairs(nodes["typed_parameter"]) do
|
||||
@@ -82,15 +84,15 @@ return {
|
||||
{ retrieve = "all", node_type = "identifier", extract = true },
|
||||
{ retrieve = "all", node_type = "type", extract = true },
|
||||
}
|
||||
local typed_parameters = neogen.utilities.nodes:matching_nodes_from(n, type_subtree)
|
||||
typed_parameters = neogen.utilities.extractors:extract_from_matched(typed_parameters)
|
||||
local typed_parameters = nodes_utils:matching_nodes_from(n, type_subtree)
|
||||
typed_parameters = extractors:extract_from_matched(typed_parameters)
|
||||
table.insert(results["typed_parameters"], typed_parameters)
|
||||
end
|
||||
end
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
if nodes["anonymous_return"] then
|
||||
local _res = neogen.utilities.extractors:extract_from_matched(nodes, { type = true })
|
||||
local _res = extractors:extract_from_matched(nodes, { type = true })
|
||||
results.anonymous_return = _res.anonymous_return
|
||||
end
|
||||
|
||||
@@ -133,7 +135,7 @@ return {
|
||||
},
|
||||
}
|
||||
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
|
||||
if vim.tbl_isempty(nodes) then
|
||||
return {}
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
|
||||
return {
|
||||
parent = {
|
||||
func = { "function_item", "function_signature_item" },
|
||||
@@ -29,8 +32,8 @@ return {
|
||||
},
|
||||
},
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
return res
|
||||
end,
|
||||
},
|
||||
@@ -64,8 +67,8 @@ return {
|
||||
},
|
||||
},
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
return res
|
||||
end,
|
||||
},
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
local extractors = require("neogen.utilities.extractors")
|
||||
local nodes_utils = require("neogen.utilities.nodes")
|
||||
|
||||
local construct_type_annotation = function(parameters)
|
||||
local results = parameters and {} or nil
|
||||
if parameters then
|
||||
@@ -6,8 +9,8 @@ local construct_type_annotation = function(parameters)
|
||||
{ retrieve = "all", node_type = "identifier", extract = true },
|
||||
{ retrieve = "all", node_type = "type_identifier", recursive = true, extract = true },
|
||||
}
|
||||
local typed_parameters = neogen.utilities.nodes:matching_nodes_from(param, subtree)
|
||||
typed_parameters = neogen.utilities.extractors:extract_from_matched(typed_parameters)
|
||||
local typed_parameters = nodes_utils:matching_nodes_from(param, subtree)
|
||||
typed_parameters = extractors:extract_from_matched(typed_parameters)
|
||||
table.insert(results, typed_parameters)
|
||||
end
|
||||
end
|
||||
@@ -56,8 +59,8 @@ return {
|
||||
extract = function(node)
|
||||
local results = {}
|
||||
local tree = function_tree
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
results.type = construct_type_annotation(nodes.required_parameter)
|
||||
results.opt_type = construct_type_annotation(nodes.optional_parameter)
|
||||
@@ -72,8 +75,8 @@ return {
|
||||
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)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
results.type = construct_type_annotation(nodes.type_annotation)
|
||||
results.opt_type = construct_type_annotation(nodes.optional_parameter)
|
||||
@@ -88,8 +91,8 @@ return {
|
||||
extract = function(node)
|
||||
local results = {}
|
||||
local tree = { { retrieve = "all", node_type = "arrow_function", subtree = function_tree } }
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local res = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local res = extractors:extract_from_matched(nodes)
|
||||
|
||||
results.type = construct_type_annotation(nodes.type_annotation)
|
||||
results.opt_type = construct_type_annotation(nodes.optional_parameter)
|
||||
@@ -124,8 +127,8 @@ return {
|
||||
extract = true,
|
||||
},
|
||||
}
|
||||
local nodes = neogen.utilities.nodes:matching_nodes_from(node, tree)
|
||||
local results = neogen.utilities.extractors:extract_from_matched(nodes)
|
||||
local nodes = nodes_utils:matching_nodes_from(node, tree)
|
||||
local results = extractors:extract_from_matched(nodes)
|
||||
|
||||
res.type = results.identifier
|
||||
return res
|
||||
|
||||
Reference in New Issue
Block a user