diff --git a/configuration.nix b/configuration.nix index 7be2e5cb..958311b1 100644 --- a/configuration.nix +++ b/configuration.nix @@ -96,6 +96,7 @@ isMaximal: { jinja.enable = false; tailwind.enable = false; svelte.enable = false; + tera.enable = false; # Nim LSP is broken on Darwin and therefore # should be disabled by default. Users may still enable diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 966592db..08a5cc63 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -161,6 +161,9 @@ - Added XML syntax highlighting, LSP support and formatting +- Added [tera](https://keats.github.io/tera/) language support (syntax + highlighting only). + [vagahbond](https://github.com/vagahbond): [codewindow.nvim]: https://github.com/gorbit99/codewindow.nvim diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index 1dad1434..7cc5bda5 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -19,6 +19,7 @@ in { ./helm.nix ./kotlin.nix ./html.nix + ./tera.nix ./haskell.nix ./java.nix ./jinja.nix diff --git a/modules/plugins/languages/tera.nix b/modules/plugins/languages/tera.nix new file mode 100644 index 00000000..7e1d5573 --- /dev/null +++ b/modules/plugins/languages/tera.nix @@ -0,0 +1,28 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.options) mkEnableOption; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.nvim.types) mkGrammarOption; + + cfg = config.vim.languages.tera; +in { + options.vim.languages.tera = { + enable = mkEnableOption "Tera templating language support"; + + treesitter = { + enable = mkEnableOption "Tera treesitter" // {default = config.vim.languages.enableTreesitter;}; + package = mkGrammarOption pkgs "tera"; + }; + }; + + config = mkIf cfg.enable (mkMerge [ + (mkIf cfg.treesitter.enable { + vim.treesitter.enable = true; + vim.treesitter.grammars = [cfg.treesitter.package]; + }) + ]); +}