From 4d0857ad1529b26b250de85bcab16b4eb27f2944 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Wed, 15 Apr 2026 19:08:59 +0200 Subject: [PATCH] languages/tera: add lsp/presets/emmet-ls to lsp.servers --- modules/plugins/languages/tera.nix | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/modules/plugins/languages/tera.nix b/modules/plugins/languages/tera.nix index 9650da92..0a28014c 100644 --- a/modules/plugins/languages/tera.nix +++ b/modules/plugins/languages/tera.nix @@ -4,11 +4,16 @@ lib, ... }: let - inherit (lib.options) mkEnableOption literalExpression; + inherit (lib) genAttrs; + inherit (lib.options) mkEnableOption literalExpression mkOption; inherit (lib.modules) mkIf mkMerge; + inherit (lib.types) enum listOf; inherit (lib.nvim.types) mkGrammarOption; cfg = config.vim.languages.tera; + + defaultServers = []; + servers = ["emmet-ls"]; in { options.vim.languages.tera = { enable = mkEnableOption "Tera templating language support"; @@ -22,6 +27,20 @@ in { }; package = mkGrammarOption pkgs "tera"; }; + + lsp = { + enable = + mkEnableOption "Tera LSP support" + // { + default = config.vim.lsp.enable; + defaultText = literalExpression "config.vim.lsp.enable"; + }; + servers = mkOption { + description = "Tera LSP server to use"; + type = listOf (enum servers); + default = defaultServers; + }; + }; }; config = mkIf cfg.enable (mkMerge [ @@ -29,5 +48,14 @@ in { vim.treesitter.enable = true; vim.treesitter.grammars = [cfg.treesitter.package]; }) + + (mkIf cfg.lsp.enable { + vim.lsp = { + presets = genAttrs cfg.lsp.servers (_: {enable = true;}); + servers = genAttrs cfg.lsp.servers (_: { + filetypes = ["tera"]; + }); + }; + }) ]); }