diff --git a/lua/mason-registry/drools-lsp/init.lua b/lua/mason-registry/drools-lsp/init.lua new file mode 100644 index 000000000..e841afc9c --- /dev/null +++ b/lua/mason-registry/drools-lsp/init.lua @@ -0,0 +1,32 @@ +local Pkg = require "mason-core.package" +local github = require "mason-core.managers.github" +local Optional = require "mason-core.optional" +local path = require "mason-core.path" + +return Pkg.new { + name = "drools-lsp", + desc = [[An implementation of a language server for the Drools Rule Language.]], + homepage = "https://github.com/kiegroup/drools-lsp", + languages = { Pkg.Lang.Drools }, + categories = { Pkg.Cat.LSP }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + local jar = "drools-lsp-server-jar-with-dependencies.jar" + github + .download_release_file({ + repo = "kiegroup/drools-lsp", + version = Optional.of "latest", + asset_file = jar, + out_file = jar, + }) + .with_receipt() + ctx:link_bin( + "drools-lsp", + ctx:write_shell_exec_wrapper( + "drools-lsp", + ("java -cp %q org.drools.lsp.server.Main"):format(path.concat { ctx.package:get_install_path(), jar }) + ) + ) + end, +} diff --git a/lua/mason-registry/index.lua b/lua/mason-registry/index.lua index f639e3b11..81cea9723 100644 --- a/lua/mason-registry/index.lua +++ b/lua/mason-registry/index.lua @@ -61,6 +61,7 @@ return { ["dockerfile-language-server"] = "mason-registry.dockerfile-language-server", ["dot-language-server"] = "mason-registry.dot-language-server", dprint = "mason-registry.dprint", + ["drools-lsp"] = "mason-registry.drools-lsp", ["editorconfig-checker"] = "mason-registry.editorconfig-checker", efm = "mason-registry.efm", ["elixir-ls"] = "mason-registry.elixir-ls", diff --git a/lua/mason/mappings/language.lua b/lua/mason/mappings/language.lua index c180107f4..31d18e925 100644 --- a/lua/mason/mappings/language.lua +++ b/lua/mason/mappings/language.lua @@ -35,6 +35,7 @@ return { django = { "curlylint", "djlint" }, dockerfile = { "dockerfile-language-server", "hadolint" }, dot = { "dot-language-server" }, + drools = { "drools-lsp" }, elixir = { "elixir-ls" }, elm = { "elm-format", "elm-language-server" }, ember = { "ember-language-server" },