Files
absolute-vim/lua/absolute/after/hologram.lua
David Ibia c4e74ff5e1 style(hologram.lua): fix indentation for consistency and readability
feat(hologram.lua): change image_pattern to start with a dot for file extensions
feat(hologram.lua): add support for handling image previews on buffer enter and leave events
2024-02-26 14:37:14 +01:00

58 lines
1.4 KiB
Lua

local hologram = require("hologram")
local image = require("hologram.image")
-- Image should appear below this line, then disappear after 5 seconds
hologram.setup({
auto_display = true,
})
--[[
id: (number) autocommand id
event: (string) name of the triggered event |autocmd-events|
group: (number|nil) autocommand group id, if any
match: (string) expanded value of |<amatch>|
buf: (number) expanded value of |<abuf>|
file: (string) expanded value of |<afile>|
data: (any) arbitrary data passed |nvim_exec_autocmds()| ]]
local new_image = nil
local function handle_image_preview(arguments)
-- get the file path
local file = arguments.file
local buf = arguments.buf
--[[
print("Hologram activated")
print("File: " .. file) ]]
new_image = image:new(file, {}):display(5, 0, buf, {})
vim.defer_fn(function()
new_image:delete(0, { free = true })
end, 10000)
end
local function handle_image_preview_close()
-- Check if New Image is not nil explicitly
-- if new_image == nil then
-- return
-- end
--
-- new_image:delete(0, { free = true })
-- new_image = nil
end
local image_pattern = { ".png", ".jpg", ".jpeg", ".gif" }
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
pattern = image_pattern,
callback = handle_image_preview,
})
vim.api.nvim_create_autocmd({ "BufLeave", "BufWinLeave" }, {
pattern = image_pattern,
callback = handle_image_preview_close,
})