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-08-26 18:23:14 +01:00
|
|
|
vim.api.nvim_create_autocmd('SwapExists', {
|
|
|
|
|
desc = 'Always choose to delete the swap file, files are saved automatically',
|
|
|
|
|
group = vim.api.nvim_create_augroup('NoSwaps', { clear = true }),
|
|
|
|
|
callback = function(args)
|
2025-12-10 14:19:07 +00:00
|
|
|
vim.cmd "let v:swapchoice = 'd'"
|
2025-08-26 18:23:14 +01:00
|
|
|
end,
|
|
|
|
|
})
|
|
|
|
|
|
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
|
|
|
|
2025-04-23 22:38:44 +01:00
|
|
|
vim.api.nvim_create_autocmd('User', {
|
|
|
|
|
pattern = 'OilActionsPost',
|
2025-04-14 11:38:42 +01:00
|
|
|
callback = function(event)
|
2025-04-23 22:38:44 +01:00
|
|
|
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,
|
|
|
|
|
})
|
|
|
|
|
|
2025-04-23 22:38:44 +01:00
|
|
|
local fidget_group = vim.api.nvim_create_augroup('CodeCompanionFidgetHooks', { clear = true })
|
2025-04-15 20:48:35 +01:00
|
|
|
|
2025-04-23 22:38:44 +01:00
|
|
|
vim.api.nvim_create_autocmd({ 'User' }, {
|
|
|
|
|
pattern = 'CodeCompanionRequestStarted',
|
2025-04-15 20:48:35 +01:00
|
|
|
group = fidget_group,
|
|
|
|
|
callback = function(event)
|
2025-04-23 22:38:44 +01:00
|
|
|
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,
|
|
|
|
|
})
|
|
|
|
|
|
2025-04-23 22:38:44 +01:00
|
|
|
vim.api.nvim_create_autocmd({ 'User' }, {
|
|
|
|
|
pattern = 'CodeCompanionRequestFinished',
|
2025-04-15 20:48:35 +01:00
|
|
|
group = fidget_group,
|
|
|
|
|
callback = function(event)
|
2025-04-23 22:38:44 +01:00
|
|
|
local FidgetHelper = require 'utils.fidget_helper'
|
2025-05-02 20:58:31 +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
|
|
|
})
|
|
|
|
|
|
2025-05-02 20:58:31 +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)
|
|
|
|
|
-- local ft = vim.api.nvim_get_option_value('filetype', { buf = bufnr })
|
|
|
|
|
-- if vim.api.nvim_get_option_value('buflisted', { buf = bufnr })
|
|
|
|
|
-- or ft == 'oil'
|
|
|
|
|
-- or ft == 'snacks_dashboard' 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-12-10 14:19:07 +00:00
|
|
|
vim.api.nvim_create_autocmd('FileType', {
|
|
|
|
|
pattern = {
|
|
|
|
|
'bash',
|
|
|
|
|
'c',
|
|
|
|
|
'diff',
|
|
|
|
|
'html',
|
|
|
|
|
'lua',
|
|
|
|
|
'luadoc',
|
|
|
|
|
'markdown',
|
|
|
|
|
'markdown_inline',
|
|
|
|
|
'query',
|
|
|
|
|
'vim',
|
|
|
|
|
'vimdoc',
|
|
|
|
|
'php',
|
|
|
|
|
'javascript',
|
|
|
|
|
'typescript',
|
|
|
|
|
'json',
|
|
|
|
|
},
|
|
|
|
|
callback = function()
|
|
|
|
|
-- syntax highlighting, provided by Neovim
|
|
|
|
|
vim.treesitter.start()
|
|
|
|
|
-- folds, provided by Neovim
|
|
|
|
|
vim.wo.foldexpr = 'v:lua.vim.treesitter.foldexpr()'
|
|
|
|
|
vim.wo.foldmethod = 'expr'
|
|
|
|
|
-- indentation, provided by nvim-treesitter
|
|
|
|
|
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
|
|
|
|
|
end,
|
|
|
|
|
})
|
|
|
|
|
|
2025-04-12 23:49:02 +01:00
|
|
|
require('helpers').edit_cf('a', '/lua/autocmd.lua')
|