Files
nvim/lua/autocmd.lua

109 lines
3.5 KiB
Lua
Raw Normal View History

2025-04-12 23:49:02 +01:00
-- [[ Basic Autocommands ]]
-- See `:help lua-guide-autocommands`
-- Highlight when yanking (copying) text
-- Try it with `yap` in normal mode
-- See `:help vim.highlight.on_yank()`
vim.api.nvim_create_autocmd('TextYankPost', {
desc = 'Highlight when yanking (copying) text',
group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }),
callback = function()
vim.highlight.on_yank()
end,
})
2025-04-13 22:53:08 +01:00
local autosave_group = vim.api.nvim_create_augroup('autosaving', { clear = true })
vim.api.nvim_create_autocmd('FocusLost', {
group = autosave_group,
pattern = '*',
command = 'silent! wa', -- Save all files when moving away from the window
})
2025-04-17 08:53:20 +01:00
vim.api.nvim_create_autocmd('InsertLeave', {
group = autosave_group,
pattern = '*',
command = 'silent! wa', -- Save all files when leaving insert mode
})
2025-04-13 22:53:08 +01:00
2025-04-14 15:20:54 +01:00
-- vim.api.nvim_create_autocmd('TextChanged', {
-- group = autosave_group,
-- pattern = '*',
-- command = 'silent! wa', -- Save all files when text is changed
-- })
2025-04-13 22:53:08 +01:00
vim.api.nvim_create_autocmd('User', {
pattern = 'OilActionsPost',
2025-04-14 11:38:42 +01:00
callback = function(event)
if event.data.actions.type == 'move' then
2025-04-14 11:38:42 +01:00
Snacks.rename.on_rename_file(event.data.actions.src_url, event.data.actions.dest_url)
end
end,
})
local fidget_group = vim.api.nvim_create_augroup('CodeCompanionFidgetHooks', { clear = true })
2025-04-15 20:48:35 +01:00
vim.api.nvim_create_autocmd({ 'User' }, {
pattern = 'CodeCompanionRequestStarted',
2025-04-15 20:48:35 +01:00
group = fidget_group,
callback = function(event)
local FidgetHelper = require 'utils.fidget_helper'
2025-04-15 20:48:35 +01:00
-- Pass event instead of request if the callback receives the full event object
local handle = FidgetHelper:create_progress_handle(event)
FidgetHelper:store_progress_handle(event.data.id, handle)
end,
})
vim.api.nvim_create_autocmd({ 'User' }, {
pattern = 'CodeCompanionRequestFinished',
2025-04-15 20:48:35 +01:00
group = fidget_group,
callback = function(event)
local FidgetHelper = require 'utils.fidget_helper'
2025-04-17 08:53:20 +01:00
local handle = FidgetHelper:pop_progress_handle(event.data.id)
2025-04-15 20:48:35 +01:00
if handle then
FidgetHelper:report_exit_status(handle, event)
handle:finish()
end
end,
2025-04-22 16:55:58 +01:00
})
vim.api.nvim_create_autocmd('BufEnter', {
callback = function(event)
local windows = vim.api.nvim_list_wins()
for _, window in ipairs(windows) do
local bufnr = vim.api.nvim_win_get_buf(window)
if vim.api.nvim_get_option_value('buflisted', { buf = bufnr }) then
return
end
end
vim.cmd 'qa'
end,
})
2025-04-15 21:02:09 +01:00
local modes_group = vim.api.nvim_create_augroup('modes', { clear = true })
vim.api.nvim_create_autocmd('FocusLost', {
group = modes_group,
pattern = '*',
command = 'call feedkeys("\\<Esc>")',
})
vim.api.nvim_create_autocmd('BufNewFile', {
group = modes_group,
pattern = '*',
command = 'call feedkeys("i")',
2025-04-15 20:48:35 +01:00
})
2025-04-24 11:59:36 +01:00
-- Reload LuaSnip snippets when saving files in the snippets directory
local snippets_dir = vim.fn.stdpath 'config' .. '/lua/snippets'
vim.api.nvim_create_autocmd('BufWritePost', {
pattern = snippets_dir .. '/*.json', -- Adjust the path to match your snippets directory
desc = 'Reload LuaSnip snippets on save',
callback = function()
require('luasnip.loaders.from_vscode').lazy_load { paths = { snippets_dir } }
vim.notify('Snippets reloaded!', vim.log.levels.INFO)
end,
})
2025-04-12 23:49:02 +01:00
require('helpers').edit_cf('a', '/lua/autocmd.lua')