aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-06-06 22:16:51 +0200
committerGitHub <noreply@github.com>2022-06-06 22:16:51 +0200
commitce70a78ccd08e862ee57af1f8ac1c3c042b7d360 (patch)
treec3f26685f96619c8c0fb80d009628caff84e5ee9 /lua
parentdocs: remove nvim-lsp-installer.servers helptag (#755) (diff)
downloadmason-ce70a78ccd08e862ee57af1f8ac1c3c042b7d360.tar
mason-ce70a78ccd08e862ee57af1f8ac1c3c042b7d360.tar.gz
mason-ce70a78ccd08e862ee57af1f8ac1c3c042b7d360.tar.bz2
mason-ce70a78ccd08e862ee57af1f8ac1c3c042b7d360.tar.lz
mason-ce70a78ccd08e862ee57af1f8ac1c3c042b7d360.tar.xz
mason-ce70a78ccd08e862ee57af1f8ac1c3c042b7d360.tar.zst
mason-ce70a78ccd08e862ee57af1f8ac1c3c042b7d360.zip
feat: add visualforce_ls (#748)
Diffstat (limited to 'lua')
-rw-r--r--lua/nvim-lsp-installer/_generated/filetype_map.lua1
-rw-r--r--lua/nvim-lsp-installer/_generated/metadata.lua3
-rw-r--r--lua/nvim-lsp-installer/servers/apex_ls/init.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/init.lua1
-rw-r--r--lua/nvim-lsp-installer/servers/visualforce_ls/init.lua50
5 files changed, 55 insertions, 1 deletions
diff --git a/lua/nvim-lsp-installer/_generated/filetype_map.lua b/lua/nvim-lsp-installer/_generated/filetype_map.lua
index 6ecc014e..79213e9b 100644
--- a/lua/nvim-lsp-installer/_generated/filetype_map.lua
+++ b/lua/nvim-lsp-installer/_generated/filetype_map.lua
@@ -148,6 +148,7 @@ return {
vb = { "omnisharp" },
verilog = { "svls", "verible" },
vim = { "vimls" },
+ visualforce = { "visualforce_ls" },
vlang = { "vls" },
vmasm = { "asm_lsp" },
vue = { "eslint", "stylelint_lsp", "tailwindcss", "volar", "vuels" },
diff --git a/lua/nvim-lsp-installer/_generated/metadata.lua b/lua/nvim-lsp-installer/_generated/metadata.lua
index c0986d4c..40954725 100644
--- a/lua/nvim-lsp-installer/_generated/metadata.lua
+++ b/lua/nvim-lsp-installer/_generated/metadata.lua
@@ -340,6 +340,9 @@ return {
vimls = {
filetypes = { "vim" }
},
+ visualforce_ls = {
+ filetypes = { "visualforce" }
+ },
vls = {
filetypes = { "vlang" }
},
diff --git a/lua/nvim-lsp-installer/servers/apex_ls/init.lua b/lua/nvim-lsp-installer/servers/apex_ls/init.lua
index 56585b78..2ed778a9 100644
--- a/lua/nvim-lsp-installer/servers/apex_ls/init.lua
+++ b/lua/nvim-lsp-installer/servers/apex_ls/init.lua
@@ -1,7 +1,6 @@
local server = require "nvim-lsp-installer.server"
local github = require "nvim-lsp-installer.core.managers.github"
local github_client = require "nvim-lsp-installer.core.managers.github.client"
-local git = require "nvim-lsp-installer.core.managers.git"
local Optional = require "nvim-lsp-installer.core.optional"
local path = require "nvim-lsp-installer.core.path"
local _ = require "nvim-lsp-installer.core.functional"
diff --git a/lua/nvim-lsp-installer/servers/init.lua b/lua/nvim-lsp-installer/servers/init.lua
index 861f4e09..0668c643 100644
--- a/lua/nvim-lsp-installer/servers/init.lua
+++ b/lua/nvim-lsp-installer/servers/init.lua
@@ -145,6 +145,7 @@ local CORE_SERVERS = _.set_of {
"vala_ls",
"verible",
"vimls",
+ "visualforce_ls",
"vls",
"volar",
"vuels",
diff --git a/lua/nvim-lsp-installer/servers/visualforce_ls/init.lua b/lua/nvim-lsp-installer/servers/visualforce_ls/init.lua
new file mode 100644
index 00000000..fb6b559e
--- /dev/null
+++ b/lua/nvim-lsp-installer/servers/visualforce_ls/init.lua
@@ -0,0 +1,50 @@
+local server = require "nvim-lsp-installer.server"
+local github = require "nvim-lsp-installer.core.managers.github"
+local github_client = require "nvim-lsp-installer.core.managers.github.client"
+local Optional = require "nvim-lsp-installer.core.optional"
+local path = require "nvim-lsp-installer.core.path"
+local _ = require "nvim-lsp-installer.core.functional"
+
+return function(name, root_dir)
+ return server.Server:new {
+ name = name,
+ root_dir = root_dir,
+ homepage = "https://github.com/forcedotcom/salesforcedx-vscode",
+ languages = { "visualforce" },
+ ---@async
+ installer = function()
+ local repo = "forcedotcom/salesforcedx-vscode"
+
+ -- See https://github.com/forcedotcom/salesforcedx-vscode/issues/4184#issuecomment-1146052086
+ ---@type GitHubRelease
+ local release = github_client
+ .fetch_releases(repo)
+ :map(_.find_first(_.prop_satisfies(_.compose(_.gt(0), _.length), "assets")))
+ :map(Optional.of_nilable)
+ :get_or_throw() -- Result unwrap
+ :or_else_throw "Failed to find release with assets." -- Optional unwrap
+
+ github.unzip_release_file({
+ version = Optional.of(release.tag_name),
+ asset_file = _.compose(_.format "salesforcedx-vscode-visualforce-%s.vsix", _.gsub("^v", "")),
+ repo = repo,
+ }).with_receipt()
+ end,
+ default_options = {
+ cmd = {
+ "node",
+ path.concat {
+ root_dir,
+ "extension",
+ "node_modules",
+ "@salesforce",
+ "salesforcedx-visualforce-language-server",
+ "out",
+ "src",
+ "visualforceServer.js",
+ },
+ "--stdio",
+ },
+ },
+ }
+end