From 15bf9075e74ad03dc2d2f51b62790922d17ba617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sat, 12 Jul 2025 20:31:33 +0200 Subject: [PATCH] nvim: mode aware CursorLineNr --- .config/nvim/plugin/autocommands.lua | 35 ++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/.config/nvim/plugin/autocommands.lua b/.config/nvim/plugin/autocommands.lua index 648a0c1d..bea7e091 100644 --- a/.config/nvim/plugin/autocommands.lua +++ b/.config/nvim/plugin/autocommands.lua @@ -42,3 +42,38 @@ vim.api.nvim_create_autocmd("LspProgress", { 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