diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index 5914df92..c0d4952e 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -510,3 +510,8 @@ - Add inline typst concealing support under `vim.languages.typst` using [typst-concealer]. + +[mugaizzo](https://github.com/mugaizzo): + +- Add [VimTeX](https://github.com/lervag/vimtex) plugin in `vim.latex.vimtex` with + `enable`. VimTeX options are set using global options `vim.globals.vimtex_OPTION`. diff --git a/modules/modules.nix b/modules/modules.nix index 1eca042a..64d5b90f 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -47,6 +47,7 @@ "ui" "utility" "visuals" + "latex" ]; # The neovim wrapper, used to build a wrapped neovim package diff --git a/modules/plugins/latex/default.nix b/modules/plugins/latex/default.nix new file mode 100644 index 00000000..6da815ea --- /dev/null +++ b/modules/plugins/latex/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./vimtex + ]; +} diff --git a/modules/plugins/latex/vimtex/config.nix b/modules/plugins/latex/vimtex/config.nix new file mode 100644 index 00000000..bc6e7cee --- /dev/null +++ b/modules/plugins/latex/vimtex/config.nix @@ -0,0 +1,13 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + + cfg = config.vim.latex.vimtex; +in { + config = mkIf cfg.enable { + vim.startPlugins = ["vimtex"]; + }; +} diff --git a/modules/plugins/latex/vimtex/default.nix b/modules/plugins/latex/vimtex/default.nix new file mode 100644 index 00000000..1d1ecc22 --- /dev/null +++ b/modules/plugins/latex/vimtex/default.nix @@ -0,0 +1,6 @@ +{ + imports = [ + ./config.nix + ./vimtex.nix + ]; +} diff --git a/modules/plugins/latex/vimtex/vimtex.nix b/modules/plugins/latex/vimtex/vimtex.nix new file mode 100644 index 00000000..5b7f11f5 --- /dev/null +++ b/modules/plugins/latex/vimtex/vimtex.nix @@ -0,0 +1,43 @@ +{lib, ...}: let + inherit (lib.options) mkEnableOption mkOption; + inherit (lib.types) bool str listOf; + inherit (lib.nvim.types) mkPluginSetupOption; +in { + options.vim.latex.vimtex = { + enable = mkEnableOption '' + VimTeX is a modern Vim and Neovim filetype and syntax plugin for LaTeX files. + + VimTeX options are under vim.global.vimtex_OPTION + ''; + + setupOpts = mkPluginSetupOption "vimtex" { + vimtex_view_method = mkOption { + type = str; + default = "zathura"; + description = '' + The pdf viewer to be used + + The default value is "zathura" + ''; + }; + + vimtex_syntax_enabled = mkOption { + type = bool; + default = false; + description = '' + vimtex syntax enabled + + The default value is false''; + }; + + vimtex_quickfix_ignore_filters = mkOption { + type = listOf str; + default = []; + description = '' + vimtex quickfix ignore filters + + The default value is []''; + }; + }; + }; +} diff --git a/npins/sources.json b/npins/sources.json index 5bcb9567..36eb87f2 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -2656,6 +2656,19 @@ "url": "https://github.com/mhinz/vim-startify/archive/4e089dffdad46f3f5593f34362d530e8fe823dcf.tar.gz", "hash": "1ycqfqnmalqzrx1yy9a1fc2p0w922x4sqv2222bi9xjzmh77z4sv" }, + "vimtex": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "lervag", + "repo": "vimtex" + }, + "branch": "master", + "submodules": false, + "revision": "32bcb3922c20588e00de68f73c86312eda2141ad", + "url": "https://github.com/lervag/vimtex/archive/32bcb3922c20588e00de68f73c86312eda2141ad.tar.gz", + "hash": "0lgr20w23646ada3aiqmrfxgh5dmkav4724ng2imr0v2nnfpmfh4" + }, "which-key-nvim": { "type": "Git", "repository": {