From df0818880e66086f10982827ea11332b46c3b74f Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 20 Jul 2023 23:38:40 +0200 Subject: [PATCH] fix(util): fixed line number toggling. Closes #1173 --- lua/lazyvim/config/keymaps.lua | 2 +- lua/lazyvim/util/init.lua | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lua/lazyvim/config/keymaps.lua b/lua/lazyvim/config/keymaps.lua index e96c9d92..c86e6944 100644 --- a/lua/lazyvim/config/keymaps.lua +++ b/lua/lazyvim/config/keymaps.lua @@ -111,7 +111,7 @@ 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" }) +map("n", "ul", function() Util.toggle_number() 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" }) diff --git a/lua/lazyvim/util/init.lua b/lua/lazyvim/util/init.lua index 10c82c13..dba6aaad 100644 --- a/lua/lazyvim/util/init.lua +++ b/lua/lazyvim/util/init.lua @@ -186,6 +186,20 @@ function M.toggle(option, silent, values) end end +local nu = { number = true, relativenumber = true } +function M.toggle_number() + if vim.opt_local.number:get() or vim.opt_local.relativenumber:get() then + nu = { number = vim.opt_local.number:get(), relativenumber = vim.opt_local.relativenumber:get() } + vim.opt_local.number = false + vim.opt_local.relativenumber = false + Util.warn("Disabled line numbers", { title = "Option" }) + else + vim.opt_local.number = nu.number + vim.opt_local.relativenumber = nu.relativenumber + Util.info("Enabled line numbers", { title = "Option" }) + end +end + local enabled = true function M.toggle_diagnostics() enabled = not enabled