From c82abb3117d83a36b58f07d341fd56a00bdfd360 Mon Sep 17 00:00:00 2001 From: William Boman Date: Sun, 5 Dec 2021 18:57:02 +0100 Subject: add ccls (#299) --- lua/nvim-lsp-installer/installers/init.lua | 33 +++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'lua/nvim-lsp-installer/installers/init.lua') 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 -- cgit v1.2.3-70-g09d2