From d847d401bea4dcb1478d02a61a3209fa8512f71d Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Mon, 23 Mar 2026 23:38:37 +0100 Subject: [PATCH] languages/gettext: init --- configuration.nix | 1 + docs/manual/release-notes/rl-0.9.md | 2 ++ modules/plugins/languages/default.nix | 1 + modules/plugins/languages/gettext.nix | 35 +++++++++++++++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 modules/plugins/languages/gettext.nix diff --git a/configuration.nix b/configuration.nix index 28b146d4..d9a59141 100644 --- a/configuration.nix +++ b/configuration.nix @@ -107,6 +107,7 @@ isMaximal: { svelte.enable = false; tera.enable = false; twig.enable = false; + gettext.enable = false; fluent.enable = false; # Nim LSP is broken on Darwin and therefore diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 56464d42..7a4bcce5 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -263,6 +263,8 @@ - Add `languages.fluent` using the official plugin. This only provides highlighting. +- Add `languages.gettext`. This only provides highlighting. + - Add `languages.openscad` using [`openscad-lsp`](https://github.com/Leathong/openscad-LSP). This currently relies on neovim builtin syntax for highlighting, and the lsp for formatting diff --git a/modules/plugins/languages/default.nix b/modules/plugins/languages/default.nix index c47e39ab..88061e99 100644 --- a/modules/plugins/languages/default.nix +++ b/modules/plugins/languages/default.nix @@ -60,6 +60,7 @@ in { ./just.nix ./make.nix ./xml.nix + ./gettext.nix ./fluent.nix ./openscad.nix diff --git a/modules/plugins/languages/gettext.nix b/modules/plugins/languages/gettext.nix new file mode 100644 index 00000000..5394fd2c --- /dev/null +++ b/modules/plugins/languages/gettext.nix @@ -0,0 +1,35 @@ +{ + config, + pkgs, + lib, + ... +}: let + inherit (lib.modules) mkIf mkMerge; + inherit (lib.nvim.types) mkGrammarOption; + inherit (lib.options) mkEnableOption literalExpression; + + cfg = config.vim.languages.gettext; + # TODO: package `msgfmt --check` into nvim-lint + # TODO: package `msgcat` into conform.nvim +in { + options.vim.languages.gettext = { + enable = mkEnableOption "gettext portable object language support"; + + treesitter = { + enable = + mkEnableOption "gettext portable object language treesitter" + // { + default = config.vim.languages.enableTreesitter; + defaultText = literalExpression "config.vim.languages.enableTreesitter"; + }; + package = mkGrammarOption pkgs "po"; + }; + }; + + config = mkIf cfg.enable (mkMerge [ + (mkIf cfg.treesitter.enable { + vim.treesitter.enable = true; + vim.treesitter.grammars = [cfg.treesitter.package]; + }) + ]); +}