aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authoroscarbailey-tc <79094698+oscarbailey-tc@users.noreply.github.com>2022-05-13 16:42:57 +0100
committerGitHub <noreply@github.com>2022-05-13 17:42:57 +0200
commit245f1bece5b906bd7f2a11e684c3619055b6ce1d (patch)
tree3fb691ba5e839ae9538de00d121844adc4a34e66 /lua
parentfeat(github): add `include_prerelease` option to `fetch_latest_release` (diff)
downloadmason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar
mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.gz
mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.bz2
mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.lz
mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.xz
mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.tar.zst
mason-245f1bece5b906bd7f2a11e684c3619055b6ce1d.zip
Add VLS (for vlang) (#629)
Co-authored-by: William Boman <william@redwill.se>
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-lsp-installer/_generated/filetype_map.lua1
-rw-r--r--lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua2
-rw-r--r--lua/nvim-lsp-installer/_generated/metadata.lua3
-rw-r--r--lua/nvim-lsp-installer/servers/init.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/vls/init.lua44
5 files changed, 51 insertions, 0 deletions
diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua
index 09eed639..63c8edea 100644
--- a/lua/nvim-lsp-installer/_generated/filetype_map.lua
+++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua
@@ -145,6 +145,7 @@ return {
vb = { "omnisharp" },
verilog = { "svls", "verible" },
vim = { "vimls" },
+ vlang = { "vls" },
vmasm = { "asm_lsp" },
vue = { "eslint", "stylelint_lsp", "tailwindcss", "volar", "vuels" },
wxss = { "stylelint_lsp" },
diff --git a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua
index 0390ad63..ed22ed12 100644
--- a/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua
+++ b/lua/nvim-lsp-installer/_generated/language_autocomplete_map.lua
@@ -3,6 +3,7 @@
return {
OpenFOAM = { "foam_ls" },
R = { "r_language_server" },
+ V = { "vls" },
["assembly-gas"] = { "asm_lsp" },
["assembly-go"] = { "asm_lsp" },
["assembly-nasm"] = { "asm_lsp" },
@@ -39,6 +40,7 @@ return {
toml = { "taplo" },
typescript = { "eslint", "rome", "tsserver" },
verilog = { "verible" },
+ vlang = { "vls" },
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 3805c269..5aacb652 100644
--- a/lua/nvim-lsp-installer/_generated/metadata.lua
+++ b/lua/nvim-lsp-installer/_generated/metadata.lua
@@ -334,6 +334,9 @@ return {
vimls = {
filetypes = { "vim" }
},
+ vls = {
+ filetypes = { "vlang" }
+ },
volar = {
filetypes = { "vue" }
},
diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua
index 8e721619..8ff7efaf 100644
--- a/lua/nvim-lsp-installer/servers/init.lua
+++ b/lua/nvim-lsp-installer/servers/init.lua
@@ -143,6 +143,7 @@ local CORE_SERVERS = functional.set_of {
"vala_ls",
"verible",
"vimls",
+ "vls",
"volar",
"vuels",
"yamlls",
diff --git a/lua/nvim-lsp-installer/servers/vls/init.lua b/lua/nvim-lsp-installer/servers/vls/init.lua
new file mode 100644
index 00000000..7e3c9d8e
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/vls/init.lua
@@ -0,0 +1,44 @@
+local server = require "nvim-lsp-installer.server"
+local path = require "nvim-lsp-installer.core.path"
+local github = require "nvim-lsp-installer.core.managers.github"
+local github_client = require "nvim-lsp-installer.core.managers.github.client"
+local std = require "nvim-lsp-installer.core.managers.std"
+local functional = require "nvim-lsp-installer.core.functional"
+local platform = require "nvim-lsp-installer.core.platform"
+local Optional = require "nvim-lsp-installer.core.optional"
+local process = require "nvim-lsp-installer.core.process"
+
+return function(name, root_dir)
+ return server.Server:new {
+ name = name,
+ root_dir = root_dir,
+ homepage = "https://github.com/vlang/vls",
+ languages = { "vlang", "V" },
+ ---@async
+ installer = function()
+ local repo = "vlang/vls"
+
+ ---@type GitHubRelease
+ local latest_dev_build =
+ github_client.fetch_latest_release(repo, { include_prelease = true }):get_or_throw()
+
+ local source = github.release_file {
+ version = Optional.of(latest_dev_build.tag_name),
+ repo = repo,
+ asset_file = functional.coalesce(
+ functional.when(platform.is.linux_x64, "vls_linux_x64"),
+ functional.when(platform.is.mac, "vls_macos_x64"),
+ functional.when(platform.is.win_x64, "vls_windows_x64.exe")
+ ),
+ }
+ source.with_receipt()
+ std.download_file(source.download_url, platform.is.win and "vls.exe" or "vls")
+ std.chmod("+x", { "vls" })
+ end,
+ default_options = {
+ cmd_env = {
+ PATH = process.extend_path { root_dir },
+ },
+ },
+ }
+end