diff options
| author | Jay Patel <36803168+jayp0521@users.noreply.github.com> | 2022-11-06 19:54:52 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-07 01:54:52 +0100 |
| commit | f5b1a206c4335e1ccfd4f68feef63ba8950e3e90 (patch) | |
| tree | 4890bbae81abf23a519239f9ddd25a121e175c09 /lua | |
| parent | fix(protolint): use Protobuf language (#641) (diff) | |
| download | mason-f5b1a206c4335e1ccfd4f68feef63ba8950e3e90.tar mason-f5b1a206c4335e1ccfd4f68feef63ba8950e3e90.tar.gz mason-f5b1a206c4335e1ccfd4f68feef63ba8950e3e90.tar.bz2 mason-f5b1a206c4335e1ccfd4f68feef63ba8950e3e90.tar.lz mason-f5b1a206c4335e1ccfd4f68feef63ba8950e3e90.tar.xz mason-f5b1a206c4335e1ccfd4f68feef63ba8950e3e90.tar.zst mason-f5b1a206c4335e1ccfd4f68feef63ba8950e3e90.zip | |
feat(registry): add rustfmt (#642)
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/mason-registry/index.lua | 1 | ||||
| -rw-r--r-- | lua/mason-registry/rustfmt/init.lua | 32 | ||||
| -rw-r--r-- | lua/mason/mappings/language.lua | 2 |
3 files changed, 34 insertions, 1 deletions
diff --git a/lua/mason-registry/index.lua b/lua/mason-registry/index.lua index 8cbbb8cb..4f326a3f 100644 --- a/lua/mason-registry/index.lua +++ b/lua/mason-registry/index.lua @@ -185,6 +185,7 @@ return { rubocop = "mason-registry.rubocop", ["ruby-lsp"] = "mason-registry.ruby-lsp", ["rust-analyzer"] = "mason-registry.rust-analyzer", + rustfmt = "mason-registry.rustfmt", ["salt-lsp"] = "mason-registry.salt-lsp", selene = "mason-registry.selene", ["serve-d"] = "mason-registry.serve-d", diff --git a/lua/mason-registry/rustfmt/init.lua b/lua/mason-registry/rustfmt/init.lua new file mode 100644 index 00000000..e8a03daf --- /dev/null +++ b/lua/mason-registry/rustfmt/init.lua @@ -0,0 +1,32 @@ +local Pkg = require "mason-core.package" +local _ = require "mason-core.functional" +local platform = require "mason-core.platform" +local github = require "mason-core.managers.github" + +local coalesce, when = _.coalesce, _.when + +return Pkg.new { + name = "rustfmt", + desc = [[A tool for formatting Rust code according to style guidelines]], + homepage = "https://github.com/rust-lang/rustfmt", + categories = { Pkg.Cat.Formatter }, + languages = { Pkg.Lang.Rust }, + install = function(ctx) + ---@param template_string string + local function release_file(template_string) + return _.compose(_.format(template_string), _.gsub("^v", "")) + end + + github + .untargz_release_file({ + repo = "rust-lang/rustfmt", + asset_file = coalesce( + when(platform.is.mac, release_file "rustfmt_macos-x86_64_%s.tar.gz"), + when(platform.is.linux_x64, release_file "rustfmt_linux-x86_64_%s.tar.gz"), + when(platform.is.win_x64, release_file "rustfmt_windows-x86_64-msvc_%s.tar.gz") + ), + }) + .with_receipt() + ctx:link_bin("rustfmt", platform.is.win and "rustfmt.exe" or "rustfmt") + end, +} diff --git a/lua/mason/mappings/language.lua b/lua/mason/mappings/language.lua index e2bb1b8f..062b44c4 100644 --- a/lua/mason/mappings/language.lua +++ b/lua/mason/mappings/language.lua @@ -98,7 +98,7 @@ return { rescript = { "rescript-lsp" }, ["robot framework"] = { "robotframework-lsp" }, ruby = { "erb-lint", "rubocop", "ruby-lsp", "solargraph", "sorbet", "standardrb" }, - rust = { "codelldb", "cpptools", "rust-analyzer" }, + rust = { "codelldb", "cpptools", "rust-analyzer", "rustfmt" }, salt = { "salt-lsp" }, scss = { "css-lsp", "prettier", "prettierd" }, sh = { "beautysh" }, |
