diff options
| author | Giuseppe Gadola <giusgadola@gmail.com> | 2023-02-14 17:18:00 +0100 |
|---|---|---|
| committer | Giuseppe Gadola <giusgadola@gmail.com> | 2023-02-14 19:17:20 +0100 |
| commit | 409ac98f110399215e36545a5a6bdce482f64ea5 (patch) | |
| tree | 75b034e5f8445af3ee09efbdbf1d6035e37ef7f3 /lua | |
| parent | docs(help): auto generate docs (diff) | |
refactor(commands): get available pets one time
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/pets/commands.lua | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lua/pets/commands.lua b/lua/pets/commands.lua index ab64fdb..87b7318 100644 --- a/lua/pets/commands.lua +++ b/lua/pets/commands.lua @@ -1,11 +1,16 @@ local pets = require("pets") local wd = debug.getinfo(1).source:sub(2):match("(.*nvim/)") .. "media/" +local available_pets = {} +for _, pet in pairs(require("pets.utils").listdir(wd)) do + local styles = require("pets.utils").listdir(wd .. pet) + available_pets[pet] = styles +end vim.api.nvim_create_user_command("PetsNew", function(input) --TODO: validate style and type options local pet, style = pets.options.default_pet, pets.options.default_style if pets.options.random then - local styles = require("pets.utils").listdir(wd .. "cat") + local styles = available_pets["cat"] pet, style = "cat", styles[math.random(#styles)] end pets.create_pet(input.args, pet, style) @@ -20,11 +25,11 @@ local function autocomplete(_, cmdline) end if #words == 1 then - for _, v in pairs(require("pets.utils").listdir(wd)) do + for _, v in available_pets do table.insert(matches, v) end elseif #words == 2 then - local styles = require("pets.utils").listdir(wd .. words[2], true) + local styles = available_pets[words[2]] for _, v in pairs(styles) do table.insert(matches, v) end |