Merge remote-tracking branch 'origin/main' into autodetect_type

This commit is contained in:
danymat
2023-01-03 01:09:41 +01:00
4 changed files with 29 additions and 28 deletions

View File

@@ -38,6 +38,20 @@
Use your favorite package manager to install Neogen, e.g: Use your favorite package manager to install Neogen, e.g:
### Lazy
```lua
{
"danymat/neogen",
dependencies = "nvim-treesitter/nvim-treesitter",
config = true,
-- Uncomment next line if you want to follow only stable versions
-- version = "*"
}
```
### Packer
```lua ```lua
use { use {
"danymat/neogen", "danymat/neogen",

View File

@@ -183,7 +183,7 @@ Feel free to submit a PR, I will be happy to help you !
We use semantic versioning ! (https://semver.org) We use semantic versioning ! (https://semver.org)
Here is the current Neogen version: Here is the current Neogen version:
> >
neogen.version = "2.10.3" neogen.version = "2.10.4"
< <
# Changelog~ # Changelog~

View File

@@ -49,15 +49,8 @@ return {
{ {
retrieve = "all", retrieve = "all",
node_type = "typed_default_parameter", node_type = "typed_default_parameter",
extract = true, as = i.Tparam,
subtree = { extract = true
{
retrieve = "all",
node_type = "identifier",
extract = true,
as = i.Tparam,
},
},
}, },
{ {
retrieve = "first", retrieve = "first",
@@ -153,14 +146,14 @@ return {
local results = helpers.copy({ local results = helpers.copy({
[i.HasParameter] = function(t) [i.HasParameter] = function(t)
return t[i.Parameter] and { true } or nil return (t[i.Parameter] or t[i.Tparam]) and { true }
end,
[i.HasReturn] = function(t)
return (t[i.ReturnTypeHint] or t[i.Return]) and { true }
end, end,
[i.Type] = true, [i.Type] = true,
[i.Parameter] = function(t) [i.Parameter] = true,
return t[i.Parameter]
end,
[i.Return] = true, [i.Return] = true,
[i.HasReturn] = true,
[i.ReturnTypeHint] = true, [i.ReturnTypeHint] = true,
[i.ArbitraryArgs] = true, [i.ArbitraryArgs] = true,
[i.Kwargs] = true, [i.Kwargs] = true,
@@ -168,9 +161,6 @@ return {
[i.Tparam] = true, [i.Tparam] = true,
}, res) or {} }, res) or {}
-- Generates a "flag" return
results[i.HasReturn] = (results[i.ReturnTypeHint] or results[i.Return]) and { true } or nil
-- Removes generation for returns that are not typed -- Removes generation for returns that are not typed
if results[i.ReturnTypeHint] then if results[i.ReturnTypeHint] then
results[i.Return] = nil results[i.Return] = nil

View File

@@ -43,17 +43,14 @@ return {
local copy = {} local copy = {}
for parameter, rule in pairs(rules) do for parameter, rule in pairs(rules) do
local parameter_value = table[parameter]
if parameter_value then if type(rule) == "function" then
if type(rule) == "function" then copy[parameter] = rule(table)
copy[parameter] = vim.tbl_deep_extend("error", rule(table), copy[parameter] or {}) elseif rule == true then
elseif rule == true and parameter_value ~= nil then copy[parameter] = table[parameter]
copy[parameter] = parameter_value else
else vim.notify("Incorrect rule format for parameter " .. parameter, vim.log.levels.ERROR)
vim.notify("Incorrect rule format for parameter " .. parameter, vim.log.levels.ERROR) return
return
end
end end
end end