From 0055d15bf4f6bf6a9d96191e6d5e9a6e223b0df8 Mon Sep 17 00:00:00 2001 From: William Boman Date: Thu, 30 Dec 2021 22:15:25 +0100 Subject: add solc (#371) Resolves #368. --- lua/nvim-lsp-installer/_generated/filetype_map.lua | 2 +- .../_generated/language_autocomplete_map.lua | 2 +- lua/nvim-lsp-installer/_generated/metadata.lua | 3 ++ lua/nvim-lsp-installer/servers/init.lua | 1 + lua/nvim-lsp-installer/servers/solc/init.lua | 39 ++++++++++++++++++++++ 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 lua/nvim-lsp-installer/servers/solc/init.lua (limited to 'lua') 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 -- cgit v1.2.3-70-g09d2