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("BufEnter", { 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, }) -- Little trick to set the CursorLineNr to colors I like -- TODO: maybe upstream this to curry.nvim one day? do local cursorLineNr = nil local group = vim.api.nvim_create_augroup("ModeAwareCursorLineNr", {}) vim.api.nvim_create_autocmd("Colorscheme", { group = group, callback = function() cursorLineNr = vim.api.nvim_get_hl(0, { name = "CursorLineNr" }) end, }) vim.api.nvim_create_autocmd("ModeChanged", { pattern = "*:n", group = group, callback = function() vim.api.nvim_set_hl(0, "CursorLineNr", cursorLineNr) end, }) vim.api.nvim_create_autocmd("ModeChanged", { pattern = "*:i", group = group, callback = function() local function_ = vim.api.nvim_get_hl(0, { name = "Function" }) vim.api.nvim_set_hl(0, "CursorLineNr", vim.tbl_deep_extend("force", function_, { reverse = true })) end, }) vim.api.nvim_create_autocmd("ModeChanged", { pattern = "*:[Vv\22]*", group = group, callback = function() local keyword = vim.api.nvim_get_hl(0, { name = "Keyword" }) vim.api.nvim_set_hl(0, "CursorLineNr", vim.tbl_deep_extend("force", keyword, { reverse = true })) end, }) end