From fdd5fa28ed925068d0324b0de9bb5bde2972d026 Mon Sep 17 00:00:00 2001 From: Aron Griffis Date: Thu, 20 Jul 2023 14:43:04 -0400 Subject: [PATCH] fix(keymaps): line number toggling when only one option is set The previous code would blindly toggle both number and relativenumber settings, even if one was set and the other wasn't. Instead, save the respective values when toggling off, and restore when toggling on. --- lua/lazyvim/config/keymaps.lua | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index e96c9d92..4b4e96ca 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -111,7 +111,25 @@ end map("n", "uf", require("lazyvim.plugins.lsp.format").toggle, { desc = "Toggle format on Save" }) map("n", "us", function() Util.toggle("spell") end, { desc = "Toggle Spelling" }) map("n", "uw", function() Util.toggle("wrap") end, { desc = "Toggle Word Wrap" }) -map("n", "ul", function() Util.toggle("relativenumber", true) Util.toggle("number") end, { desc = "Toggle Line Numbers" }) +local saved_numbering +local function save_numbering() + local force_enabled = not vim.opt_local.number:get() and not vim.opt_local.relativenumber:get() + saved_numbering = { + number = force_enabled or vim.opt_local.number:get(), + relativenumber = force_enabled or vim.opt_local.relativenumber:get(), + } +end +save_numbering() +map("n", "ul", function() + if vim.opt_local.number:get() or vim.opt_local.relativenumber:get() then + save_numbering() + Util.toggle("number", false, { false }) + Util.toggle("relativenumber", false, { false }) + else + Util.toggle("number", false, { saved_numbering.number }) + Util.toggle("relativenumber", false, { saved_numbering.relativenumber }) + end +end, { desc = "Toggle Line Numbers" }) map("n", "ud", Util.toggle_diagnostics, { desc = "Toggle Diagnostics" }) local conceallevel = vim.o.conceallevel > 0 and vim.o.conceallevel or 3 map("n", "uc", function() Util.toggle("conceallevel", false, {0, conceallevel}) end, { desc = "Toggle Conceal" })