diff options
| author | William Boman <william@redwill.se> | 2021-12-05 18:57:02 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-05 18:57:02 +0100 |
| commit | c82abb3117d83a36b58f07d341fd56a00bdfd360 (patch) | |
| tree | c6efa60621a8ab8eb9d128e4a6c75f89aea82a62 /lua/nvim-lsp-installer/installers/init.lua | |
| parent | sumneko_lua: don't provide -E argument as it's not needed (#309) (diff) | |
| download | mason-c82abb3117d83a36b58f07d341fd56a00bdfd360.tar mason-c82abb3117d83a36b58f07d341fd56a00bdfd360.tar.gz mason-c82abb3117d83a36b58f07d341fd56a00bdfd360.tar.bz2 mason-c82abb3117d83a36b58f07d341fd56a00bdfd360.tar.lz mason-c82abb3117d83a36b58f07d341fd56a00bdfd360.tar.xz mason-c82abb3117d83a36b58f07d341fd56a00bdfd360.tar.zst mason-c82abb3117d83a36b58f07d341fd56a00bdfd360.zip | |
add ccls (#299)
Diffstat (limited to 'lua/nvim-lsp-installer/installers/init.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/installers/init.lua | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/lua/nvim-lsp-installer/installers/init.lua b/lua/nvim-lsp-installer/installers/init.lua index fdf3b0f4..a04eeafb 100644 --- a/lua/nvim-lsp-installer/installers/init.lua +++ b/lua/nvim-lsp-installer/installers/init.lua @@ -1,9 +1,21 @@ local platform = require "nvim-lsp-installer.platform" local log = require "nvim-lsp-installer.log" local Data = require "nvim-lsp-installer.data" +local fs = require "nvim-lsp-installer.fs" +local path = require "nvim-lsp-installer.path" local M = {} +---@param installer ServerInstallerFunction[]|ServerInstallerFunction +---@return ServerInstallerFunction +local function normalize_installer(installer) + if type(installer) == "table" then + return M.pipe(installer) + else + return installer + end +end + ---@alias ServerInstallCallback fun(success: boolean) ---@class ServerInstallContext @@ -120,11 +132,7 @@ function M.on(platform_table) return function(server, callback, context) local installer = get_by_platform(platform_table) if installer then - if type(installer) == "function" then - installer(server, callback, context) - else - M.pipe(installer)(server, callback, context) - end + normalize_installer(installer)(server, callback, context) else callback(true) end @@ -139,11 +147,7 @@ function M.when(platform_table) return function(server, callback, context) local installer = get_by_platform(platform_table) if installer then - if type(installer) == "function" then - installer(server, callback, context) - else - M.pipe(installer)(server, callback, context) - end + normalize_installer(installer)(server, callback, context) else context.stdio_sink.stderr( ("Current operating system is not yet supported for server %q.\n"):format(server.name) @@ -153,4 +157,13 @@ function M.when(platform_table) end end +---@param installer ServerInstallerFunction|ServerInstallerFunction[] @The installer to execute in a new installer context. +function M.branch_context(installer) + ---@type ServerInstallerFunction + return function(server, callback, context) + local new_context = vim.deepcopy(context) + normalize_installer(installer)(server, callback, new_context) + end +end + return M |
