From 787c0b0fc4ee4b55767eedaca8edc69a1c39cc98 Mon Sep 17 00:00:00 2001 From: Marty Oehme Date: Thu, 15 Aug 2024 08:53:30 +0200 Subject: [PATCH] nvim: Deprecate buffer-option settings group for switches Remove `s` 'set' group of mappings (setting buffer wrapping mode, setting colorizing) and replace it with explicit on/off mappings via [o and ]o. Wrapping can be set to soft with `[ow`, hard with `]ow`. Colorizer can be disabled with `[oc`, enabled with `]oc`. Colorizer can highlight virtual text with `[oC`, highlight background with `]oC`. --- nvim/.config/nvim/lua/core/mappings.lua | 3 +- nvim/.config/nvim/lua/plugins/prose.lua | 72 +++++++++++++++---------- nvim/.config/nvim/lua/plugins/ui.lua | 30 +++++++++-- 3 files changed, 71 insertions(+), 34 deletions(-) diff --git a/nvim/.config/nvim/lua/core/mappings.lua b/nvim/.config/nvim/lua/core/mappings.lua index 4384247..23bbe2c 100644 --- a/nvim/.config/nvim/lua/core/mappings.lua +++ b/nvim/.config/nvim/lua/core/mappings.lua @@ -6,8 +6,9 @@ if is_available("which-key") then prefix({ { "v", group = "vim" }, { "s", group = "show" }, - { "s", group = "set" }, { "Z", group = "spelling" }, + { "]o", group = "options" }, + { "[o", group = "options" }, }) end diff --git a/nvim/.config/nvim/lua/plugins/prose.lua b/nvim/.config/nvim/lua/plugins/prose.lua index b0a3e16..46644d3 100644 --- a/nvim/.config/nvim/lua/plugins/prose.lua +++ b/nvim/.config/nvim/lua/plugins/prose.lua @@ -1,4 +1,19 @@ -local writing_ft = { "quarto", "pandoc", "markdown", "text", "tex", "typst", "bib", "context", "rst", "vimwiki" } +local prose_ft = { + "asciidoc", + "bib", + "context", + "gitcommit", + "latex", + "mail", + "markdown", + "pandoc", + "quarto", + "rst", + "tex", + "text", + "typst", + "vimwiki", +} local prose_plugs = { -- UI improvements @@ -13,30 +28,29 @@ local prose_plugs = { { "andrewferrier/wrapping.nvim", opts = { - create_keymappings = false, - notify_on_switch = false, - softener = { quarto = true, markdown = true, text = true, asciidoc = true }, - auto_set_mode_filetype_allowlist = { - "asciidoc", - "gitcommit", - "latex", - "mail", - "markdown", - "rst", - "tex", - "text", - "quarto", - }, + create_keymaps = false, + notify_on_switch = true, + -- softener = { quarto = true, markdown = true, text = true, asciidoc = true }, + auto_set_mode_filetype_allowlist = prose_ft, }, - event = { "BufReadPre", "BufNewFile" }, + -- event = { "BufReadPre", "BufNewFile" }, + ft = prose_ft, keys = { { - "sw", + "[ow", function() - require("wrapping").toggle_wrap_mode() + require("wrapping").soft_wrap_mode() end, silent = true, - desc = "toggle wrap mode", + desc = "soft wrap", + }, + { + "]ow", + function() + require("wrapping").hard_wrap_mode() + end, + silent = true, + desc = "hard wrap", }, }, }, @@ -46,15 +60,15 @@ local prose_plugs = { main = "render-markdown", opts = { file_types = { "markdown", "quarto", "pandoc", "vimwiki", "norg", "rmd", "org" }, - code = { - sign = false, - width = 'block', - right_pad = 1, - }, + code = { + sign = false, + width = "block", + right_pad = 1, + }, }, name = "render-markdown", -- Only needed if you have another plugin named markdown.nvim dependencies = { "nvim-treesitter/nvim-treesitter", "nvim-tree/nvim-web-devicons" }, -- if you prefer nvim-web-devicons - ft = writing_ft, + ft = prose_ft, cmd = "RenderMarkdown", keys = { { @@ -86,7 +100,7 @@ local prose_plugs = { build = function() vim.fn["mkdp#util#install"]() end, - ft = writing_ft, + ft = prose_ft, }, -- easy copy paste of images into markup files @@ -106,7 +120,7 @@ local prose_plugs = { keys = { { "pi", "PasteImage", desc = "Paste image from system clipboard" }, }, - ft = writing_ft, + ft = prose_ft, }, -- bring zettelkasten commands @@ -135,7 +149,7 @@ local prose_plugs = { }, }) end, - ft = writing_ft, + ft = prose_ft, cmd = { "ZkBacklinks", "ZkCd", @@ -173,7 +187,7 @@ local prose_plugs = { }, -- syntax highlighting for markdown criticmarkup (comments, additions, ...) - { "vim-pandoc/vim-criticmarkup", ft = writing_ft }, + { "vim-pandoc/vim-criticmarkup", ft = prose_ft }, -- create mindmaps from your markdown { diff --git a/nvim/.config/nvim/lua/plugins/ui.lua b/nvim/.config/nvim/lua/plugins/ui.lua index b72d249..690b991 100644 --- a/nvim/.config/nvim/lua/plugins/ui.lua +++ b/nvim/.config/nvim/lua/plugins/ui.lua @@ -143,11 +143,33 @@ return { "ColorizerReloadAllBuffers", }, keys = { - { "sc", "ColorizerToggle", { silent = true, desc = "toggle colorizer" } }, { - "sC", - 'lua require("colorizer").attach_to_buffer(0, {mode = "background"} )', - { silent = true, desc = "colorize background" }, + "[oc", + function() + require("colorizer").detach_from_buffer(0) + end, + { silent = true, desc = "colorize disable" }, + }, + { + "]oc", + function() + require("colorizer").attach_to_buffer(0) + end, + { silent = true, desc = "colorize enable" }, + }, + { + "]oC", + function() + require("colorizer").attach_to_buffer(0, { mode = "background" }) + end, + { silent = true, desc = "colorize bg" }, + }, + { + "[oC", + function() + require("colorizer").attach_to_buffer(0, { mode = "virtualtext" }) + end, + { silent = true, desc = "colorize eol" }, }, }, },