aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/autogen_metadata.lua
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/autogen_metadata.lua')
-rw-r--r--scripts/autogen_metadata.lua47
1 files changed, 26 insertions, 21 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)