From b7281153cd9167d2b1a5d8cbda1ba8d4ad9fa8c2 Mon Sep 17 00:00:00 2001 From: William Boman Date: Tue, 4 Jul 2023 12:08:12 +0200 Subject: [PATCH] feat(ui): display package deprecation message (#1391) --- lua/mason-core/package/init.lua | 5 +++++ lua/mason/ui/components/main/package_list.lua | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lua/mason-core/package/init.lua b/lua/mason-core/package/init.lua index e0a361ca7..57f4868de 100644 --- a/lua/mason-core/package/init.lua +++ b/lua/mason-core/package/init.lua @@ -66,6 +66,10 @@ local PackageMt = { __index = Package } ---@class RegistryPackageSchemas ---@field lsp string? +---@class RegistryPackageDeprecation +---@field since string +---@field message string + ---@class RegistryPackageSpec ---@field schema '"registry+v1"' ---@field name string @@ -75,6 +79,7 @@ local PackageMt = { __index = Package } ---@field languages string[] ---@field categories string[] ---@field source RegistryPackageSource +---@field deprecation RegistryPackageDeprecation? ---@field schemas RegistryPackageSchemas? ---@field bin table? ---@field share table? diff --git a/lua/mason/ui/components/main/package_list.lua b/lua/mason/ui/components/main/package_list.lua index dc8b7428b..a92980f32 100644 --- a/lua/mason/ui/components/main/package_list.lua +++ b/lua/mason/ui/components/main/package_list.lua @@ -141,14 +141,18 @@ local function PackageComponent(state, pkg, opts) return Ui.Node { Ui.HlTextNode { package_line }, opts.sticky or Ui.Node {}, + pkg.spec.deprecation and Ui.DiagnosticsNode { + message = ("deprecated: %s"):format(pkg.spec.deprecation.message), + severity = vim.diagnostic.severity.WARN, + source = ("Deprecated since version %s"):format(pkg.spec.deprecation.since), + } or Ui.Node {}, Ui.When(pkg_state.is_checking_new_version, function() return Ui.VirtualTextNode { p.Comment " checking for new version…" } end), Ui.Keybind(settings.current.ui.keymaps.check_package_version, "CHECK_NEW_PACKAGE_VERSION", pkg), Ui.When(pkg_state.new_version ~= nil, function() return Ui.DiagnosticsNode { - message = ("new version available: %s %s -> %s"):format( - pkg_state.new_version.name, + message = ("new version available: %s -> %s"):format( pkg_state.new_version.current_version, pkg_state.new_version.latest_version ),