aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-02-21 20:56:16 +0100
committerGitHub <noreply@github.com>2022-02-21 20:56:16 +0100
commit12d97eeabf44c2dd2cf841db218aac449022143d (patch)
tree5c8b996a262761ae2433663351861e505dbceb8d /scripts
parentrun autogen_metadata.lua (diff)
downloadmason-12d97eeabf44c2dd2cf841db218aac449022143d.tar
mason-12d97eeabf44c2dd2cf841db218aac449022143d.tar.gz
mason-12d97eeabf44c2dd2cf841db218aac449022143d.tar.bz2
mason-12d97eeabf44c2dd2cf841db218aac449022143d.tar.lz
mason-12d97eeabf44c2dd2cf841db218aac449022143d.tar.xz
mason-12d97eeabf44c2dd2cf841db218aac449022143d.tar.zst
mason-12d97eeabf44c2dd2cf841db218aac449022143d.zip
feat: add async module (#499)
Diffstat (limited to 'scripts')
-rw-r--r--scripts/autogen_metadata.lua47
-rwxr-xr-xscripts/autogen_metadata.sh3
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