diff --git a/modules/plugins/languages/asm.nix b/modules/plugins/languages/asm.nix index 273cb9db..9fe58a76 100644 --- a/modules/plugins/languages/asm.nix +++ b/modules/plugins/languages/asm.nix @@ -4,24 +4,12 @@ lib, ... }: let - inherit (builtins) attrNames; inherit (lib.options) mkEnableOption mkOption; inherit (lib.modules) mkIf mkMerge; - inherit (lib.types) package enum listOf; + inherit (lib.types) package; inherit (lib.nvim.types) mkGrammarOption; - inherit (lib.meta) getExe; - inherit (lib.nvim.attrsets) mapListToAttrs; cfg = config.vim.languages.assembly; - defaultServers = ["asm-lsp"]; - servers = { - asm-lsp = { - enable = true; - cmd = [(getExe pkgs.asm-lsp)]; - filetypes = ["asm" "vmasm"]; - root_markers = [".asm-lsp.toml" ".git"]; - }; - }; in { options.vim.languages.assembly = { enable = mkEnableOption "Assembly support"; @@ -32,12 +20,12 @@ in { }; lsp = { - enable = mkEnableOption "Assembly LSP support" // {default = config.vim.lsp.enable;}; - servers = mkOption { - description = "Assembly LSP server to use"; - type = listOf (enum (attrNames servers)); - default = defaultServers; - example = ["asm-lsp"]; + enable = mkEnableOption "Assembly LSP support (asm-lsp)" // {default = config.vim.lsp.enable;}; + + package = mkOption { + type = package; + default = pkgs.asm-lsp; + description = "asm-lsp package"; }; }; }; @@ -48,12 +36,14 @@ in { }) (mkIf cfg.lsp.enable { - vim.lsp.servers = - mapListToAttrs (n: { - name = n; - value = servers.${n}; - }) - cfg.lsp.servers; + vim.lsp.lspconfig.enable = true; + vim.lsp.lspconfig.sources.asm-lsp = '' + lspconfig.asm_lsp.setup { + capabilities = capabilities, + on_attach = default_on_attach, + cmd = {"${cfg.lsp.package}/bin/asm-lsp"}, + } + ''; }) ]); } diff --git a/modules/plugins/languages/markdown.nix b/modules/plugins/languages/markdown.nix index 78e9d67b..5b6a5e58 100644 --- a/modules/plugins/languages/markdown.nix +++ b/modules/plugins/languages/markdown.nix @@ -59,7 +59,7 @@ in { }; lsp = { - enable = mkEnableOption "Markdown LSP support" // {default = config.vim.lsp.enable;}; + enable = mkEnableOption "Enable Markdown LSP support" // {default = config.vim.lsp.enable;}; servers = mkOption { description = "Markdown LSP server to use";