diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason/_generated/package_index.lua | 1 | ||||
| -rw-r--r-- | lua/mason/packages/ktlint/init.lua | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/lua/mason/_generated/package_index.lua b/lua/mason/_generated/package_index.lua index 55323c26..a1b36015 100644 --- a/lua/mason/_generated/package_index.lua +++ b/lua/mason/_generated/package_index.lua @@ -63,6 +63,7 @@ return { ["jsonnet-language-server"] = "mason.packages.jsonnet-language-server", ["julia-lsp"] = "mason.packages.julia-lsp", ["kotlin-language-server"] = "mason.packages.kotlin-language-server", + ktlint = "mason.packages.ktlint", lelwel = "mason.packages.lelwel", lemminx = "mason.packages.lemminx", ["lemmy-help"] = "mason.packages.lemmy-help", diff --git a/lua/mason/packages/ktlint/init.lua b/lua/mason/packages/ktlint/init.lua new file mode 100644 index 00000000..1af3bf6d --- /dev/null +++ b/lua/mason/packages/ktlint/init.lua @@ -0,0 +1,38 @@ +local Pkg = require "mason.core.package" +local github = require "mason.core.managers.github" +local std = require "mason.core.managers.std" +local path = require "mason.core.path" +local platform = require "mason.core.platform" + +return Pkg.new { + name = "ktlint", + desc = [[An anti-bikeshedding Kotlin linter with built-in formatter]], + homepage = "https://github.com/pinterest/ktlint", + languages = { Pkg.Lang.Kotlin }, + categories = { Pkg.Cat.Formatter, Pkg.Cat.Linter }, + ---@async + ---@param ctx InstallContext + install = function(ctx) + github + .download_release_file({ + repo = "pinterest/ktlint", + asset_file = "ktlint", + out_file = "ktlint", + }) + .with_receipt() + + platform.when { + unix = function() + std.chmod("+x", { "ktlint" }) + ctx:link_bin("ktlint", "ktlint") + end, + win = function() + ctx:write_shell_exec_wrapper( + "ktlint", + ("java -jar %q"):format(path.concat { ctx.package:get_install_path(), "ktlint" }) + ) + ctx:link_bin("ktlint", "ktlint.cmd") + end, + } + end, +} |
