.files/.config/nvim/plugin/autocommands.lua

72 lines
2.2 KiB
Lua

vim.api.nvim_create_autocmd("TextYankPost", {
group = vim.api.nvim_create_augroup("Visual", {}),
callback = function()
vim.highlight.on_yank {
higroup = "IncSearch",
timeout = 100,
}
end,
})
vim.api.nvim_create_autocmd("OptionSet", {
pattern = "shiftwidth",
callback = function()
if vim.o.expandtab then
local c = ""
for _ = c:len(), vim.o.shiftwidth + 1 do
c = c .. " "
end
vim.opt.listchars:append("leadmultispace:" .. c)
end
end,
})
local auto_colorcolumn = vim.api.nvim_create_augroup("auto_colorcolumn", {})
local set_colorcolumn_from_textwidth = function() vim.wo.colorcolumn = tostring(vim.bo.textwidth) end
vim.api.nvim_create_autocmd("OptionSet", {
group = auto_colorcolumn,
pattern = "textwidth",
callback = set_colorcolumn_from_textwidth,
})
vim.api.nvim_create_autocmd("BufWinEnter", {
group = auto_colorcolumn,
callback = function()
if vim.bo.textwidth then
set_colorcolumn_from_textwidth()
end
end,
})
vim.api.nvim_create_autocmd("LspProgress", {
once = true,
group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function() require("fidget").setup {} end,
})
local auto_cursorline = vim.api.nvim_create_augroup("AutoCursorLine", {})
vim.api.nvim_create_autocmd({ "VimEnter", "WinEnter", "BufWinEnter" }, {
group = auto_cursorline,
callback = function() vim.wo.cursorline = true end,
})
vim.api.nvim_create_autocmd("WinLeave", {
group = auto_cursorline,
callback = function() vim.wo.cursorline = false end,
})
local auto_linenr = vim.api.nvim_create_augroup("AutoLineNr", {})
vim.api.nvim_create_autocmd({ "VimEnter", "WinEnter", "BufWinEnter" }, {
group = auto_linenr,
callback = function()
-- fugitive, for example, doesn't have numbers
-- if I set relative number I'll get numbers and we don't want that
if vim.wo.number then
vim.wo.relativenumber = true
end
end,
})
vim.api.nvim_create_autocmd("WinLeave", {
group = auto_linenr,
callback = function() vim.wo.relativenumber = false end,
})