aboutsummaryrefslogtreecommitdiff
path: root/lua/pets
diff options
context:
space:
mode:
authorGiuseppe Gadola <giusgadola@gmail.com>2023-02-10 11:38:56 +0100
committerGiuseppe Gadola <giusgadola@gmail.com>2023-02-10 16:05:59 +0100
commit71fbb46029a52e840eac65a23027ae5f1a3ef7d8 (patch)
tree2f9b00301bd146661f2c9bfe69a2bd443f7b66e7 /lua/pets
parentdocs: added some basic comments to explain functions (diff)
feat(pets): ability to remove pets
Diffstat (limited to 'lua/pets')
-rw-r--r--lua/pets/animations.lua9
-rw-r--r--lua/pets/commands.lua12
-rw-r--r--lua/pets/pet.lua6
3 files changed, 18 insertions, 9 deletions
diff --git a/lua/pets/animations.lua b/lua/pets/animations.lua
index bb0fb5a..8e10c31 100644
--- a/lua/pets/animations.lua
+++ b/lua/pets/animations.lua
@@ -56,4 +56,13 @@ function M.Animation:next_frame()
self.current_image = image
end
+function M.Animation:stop()
+ if self.current_image then
+ self.current_image:delete(0, { free = false })
+ end
+ if self.timer then
+ self.timer:stop()
+ end
+end
+
return M
diff --git a/lua/pets/commands.lua b/lua/pets/commands.lua
index 80709fd..8c521cd 100644
--- a/lua/pets/commands.lua
+++ b/lua/pets/commands.lua
@@ -1,13 +1,9 @@
local pets = require("pets")
-vim.api.nvim_create_user_command("Pets", function()
- pets.show()
-end, {}) -- use nargs = 1 to accept arguments
-
vim.api.nvim_create_user_command("PetsNew", function(input)
- pets.create_pet("Giulio", "cat", "brown") -- TODO: use input.args as name
-end, { nargs = 1 }) -- use nargs = 1 to accept arguments
+ pets.create_pet(input.args, "cat", "brown")
+end, { nargs = 1 })
-vim.api.nvim_create_user_command("PetsCloseAll", function()
- pets.closeAll()
+vim.api.nvim_create_user_command("PetsKillAll", function()
+ pets.kill_all()
end, {})
diff --git a/lua/pets/pet.lua b/lua/pets/pet.lua
index f1f04c3..0b191c9 100644
--- a/lua/pets/pet.lua
+++ b/lua/pets/pet.lua
@@ -11,7 +11,7 @@ function M.Pet.new(name, type, style)
instance.name = name
instance.type = type
instance.style = style
- local wd = "/mnt/shared/coding/lua/plugins/pets.nvim/media/" -- TODO: adapt to use the correct path when plugin is installed
+ local wd = debug.getinfo(1).source:sub(2):match("(.*nvim/)") .. "media/"
instance.sourcedir = wd .. type .. "/" .. style .. "/"
instance.animation = require("pets.animations").Animation.new(instance.sourcedir, type, style)
return instance
@@ -21,4 +21,8 @@ function M.Pet:animate(bufnr)
self.animation:start(bufnr)
end
+function M.Pet:kill()
+ self.animation:stop()
+end
+
return M