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, }) vim.api.nvim_create_autocmd({ "VimEnter", "FocusGained", "BufEnter" }, { group = vim.api.nvim_create_augroup("ReloadFileOnChange", {}), command = "checktime", })