diff options
| author | William Boman <william@redwill.se> | 2022-04-27 21:20:45 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-27 21:20:45 +0200 |
| commit | 090c8a87b31de5c5a21eebc55adb22ddab625015 (patch) | |
| tree | 3c92027c937bcca88547d2654d91f24574653634 /tests/middleware_spec.lua | |
| parent | run autogen_metadata.lua (diff) | |
| download | mason-090c8a87b31de5c5a21eebc55adb22ddab625015.tar mason-090c8a87b31de5c5a21eebc55adb22ddab625015.tar.gz mason-090c8a87b31de5c5a21eebc55adb22ddab625015.tar.bz2 mason-090c8a87b31de5c5a21eebc55adb22ddab625015.tar.lz mason-090c8a87b31de5c5a21eebc55adb22ddab625015.tar.xz mason-090c8a87b31de5c5a21eebc55adb22ddab625015.tar.zst mason-090c8a87b31de5c5a21eebc55adb22ddab625015.zip | |
feat: integrate with lspconfig's on_setup hook (#631)
* feat: integrate with lspconfig's on_setup hook
* fix!: don't use aliased installation directories if new .setup() fn is used
This makes it so servers are always installed in a directory name that
corresponds with the server name. The reason aliased installation directories
is supported is lost on me, but it's legacy and complicates things
unnecessarily.
This is a breaking change for users who previously were using the `.on_server_ready()`
hook, and now transitioned to setting up servers directly via lspconfig.
These users will need to reinstall the server.
* fix: block usage of the deprecated server:setup() method if new setup method is used
* fix: allow passing no arg to setup()
* docs: ok final.v3 readme
Diffstat (limited to 'tests/middleware_spec.lua')
| -rw-r--r-- | tests/middleware_spec.lua | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/middleware_spec.lua b/tests/middleware_spec.lua new file mode 100644 index 00000000..5c629ee6 --- /dev/null +++ b/tests/middleware_spec.lua @@ -0,0 +1,39 @@ +local util = require "lspconfig.util" +local servers = require "nvim-lsp-installer.servers" +local middleware = require "nvim-lsp-installer.middleware" + +describe("middleware", function() + it("should register on_setup hook with lspconfig", function() + -- 1. setup dummy server + local default_options = { + cmd = { "dummy-lsp" }, + cmd_env = { PATH = "/keep/my/path/out/your/f/mouth" }, + } + local server = ServerGenerator { + name = "dummy", + default_options = default_options, + } + servers.register(server) + + -- 2. register hook + middleware.register_lspconfig_hook() + + -- 3. call lspconfig hook + local config = { + name = "dummy", + cmd = { "should", "be", "overwritten" }, + custom = "setting", + cmd_env = { SOME_DEFAULT_ENV = "important" }, + } + util.on_setup(config) + assert.are.same({ + cmd = { "dummy-lsp" }, + name = "dummy", + custom = "setting", + cmd_env = { + PATH = "/keep/my/path/out/your/f/mouth", + SOME_DEFAULT_ENV = "important", + }, + }, config) + end) +end) |
