aboutsummaryrefslogtreecommitdiff
path: root/lua/pets
diff options
context:
space:
mode:
Diffstat (limited to 'lua/pets')
-rw-r--r--lua/pets/commands.lua18
-rw-r--r--lua/pets/utils.lua4
2 files changed, 19 insertions, 3 deletions
diff --git a/lua/pets/commands.lua b/lua/pets/commands.lua
index d9c6745..975ec9b 100644
--- a/lua/pets/commands.lua
+++ b/lua/pets/commands.lua
@@ -1,18 +1,30 @@
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)
+local utils = require("pets.utils")
+for _, pet in pairs(utils.listdir(wd)) do
+ local styles = 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
+
+ -- validate the pets and style options
+ if available_pets[pet] == nil then
+ utils.warning('The pet "' .. pet .. '" does not exist')
+ return
+ end
+ if available_pets[pet][style] then
+ utils.warning('The style "' .. style .. '" for "' .. pet .. '" does not exist')
+ return
+ end
+
if pets.options.random then
local styles = available_pets["cat"]
pet, style = "cat", styles[math.random(#styles)]
end
+
pets.create_pet(input.args, pet, style)
end, { nargs = 1 })
diff --git a/lua/pets/utils.lua b/lua/pets/utils.lua
index 9577911..0bf6e9b 100644
--- a/lua/pets/utils.lua
+++ b/lua/pets/utils.lua
@@ -24,4 +24,8 @@ function M.listdir(directory, suppress)
return t
end
+function M.warning(msg)
+ vim.notify(msg, vim.log.levels.WARN)
+end
+
return M