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 | |
| 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')
5 files changed, 45 insertions, 2 deletions
diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua index f1bd8970..04e8405b 100644 --- a/lua/nvim-lsp-installer/_generated/filetype_map.lua +++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua @@ -89,7 +89,7 @@ return { scss = { "cssls", "stylelint_lsp", "tailwindcss" }, sh = { "bashls" }, slim = { "tailwindcss" }, - solidity = { "solang", "solidity_ls" }, + solidity = { "solang", "solc", "solidity_ls" }, sql = { "sqlls", "sqls" }, stylus = { "tailwindcss" }, sugarss = { "stylelint_lsp", "tailwindcss" }, diff --git a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua index 03a6d1c6..4cac6df6 100644 --- a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua +++ b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua @@ -20,7 +20,7 @@ return { php = { "intelephense", "phpactor" }, python = { "jedi_language_server", "pylsp", "pyright" }, ruby = { "solargraph", "sorbet" }, - solidity = { "solang", "solidity_ls" }, + solidity = { "solang", "solc", "solidity_ls" }, sphinx = { "esbonio" }, sql = { "sqlls", "sqls" }, swift = { "sourcekit" }, diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua index 1db515c4..2a68c2eb 100644 --- a/lua/nvim-lsp-installer/_generated/metadata.lua +++ b/lua/nvim-lsp-installer/_generated/metadata.lua @@ -175,6 +175,9 @@ return { solargraph = { filetypes = { "ruby" } }, + solc = { + filetypes = { "solidity" } + }, solidity_ls = { filetypes = { "solidity" } }, diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 72be29eb..7990ebd1 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -89,6 +89,7 @@ local CORE_SERVERS = Data.set_of { "serve_d", "solang", "solargraph", + "solc", "solidity_ls", "sorbet", "sourcekit", 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 |
