aboutsummaryrefslogtreecommitdiffstats
path: root/lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-07-12 19:53:30 +0200
committerGitHub <noreply@github.com>2022-07-12 17:53:30 +0000
commit20b192ffd9cf81f94ed6c23973ecbd7ddc69d695 (patch)
treeae616df1adcb90ef6c4894c1d289bdf52134eb5b /lua
parentfix(jdtls)!: remove lspconfig settings override (#58) (diff)
downloadmason-20b192ffd9cf81f94ed6c23973ecbd7ddc69d695.tar
mason-20b192ffd9cf81f94ed6c23973ecbd7ddc69d695.tar.gz
mason-20b192ffd9cf81f94ed6c23973ecbd7ddc69d695.tar.bz2
mason-20b192ffd9cf81f94ed6c23973ecbd7ddc69d695.tar.lz
mason-20b192ffd9cf81f94ed6c23973ecbd7ddc69d695.tar.xz
mason-20b192ffd9cf81f94ed6c23973ecbd7ddc69d695.tar.zst
mason-20b192ffd9cf81f94ed6c23973ecbd7ddc69d695.zip
chore!: remove ccls (#59)
This is a package that doesn't see frequent releases and it's been a mess to get to build across platforms. Installing via the system default package manager provides a much better experience atm.
Diffstat (limited to 'lua')
-rw-r--r--lua/mason-registry/ccls/common.lua47
-rw-r--r--lua/mason-registry/ccls/init.lua17
-rw-r--r--lua/mason-registry/ccls/linux.lua73
-rw-r--r--lua/mason-registry/ccls/mac.lua22
-rw-r--r--lua/mason-registry/index.lua1
-rw-r--r--lua/mason/mappings/language.lua5
6 files changed, 2 insertions, 163 deletions
diff --git a/lua/mason-registry/ccls/common.lua b/lua/mason-registry/ccls/common.lua
deleted file mode 100644
index 7393a0b5..00000000
--- a/lua/mason-registry/ccls/common.lua
+++ /dev/null
@@ -1,47 +0,0 @@
-local path = require "mason-core.path"
-local platform = require "mason-core.platform"
-local installer = require "mason-core.installer"
-local git = require "mason-core.managers.git"
-local github = require "mason-core.managers.github"
-local Optional = require "mason-core.optional"
-
----@async
----@param opts {llvm_dir: string}
-return function(opts)
- local ctx = installer.context()
- local clang_resource_dir = path.concat { ctx.package:get_install_path(), "clang-resource" }
- local install_prefix = ctx.cwd:get()
-
- local source = github.tag { repo = "MaskRay/ccls" }
- source.with_receipt()
-
- ctx.fs:mkdir "ccls-git"
- ctx:chdir("ccls-git", function()
- git.clone { "https://github.com/MaskRay/ccls", recursive = true, version = Optional.of(source.tag) }
- ctx.spawn.cmake {
- "-DCMAKE_BUILD_TYPE=Release",
- "-DUSE_SYSTEM_RAPIDJSON=OFF",
- "-DCMAKE_FIND_FRAMEWORK=LAST",
- "-Wno-dev",
- ("-DCMAKE_INSTALL_PREFIX=%s"):format(install_prefix),
- Optional.of_nilable(opts.llvm_dir)
- :map(function(llvm_dir)
- return {
- ("-DCMAKE_PREFIX_PATH=%s"):format(llvm_dir),
- -- On Mac we use Homebrew LLVM which will persist after installation.
- -- On Linux, and when a custom llvm_dir is provided, its clang resource dir will be the only
- -- artifact persisted after installation, as the locally installed llvm installation will be
- -- cleaned up after compilation.
- not platform.is_mac and ("-DCLANG_RESOURCE_DIR=%s"):format(clang_resource_dir) or vim.NIL,
- }
- end)
- :or_else(vim.NIL),
- platform.is_mac and "-DCMAKE_OSX_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" or vim.NIL,
- }
-
- ctx.spawn.make { "install" }
- end)
- ctx.fs:rmrf "ccls-git"
-
- ctx:link_bin("ccls", path.concat { "bin", "ccls" })
-end
diff --git a/lua/mason-registry/ccls/init.lua b/lua/mason-registry/ccls/init.lua
deleted file mode 100644
index cacbebb5..00000000
--- a/lua/mason-registry/ccls/init.lua
+++ /dev/null
@@ -1,17 +0,0 @@
-local Pkg = require "mason-core.package"
-local platform = require "mason-core.platform"
-
-return Pkg.new {
- name = "ccls",
- desc = [[C/C++/ObjC language server supporting cross references, hierarchies, completion and semantic highlighting]],
- homepage = "https://github.com/MaskRay/ccls",
- languages = { Pkg.Lang.C, Pkg.Lang["C++"], Pkg.Lang["Obective-C"] },
- categories = { Pkg.Cat.LSP },
- ---@async
- install = function()
- platform.when {
- mac = require "mason-registry.ccls.mac",
- linux = require "mason-registry.ccls.linux",
- }
- end,
-}
diff --git a/lua/mason-registry/ccls/linux.lua b/lua/mason-registry/ccls/linux.lua
deleted file mode 100644
index fa735266..00000000
--- a/lua/mason-registry/ccls/linux.lua
+++ /dev/null
@@ -1,73 +0,0 @@
-local path = require "mason-core.path"
-local platform = require "mason-core.platform"
-local installer = require "mason-core.installer"
-local github = require "mason-core.managers.github"
-local _ = require "mason-core.functional"
-local Result = require "mason-core.result"
-local Optional = require "mason-core.optional"
-
-local ccls_installer = require "mason-registry.ccls.common"
-
-local coalesce, when = _.coalesce, _.when
-
----@param release string
-local function normalize_llvm_release(release)
- -- Strip the "llvmorg-" prefix from tags (llvm releases tags like llvmorg-13.0.0)
- local normalized_release = release:gsub("^llvmorg%-", "")
- return normalized_release
-end
-
----@async
-local function llvm_installer()
- local ctx = installer.context()
- local os_dist = platform.os_distribution()
-
- local asset_name = coalesce(
- when(
- platform.arch == "x64",
- coalesce(
- when(
- os_dist.id == "ubuntu" and os_dist.version.major >= 20,
- "clang+llvm-%s-x86_64-linux-gnu-ubuntu-20.04"
- ),
- when(
- os_dist.id == "ubuntu" and os_dist.version.major >= 16,
- "clang+llvm-%s-x86_64-linux-gnu-ubuntu-16.04"
- )
- )
- ),
- when(platform.arch == "arm64", "clang+llvm-%s-aarch64-linux-gnu"),
- when(platform.arch == "armv7", "clang+llvm-%s-armv7a-linux-gnueabihf")
- )
-
- local source = github.untarxz_release_file {
- repo = "llvm/llvm-project",
- version = Optional.of "llvmorg-13.0.0",
- asset_file = function(release)
- local normalized_release = normalize_llvm_release(release)
- return asset_name and ("%s.tar.xz"):format(asset_name):format(normalized_release)
- end,
- }
-
- ctx.fs:rename(asset_name:format(normalize_llvm_release(source.release)), "llvm")
- -- We move the clang headers out, because they need to be persisted
- ctx.fs:rename(path.concat { "llvm", "lib", "clang", normalize_llvm_release(source.release) }, "clang-resource")
-
- return path.concat { ctx.cwd:get(), "llvm" }
-end
-
----@async
-return function()
- local ctx = installer.context()
- Result.run_catching(llvm_installer)
- :map(function(llvm_dir)
- ccls_installer { llvm_dir = llvm_dir }
- ctx.fs:rmrf "llvm"
- end)
- :recover(function()
- pcall(function()
- ctx.fs:rmrf "llvm"
- end)
- ccls_installer {}
- end)
-end
diff --git a/lua/mason-registry/ccls/mac.lua b/lua/mason-registry/ccls/mac.lua
deleted file mode 100644
index bd2efe0a..00000000
--- a/lua/mason-registry/ccls/mac.lua
+++ /dev/null
@@ -1,22 +0,0 @@
-local path = require "mason-core.path"
-local platform = require "mason-core.platform"
-local installer = require "mason-core.installer"
-local fs = require "mason-core.fs"
-
-local ccls_installer = require "mason-registry.ccls.common"
-
----@async
-return function()
- local ctx = installer.context()
- local homebrew_prefix = platform.get_homebrew_prefix():get_or_throw()
- local llvm_dir = path.concat { homebrew_prefix, "opt", "llvm", "lib", "cmake" }
- if not fs.async.dir_exists(llvm_dir) then
- ctx.stdio_sink.stderr(
- (
- "LLVM does not seem to be installed on this system (looked in %q). Please install LLVM via Homebrew:\n $ brew install llvm\n"
- ):format(llvm_dir)
- )
- error "Unable to find LLVM."
- end
- ccls_installer { llvm_dir = llvm_dir }
-end
diff --git a/lua/mason-registry/index.lua b/lua/mason-registry/index.lua
index 799f4dad..c6886c01 100644
--- a/lua/mason-registry/index.lua
+++ b/lua/mason-registry/index.lua
@@ -13,7 +13,6 @@ return {
["bicep-lsp"] = "mason-registry.bicep-lsp",
black = "mason-registry.black",
["bsl-language-server"] = "mason-registry.bsl-language-server",
- ccls = "mason-registry.ccls",
["chrome-debug-adapter"] = "mason-registry.chrome-debug-adapter",
clangd = "mason-registry.clangd",
["clarity-lsp"] = "mason-registry.clarity-lsp",
diff --git a/lua/mason/mappings/language.lua b/lua/mason/mappings/language.lua
index b94d2b33..20325c1c 100644
--- a/lua/mason/mappings/language.lua
+++ b/lua/mason/mappings/language.lua
@@ -13,9 +13,9 @@ return {
bash = { "bash-language-server", "shellcheck", "shfmt" },
beancount = { "beancount-language-server" },
bicep = { "bicep-lsp" },
- c = { "ccls", "clangd", "codelldb", "cpplint", "cpptools" },
+ c = { "clangd", "codelldb", "cpplint", "cpptools" },
["c#"] = { "csharp-language-server", "netcoredbg", "omnisharp-roslyn" },
- ["c++"] = { "ccls", "clangd", "codelldb", "cpplint", "cpptools" },
+ ["c++"] = { "clangd", "codelldb", "cpplint", "cpptools" },
clarity = { "clarity-lsp" },
clojure = { "clojure-lsp" },
clojurescript = { "clojure-lsp" },
@@ -62,7 +62,6 @@ return {
nickel = { "nickel-lang-lsp" },
nim = { "nimlsp" },
nix = { "rnix-lsp" },
- ["obective-c"] = { "ccls" },
ocaml = { "ocaml-lsp" },
onescript = { "bsl-language-server" },
opencl = { "opencl-language-server" },