diff options
| author | William Boman <william@redwill.se> | 2021-12-30 22:15:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-30 22:15:25 +0100 |
| commit | 0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8 (patch) | |
| tree | 475ef043babe5d763ea9f22cdddaee16404f4de1 /lua/nvim-lsp-installer/servers/solc/init.lua | |
| parent | github/workflows: fix auto comment (diff) | |
| download | mason-0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8.tar mason-0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8.tar.gz mason-0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8.tar.bz2 mason-0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8.tar.lz mason-0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8.tar.xz mason-0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8.tar.zst mason-0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8.zip | |
add solc (#371)
Resolves #368.
Diffstat (limited to 'lua/nvim-lsp-installer/servers/solc/init.lua')
| -rw-r--r-- | lua/nvim-lsp-installer/servers/solc/init.lua | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/servers/solc/init.lua b/lua/nvim-lsp-installer/servers/solc/init.lua new file mode 100644 index 00000000..8f6c48aa --- /dev/null +++ b/lua/nvim-lsp-installer/servers/solc/init.lua @@ -0,0 +1,39 @@ +local server = require "nvim-lsp-installer.server" +local Data = require "nvim-lsp-installer.data" +local context = require "nvim-lsp-installer.installers.context" +local platform = require "nvim-lsp-installer.platform" +local std = require "nvim-lsp-installer.installers.std" +local path = require "nvim-lsp-installer.path" + +local coalesce, when = Data.coalesce, Data.when + +return function(name, root_dir) + local bin_name = platform.is_win and "solc.exe" or "solc" + + return server.Server:new { + name = name, + root_dir = root_dir, + homepage = "https://github.com/ethereum/solidity", + languages = { "solidity" }, + installer = { + context.capture(function(ctx) + local file_template = coalesce( + when(platform.is_mac, "macosx-amd64/solc-macosx-amd64-%s"), + when(platform.is_linux and platform.arch == "x64", "linux-amd64/solc-linux-amd64-%s"), + when(platform.is_win and platform.arch == "x64", "windows-amd64/solc-windows-amd64-%s.exe") + ) + if not file_template then + error( + ("Current operating system and/or arch (%q) is currently not supported."):format(platform.arch) + ) + end + file_template = file_template:format(coalesce(ctx.requested_server_version, "latest")) + return std.download_file(("https://binaries.soliditylang.org/%s"):format(file_template), bin_name) + end), + std.chmod("+x", { bin_name }), + }, + default_options = { + cmd = { path.concat { root_dir, bin_name }, "--lsp" }, + }, + } +end |
