diff options
Diffstat (limited to 'lua')
5 files changed, 86 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua index afc2c069..71784291 100644 --- a/lua/nvim-lsp-installer/_generated/filetype_map.lua +++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua @@ -107,6 +107,7 @@ return { svelte = { "svelte", "tailwindcss" }, svg = { "lemminx" }, swift = { "sourcekit" }, + systemverilog = { "verible" }, terraform = { "terraformls", "tflint" }, tex = { "ltex", "texlab" }, toml = { "taplo" }, @@ -116,6 +117,7 @@ return { typescriptreact = { "angularls", "cssmodules_ls", "denols", "eslint", "graphql", "rome", "stylelint_lsp", "tailwindcss", "tsserver" }, vala = { "vala_ls" }, vb = { "omnisharp" }, + verilog = { "verible" }, vim = { "vimls" }, vmasm = { "asm_lsp" }, vue = { "eslint", "stylelint_lsp", "tailwindcss", "volar", "vuels" }, diff --git a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua index b29792d1..d4eaefad 100644 --- a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua +++ b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua @@ -30,9 +30,11 @@ return { sphinx = { "esbonio" }, sql = { "sqlls", "sqls" }, swift = { "sourcekit" }, + systemverilog = { "verible" }, terraform = { "terraformls", "tflint" }, toml = { "taplo" }, typescript = { "eslint", "rome", "tsserver" }, + verilog = { "verible" }, vue = { "volar", "vuels" }, xml = { "lemminx" }, zig = { "zls" } diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua index 0f3b29fe..af30dcba 100644 --- a/lua/nvim-lsp-installer/_generated/metadata.lua +++ b/lua/nvim-lsp-installer/_generated/metadata.lua @@ -256,6 +256,9 @@ return { vala_ls = { filetypes = { "vala", "genie" } }, + verible = { + filetypes = { "systemverilog", "verilog" } + }, vimls = { filetypes = { "vim" } }, diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua index 890bac6d..05bb65e4 100644 --- a/lua/nvim-lsp-installer/servers/init.lua +++ b/lua/nvim-lsp-installer/servers/init.lua @@ -116,6 +116,7 @@ local CORE_SERVERS = Data.set_of { "tflint", "tsserver", "vala_ls", + "verible", "vimls", "volar", "vuels", diff --git a/lua/nvim-lsp-installer/servers/verible/init.lua b/lua/nvim-lsp-installer/servers/verible/init.lua new file mode 100644 index 00000000..26857cac --- /dev/null +++ b/lua/nvim-lsp-installer/servers/verible/init.lua @@ -0,0 +1,78 @@ +local server = require "nvim-lsp-installer.server" +local process = require "nvim-lsp-installer.process" +local platform = require "nvim-lsp-installer.platform" +local installers = require "nvim-lsp-installer.installers" +local std = require "nvim-lsp-installer.installers.std" +local context = require "nvim-lsp-installer.installers.context" +local Data = require "nvim-lsp-installer.data" +local path = require "nvim-lsp-installer.path" + +local coalesce, when = Data.coalesce, Data.when + +return function(name, root_dir) + return server.Server:new { + name = name, + root_dir = root_dir, + homepage = "https://chipsalliance.github.io/verible/", + languages = { "systemverilog", "verilog" }, + installer = { + context.use_os_distribution(), + context.capture(function(ctx) + return context.use_github_release_file("chipsalliance/verible", function(version) + if ctx.os_distribution.id == "ubuntu" then + local target_file = when( + platform.arch == "x64", + coalesce( + when( + ctx.os_distribution.version.major == 16, + "verible-%s-Ubuntu-16.04-xenial-x86_64.tar.gz" + ), + when( + ctx.os_distribution.version.major == 18, + "verible-%s-Ubuntu-18.04-bionic-x86_64.tar.gz" + ), + when( + ctx.os_distribution.version.major == 20, + "verible-%s-Ubuntu-20.04-focal-x86_64.tar.gz" + ), + when( + ctx.os_distribution.version.major == 22, + "verible-%s-Ubuntu-22.04-jammy-x86_64.tar.gz" + ) + ) + ) + return target_file and target_file:format(version) + else + local target_file = coalesce( + when(platform.is_win and platform.arch == "x64", "verible-%s-win64.zip") + ) + return target_file and target_file:format(version) + end + end) + end), + context.capture(function(ctx) + return installers.pipe { + installers.when { + unix = std.untargz_remote(ctx.github_release_file), + win = std.unzip_remote(ctx.github_release_file), + }, + std.rename(("verible-%s"):format(ctx.requested_server_version), "verible"), + } + end), + context.receipt(function(receipt, ctx) + receipt:with_primary_source(receipt.github_release_file(ctx)) + end), + }, + default_options = { + cmd_env = { + PATH = process.extend_path { + path.concat(coalesce( + when(platform.is_win, { root_dir, "verible" }), + when(platform.is_unix, { root_dir, "verible", "bin" }), + { root_dir, "verible", "bin" } -- default + )), + }, + }, + }, + } +end |
