Support for optional params in python
This commit is contained in:
@@ -16,25 +16,38 @@ return {
|
|||||||
local params = neogen.utilities.nodes:matching_child_nodes(node, "parameters")[1]
|
local params = neogen.utilities.nodes:matching_child_nodes(node, "parameters")[1]
|
||||||
|
|
||||||
|
|
||||||
local regular_params
|
local found_nodes
|
||||||
local typed_params_node
|
|
||||||
if #params ~= 0 then
|
if #params ~= 0 then
|
||||||
|
|
||||||
|
|
||||||
-- Find regular parameters
|
-- Find regular parameters
|
||||||
regular_params = neogen.utilities.extractors:extract_children_text("identifier")(params)
|
local regular_params = neogen.utilities.extractors:extract_children_text("identifier")(params)
|
||||||
if #regular_params == 0 then
|
if #regular_params == 0 then
|
||||||
regular_params = nil
|
regular_params = nil
|
||||||
end
|
end
|
||||||
results.parameters = regular_params
|
results.parameters = regular_params
|
||||||
|
|
||||||
-- Find typed params
|
-- Find regular optional parameters
|
||||||
typed_params_node = neogen.utilities.nodes:matching_child_nodes(params, "typed_parameter")
|
found_nodes = neogen.utilities.nodes:matching_child_nodes(params, "default_parameter")
|
||||||
for _,_node in pairs(typed_params_node) do
|
for _,_node in pairs(found_nodes) do
|
||||||
local typed_params = neogen.utilities.extractors:extract_children_text("identifier")(_node)[1]
|
local _params = neogen.utilities.extractors:extract_children_text("identifier")(_node)[1]
|
||||||
table.insert(results.parameters, typed_params)
|
table.insert(results.parameters, _params)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Find typed params
|
||||||
|
found_nodes = neogen.utilities.nodes:matching_child_nodes(params, "typed_parameter")
|
||||||
|
for _,_node in pairs(found_nodes) do
|
||||||
|
local _params = neogen.utilities.extractors:extract_children_text("identifier")(_node)[1]
|
||||||
|
table.insert(results.parameters, _params)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- TODO Find optional typed params
|
||||||
|
found_nodes = neogen.utilities.nodes:matching_child_nodes(params, "typed_default_parameter")
|
||||||
|
for _,_node in pairs(found_nodes) do
|
||||||
|
local _params = neogen.utilities.extractors:extract_children_text("identifier")(_node)[1]
|
||||||
|
table.insert(results.parameters, _params)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- TODO Find optional params
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local body = neogen.utilities.nodes:matching_child_nodes(node, "block")[1]
|
local body = neogen.utilities.nodes:matching_child_nodes(node, "block")[1]
|
||||||
@@ -46,11 +59,9 @@ return {
|
|||||||
if #return_statement == 0 then
|
if #return_statement == 0 then
|
||||||
return_statement = nil
|
return_statement = nil
|
||||||
end
|
end
|
||||||
|
results.return_statement = return_statement
|
||||||
|
|
||||||
return {
|
return results
|
||||||
parameters = regular_params,
|
|
||||||
return_statement = return_statement
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user