diff options
| -rw-r--r-- | lua/mason-core/managers/luarocks/init.lua | 5 | ||||
| -rw-r--r-- | lua/mason-registry/index.lua | 1 | ||||
| -rw-r--r-- | lua/mason-registry/luaformatter/init.lua | 14 | ||||
| -rw-r--r-- | lua/mason/mappings/language.lua | 2 | ||||
| -rw-r--r-- | tests/mason-core/managers/luarocks_spec.lua | 22 |
5 files changed, 41 insertions, 3 deletions
diff --git a/lua/mason-core/managers/luarocks/init.lua b/lua/mason-core/managers/luarocks/init.lua index 0deb2e1f..9fd59ca1 100644 --- a/lua/mason-core/managers/luarocks/init.lua +++ b/lua/mason-core/managers/luarocks/init.lua @@ -21,7 +21,7 @@ local function with_receipt(package) end ---@param package string: The luarock package to install. ----@param opts { dev: boolean, bin : string[] | nil } | nil +---@param opts { dev: boolean?, server: string?, bin : string[]? | nil }? function M.package(package, opts) return function() return M.install(package, opts).with_receipt() @@ -30,7 +30,7 @@ end ---@async ---@param pkg string: The luarock package to install. ----@param opts { dev: boolean, bin : string[] | nil } | nil +---@param opts { dev: boolean?, server: string?, bin : string[]? | nil }? function M.install(pkg, opts) opts = opts or {} local ctx = installer.context() @@ -40,6 +40,7 @@ function M.install(pkg, opts) "--tree", ctx.cwd:get(), opts.dev and "--dev" or vim.NIL, + opts.server and ("--server=%s"):format(opts.server) or vim.NIL, pkg, ctx.requested_version:or_else(vim.NIL), } diff --git a/lua/mason-registry/index.lua b/lua/mason-registry/index.lua index 22419eba..e9d8073f 100644 --- a/lua/mason-registry/index.lua +++ b/lua/mason-registry/index.lua @@ -84,6 +84,7 @@ return { ["ltex-ls"] = "mason-registry.ltex-ls", ["lua-language-server"] = "mason-registry.lua-language-server", luacheck = "mason-registry.luacheck", + luaformatter = "mason-registry.luaformatter", markdownlint = "mason-registry.markdownlint", marksman = "mason-registry.marksman", ["metamath-zero-lsp"] = "mason-registry.metamath-zero-lsp", diff --git a/lua/mason-registry/luaformatter/init.lua b/lua/mason-registry/luaformatter/init.lua new file mode 100644 index 00000000..f4e4c888 --- /dev/null +++ b/lua/mason-registry/luaformatter/init.lua @@ -0,0 +1,14 @@ +local Pkg = require "mason-core.package" +local luarocks = require "mason-core.managers.luarocks" + +return Pkg.new { + name = "luaformatter", + desc = [[Code formatter for Lua]], + homepage = "https://github.com/Koihik/LuaFormatter", + languages = { Pkg.Lang.Lua }, + categories = { Pkg.Cat.Formatter }, + install = luarocks.package("luaformatter", { + server = "https://luarocks.org/dev", + bin = { "lua-format" }, + }), +} diff --git a/lua/mason/mappings/language.lua b/lua/mason/mappings/language.lua index dc8beab1..9aa8f822 100644 --- a/lua/mason/mappings/language.lua +++ b/lua/mason/mappings/language.lua @@ -58,7 +58,7 @@ return { lelwel = { "lelwel" }, less = { "css-lsp", "prettier" }, liquid = { "shopify-theme-check" }, - lua = { "lemmy-help", "lua-language-server", "luacheck", "stylua" }, + lua = { "lemmy-help", "lua-language-server", "luacheck", "luaformatter", "stylua" }, markdown = { "grammarly-languageserver", "ltex-ls", "markdownlint", "marksman", "prettier", "prosemd-lsp", "remark-language-server", "zk" }, ["metamath zero"] = { "metamath-zero-lsp" }, mksh = { "shfmt" }, diff --git a/tests/mason-core/managers/luarocks_spec.lua b/tests/mason-core/managers/luarocks_spec.lua index 749a7319..26ddcb4b 100644 --- a/tests/mason-core/managers/luarocks_spec.lua +++ b/tests/mason-core/managers/luarocks_spec.lua @@ -15,6 +15,7 @@ describe("luarocks manager", function() "--tree", path.package_prefix "dummy", vim.NIL, -- --dev flag + vim.NIL, -- --server flag "lua-cjson", vim.NIL, -- version } @@ -33,6 +34,7 @@ describe("luarocks manager", function() "--tree", path.package_prefix "dummy", vim.NIL, -- --dev flag + vim.NIL, -- --server flag "lua-cjson", "1.2.3", } @@ -51,12 +53,32 @@ describe("luarocks manager", function() "--tree", path.package_prefix "dummy", "--dev", + vim.NIL, -- --server flag "lua-cjson", vim.NIL, -- version } end) ) + it( + "should provide --server flag", + async_test(function() + local handle = InstallHandleGenerator "dummy" + local ctx = InstallContextGenerator(handle) + installer.run_installer(ctx, luarocks.package("luaformatter", { server = "https://luarocks.org/dev" })) + assert.spy(ctx.spawn.luarocks).was_called(1) + assert.spy(ctx.spawn.luarocks).was_called_with { + "install", + "--tree", + path.package_prefix "dummy", + vim.NIL, -- --dev flag + "--server=https://luarocks.org/dev", + "luaformatter", + vim.NIL, -- version + } + end) + ) + it("should parse outdated luarocks", function() assert.same( { |
