From 82a5f8ff8214bc1fe32f52d9d7e4cdb023231914 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Thu, 10 Oct 2024 23:42:56 +0200 Subject: [PATCH] Neovim: Add markdown local bindings + make latex bindings buffer-local --- home/modules/neovim/default.nix | 15 +++++++++++++-- home/modules/neovim/mappings_latex.nix | 8 ++++++++ home/modules/neovim/mappings_markdown.nix | 16 ++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 home/modules/neovim/mappings_markdown.nix diff --git a/home/modules/neovim/default.nix b/home/modules/neovim/default.nix index 64347dd6..2217f03f 100644 --- a/home/modules/neovim/default.nix +++ b/home/modules/neovim/default.nix @@ -108,7 +108,8 @@ in { extraFiles = { # For this its probably important to set the default filetype to tex (see extraConfigLua) - "ftplugin/tex.lua".text = mylib.generators.toLuaKeymap (import ./mappings_latex.nix {}); + "ftplugin/tex/mappings.lua".text = mylib.generators.toLuaKeymap (import ./mappings_latex.nix {}); + "ftplugin/markdown/mappings.lua".text = mylib.generators.toLuaKeymap (import ./mappings_markdown.nix {}); }; # extraLuaPackages = with pkgs.lua51Packages; []; @@ -833,7 +834,7 @@ in { # }; }; - # NOTE: This entire thing is rough, maybe I should look for another way... + # NOTE: This entire thing is rough, I should rewrite... lspconfig = { name = "lspconfig"; pkg = pkgs.vimPlugins.nvim-lspconfig; @@ -1008,6 +1009,15 @@ in { ''; }; + ltex-extra = rec { + name = "ltex_extra"; + pkg = pkgs.vimPlugins.ltex_extra-nvim; + lazy = true; + ft = ["markdown" "tex"]; + dependencies = [lspconfig]; + config = mkDefaultConfig name; + }; + markview = { name = "markview"; pkg = pkgs.vimPlugins.markview-nvim; @@ -1718,6 +1728,7 @@ in { luasnip # Snippets # TODO: How to add snippets, maybe use luasnip from nixvim directly? + ltex-extra # Additional ltex lsp support, e.g. for add-to-dictionary action markview # Markdown support # narrow-region # Open a buffer restricted to the selection navbuddy # Structural file view diff --git a/home/modules/neovim/mappings_latex.nix b/home/modules/neovim/mappings_latex.nix index 3d7dbaaa..9c513d1a 100644 --- a/home/modules/neovim/mappings_latex.nix +++ b/home/modules/neovim/mappings_latex.nix @@ -4,47 +4,55 @@ key = "t"; action = "VimtexTocToggle"; options.desc = "Vimtex ToC"; + options.buffer = true; } { mode = "n"; key = "c"; action = "VimtexCompile"; options.desc = "Vimtex Compile"; + options.buffer = true; } { mode = "n"; key = "C"; action = "VimtexClean!"; options.desc = "Vimtex Clean"; + options.buffer = true; } { mode = "n"; key = "v"; action = "VimtexView"; options.desc = "Vimtex View"; + options.buffer = true; } { mode = "n"; key = "I"; action = "VimtexInfo"; options.desc = "Vimtex Info"; + options.buffer = true; } { mode = "n"; key = ","; action = "VimtexContextMenu"; options.desc = "Vimtex Context Menu"; + options.buffer = true; } { mode = "n"; key = "e"; action = "VimtexErrors"; options.desc = "Vimtex Errors"; + options.buffer = true; } { mode = "n"; key = "p"; action = "VimtexDocPackage"; options.desc = "Vimtex Package Docs"; + options.buffer = true; } ] diff --git a/home/modules/neovim/mappings_markdown.nix b/home/modules/neovim/mappings_markdown.nix new file mode 100644 index 00000000..f4832373 --- /dev/null +++ b/home/modules/neovim/mappings_markdown.nix @@ -0,0 +1,16 @@ +{...}: [ + { + mode = "n"; + key = "t"; + action = "Markview toggle"; + options.desc = "Toggle Conceal"; + options.buffer = true; + } + { + mode = "n"; + key = "s"; + action = "Markview splitToggle"; + options.desc = "Toggle Split"; + options.buffer = true; + } +]