From b7671992735ade20ba1c34919d6b508e6fc301c2 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sat, 21 Mar 2026 17:30:02 +0100 Subject: [PATCH] languages/liquid: add syntax highlighting support for liquid templating --- configuration.nix | 1 + docs/manual/release-notes/rl-0.9.md | 3 +++ modules/plugins/languages/default.nix | 1 + modules/plugins/languages/liquid.nix | 34 +++++++++++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 modules/plugins/languages/liquid.nix diff --git a/configuration.nix b/configuration.nix index d3663861..2c687794 100644 --- a/configuration.nix +++ b/configuration.nix @@ -105,6 +105,7 @@ isMaximal: { jinja.enable = false; tailwind.enable = false; svelte.enable = false; + liquid.enable = false; tera.enable = false; twig.enable = false; gettext.enable = false; diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 361c48aa..4dd694f1 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -229,6 +229,9 @@ - Added [tera](https://keats.github.io/tera/) language support (syntax highlighting only). +- Added [liquid](https://keats.github.io/tera/) language support (syntax + highlighting only) via `languages.liquid`. + - Added Debugging support to `languages.odin` with [nvim-dap-odin](https://github.com/NANDquark/nvim-dap-odin). diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index e5f00f58..3f779dbb 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -25,6 +25,7 @@ in { ./html.nix ./tera.nix ./twig.nix + ./liquid.nix ./haskell.nix ./java.nix ./jinja.nix diff --git a/modules/plugins/languages/liquid.nix b/modules/plugins/languages/liquid.nix new file mode 100644 index 00000000..4d76799c --- /dev/null +++ b/modules/plugins/languages/liquid.nix @@ -0,0 +1,34 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.options) mkEnableOption literalExpression; + inherit (lib.modules) mkIf mkMerge; + inherit (lib.nvim.types) mkGrammarOption; + + cfg = config.vim.languages.liquid; +in { + options.vim.languages.liquid = { + enable = mkEnableOption "Liquid templating language support"; + + treesitter = { + enable = + mkEnableOption "Liquid treesitter" + // { + default = config.vim.languages.enableTreesitter; + defaultText = literalExpression "config.vim.languages.enableTreesitter"; + }; + package = mkGrammarOption pkgs "liquid"; + }; + # TODO: if curlylint gets packaged for nix, add it. + }; + + config = mkIf cfg.enable (mkMerge [ + (mkIf cfg.treesitter.enable { + vim.treesitter.enable = true; + vim.treesitter.grammars = [cfg.treesitter.package]; + }) + ]); +}