Skip to content

Commit

Permalink
feat: add visualforce_ls (chipsalliance#748)
Browse files Browse the repository at this point in the history
  • Loading branch information
williamboman authored Jun 6, 2022
1 parent 72968ba commit ce70a78
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 1 deletion.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@ require("nvim-lsp-installer").setup({
| V | `vls` |
| Vala | `vala_ls` |
| VimL | `vimls` |
| Visualforce | `visualforce` |
| Vue | `volar` |
| Vue | `vuels` |
| XML | `lemminx` |
Expand Down
1 change: 1 addition & 0 deletions lua/nvim-lsp-installer/_generated/filetype_map.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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" },
Expand Down
3 changes: 3 additions & 0 deletions lua/nvim-lsp-installer/_generated/metadata.lua
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,9 @@ return {
vimls = {
filetypes = { "vim" }
},
visualforce_ls = {
filetypes = { "visualforce" }
},
vls = {
filetypes = { "vlang" }
},
Expand Down
1 change: 0 additions & 1 deletion lua/nvim-lsp-installer/servers/apex_ls/init.lua
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
1 change: 1 addition & 0 deletions lua/nvim-lsp-installer/servers/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ local CORE_SERVERS = _.set_of {
"vala_ls",
"verible",
"vimls",
"visualforce_ls",
"vls",
"volar",
"vuels",
Expand Down
50 changes: 50 additions & 0 deletions lua/nvim-lsp-installer/servers/visualforce_ls/init.lua
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit ce70a78

Please sign in to comment.