From 56d0c4579e022b44a3e324f722fa23a6f4295798 Mon Sep 17 00:00:00 2001 From: Austin Horstman Date: Sun, 2 Feb 2025 10:02:49 -0600 Subject: [PATCH] plugins/typescript-tools: use plugin's luaConfig When lazy loading, we need to isolate the plugin's config otherwise it will fail because the generated config is still loaded immediately in lspconfig's lua. --- plugins/by-name/typescript-tools/default.nix | 9 +++++---- .../plugins/by-name/typescript-tools/default.nix | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/by-name/typescript-tools/default.nix b/plugins/by-name/typescript-tools/default.nix index ad08f93f..04fdb14e 100644 --- a/plugins/by-name/typescript-tools/default.nix +++ b/plugins/by-name/typescript-tools/default.nix @@ -191,8 +191,10 @@ lib.nixvim.plugins.mkNeovimPlugin { }; }; - # NOTE: call setup in lsp config + # NOTE: call setup manually callSetup = false; + # Set up after lspconfig + configLocation = "extraConfigLuaPost"; extraConfig = cfg: let @@ -221,8 +223,7 @@ lib.nixvim.plugins.mkNeovimPlugin { ]; in { - # TODO: handle lazy loading properly - plugins.lsp.postConfig = + plugins.typescript-tools.luaConfig.content = let # TODO:: introduced 10-22-2024: remove after 24.11 renamedSettings = lib.foldl' ( @@ -253,7 +254,7 @@ lib.nixvim.plugins.mkNeovimPlugin { ); setupOptions = - filterAttrsRecursivePath (path: value: !builtins.elem path definedOpts) cfg.settings [ ] + filterAttrsRecursivePath (path: _: !builtins.elem path definedOpts) cfg.settings [ ] // { settings = lib.recursiveUpdate cfg.settings.settings renamedSettings; }; diff --git a/tests/test-sources/plugins/by-name/typescript-tools/default.nix b/tests/test-sources/plugins/by-name/typescript-tools/default.nix index 89176c79..dcfcaa90 100644 --- a/tests/test-sources/plugins/by-name/typescript-tools/default.nix +++ b/tests/test-sources/plugins/by-name/typescript-tools/default.nix @@ -34,6 +34,9 @@ example = { plugins.typescript-tools = { enable = true; + luaConfig.pre = '' + local api = require("typescript-tools.api") + ''; settings = { handlers = { "textDocument/publishDiagnostics" = ''