From 12d97eeabf44c2dd2cf841db218aac449022143d Mon Sep 17 00:00:00 2001 From: William Boman Date: Mon, 21 Feb 2022 20:56:16 +0100 Subject: feat: add async module (#499) --- scripts/autogen_metadata.lua | 47 ++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 21 deletions(-) (limited to 'scripts/autogen_metadata.lua') 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 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) -- cgit v1.2.3-70-g09d2