diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/autogen_metadata.lua | 47 | ||||
| -rwxr-xr-x | scripts/autogen_metadata.sh | 3 |
2 files changed, 27 insertions, 23 deletions
diff --git a/scripts/autogen_metadata.lua b/scripts/autogen_metadata.lua index 8f6217a2..cca9a410 100644 --- a/scripts/autogen_metadata.lua +++ b/scripts/autogen_metadata.lua @@ -1,7 +1,7 @@ local uv = vim.loop -local a = require "plenary.async" -local curl = require "plenary.curl" +local a = require "nvim-lsp-installer.core.async" local Path = require "nvim-lsp-installer.path" +local fetch = require "nvim-lsp-installer.core.fetch" local Data = require "nvim-lsp-installer.data" local coalesce = Data.coalesce @@ -67,14 +67,14 @@ local function get_supported_filetypes(server) local default_options = server:get_default_options() local filetypes = coalesce( -- nvim-lsp-installer options has precedence - default_options.filetypes, + default_options and default_options.filetypes, config.default_config.filetypes, {} ) return filetypes end -local create_filetype_map = a.void(function() +local function create_filetype_map() local filetype_map = {} local available_servers = servers.get_available_servers() @@ -89,9 +89,9 @@ local create_filetype_map = a.void(function() end write_file(Path.concat { generated_dir, "filetype_map.lua" }, "return " .. vim.inspect(filetype_map), "w") -end) +end -local create_autocomplete_map = a.void(function() +local function create_autocomplete_map() ---@type table<string, Server> local language_map = {} @@ -131,9 +131,9 @@ local create_autocomplete_map = a.void(function() "return " .. vim.inspect(autocomplete_candidates), "w" ) -end) +end -local create_server_metadata = a.void(function() +local function create_server_metadata() local metadata = {} ---@param server Server @@ -147,21 +147,24 @@ local create_server_metadata = a.void(function() end write_file(Path.concat { generated_dir, "metadata.lua" }, "return " .. vim.inspect(metadata), "w") -end) +end -local create_setting_schema_files = a.void(function() +local function create_setting_schema_files() local available_servers = servers.get_available_servers() - local gist_response = - a.wrap(curl.get, 1) "https://gist.githubusercontent.com/williamboman/a01c3ce1884d4b57cc93422e7eae7702/raw/lsp-packages.json" - local package_json_mappings = vim.json.decode(gist_response.body) + local gist_ok, gist_err, gist_response = + a.promisify(fetch) "https://gist.githubusercontent.com/williamboman/a01c3ce1884d4b57cc93422e7eae7702/raw/lsp-packages.json" + assert(gist_ok, "Failed to fetch gist.") + assert(not gist_err, "Failed to fetch gist.") + local package_json_mappings = vim.json.decode(gist_response) for _, server in pairs(available_servers) do local package_json_url = package_json_mappings[server.name] if package_json_url then print(("Fetching %q..."):format(package_json_url)) - local response = a.wrap(curl.get, 1)(package_json_url) - assert(response.status == 200, "Failed to fetch package.json for " .. server.name) - local schema = vim.json.decode(response.body) + local ok, err, response = a.promisify(fetch)(package_json_url) + assert(ok, "Failed to fetch.") + assert(not err, "Failed to fetch package.json for " .. server.name) + local schema = vim.json.decode(response) if schema.contributes and schema.contributes.configuration then schema = schema.contributes.configuration end @@ -177,9 +180,11 @@ local create_setting_schema_files = a.void(function() end end end -end) +end -create_filetype_map() -create_autocomplete_map() -create_server_metadata() -create_setting_schema_files() +a.run_blocking(function() + create_filetype_map() + create_autocomplete_map() + create_server_metadata() + create_setting_schema_files() +end) diff --git a/scripts/autogen_metadata.sh b/scripts/autogen_metadata.sh index 9e2339cf..970a2cb3 100755 --- a/scripts/autogen_metadata.sh +++ b/scripts/autogen_metadata.sh @@ -5,9 +5,8 @@ declare -x XDG_DATA_HOME="${XDG_DATA_HOME:-"$HOME/.local/share"}" declare -x NVIM_PACK_DIR="$XDG_DATA_HOME/nvim/site/pack" declare -x LSP_CONFIG_DIR="$NVIM_PACK_DIR/packer/start/nvim-lspconfig" -declare -x PLENARY_DIR="$NVIM_PACK_DIR/packer/start/plenary.nvim" declare -x LSP_INSTALLER_DIR="$PWD" nvim -u NONE -E -R --headless \ - --cmd "set rtp+=${PLENARY_DIR},${LSP_CONFIG_DIR},${LSP_INSTALLER_DIR}" \ + --cmd "set rtp+=${LSP_CONFIG_DIR},${LSP_INSTALLER_DIR}" \ +"luafile scripts/autogen_metadata.lua" +q |
