From c290d0e4ab6da9cac1e26684e53fba0b615862ed Mon Sep 17 00:00:00 2001 From: William Boman Date: Tue, 4 Jul 2023 12:29:37 +0200 Subject: feat(ui): don't use diagnostic messages for displaying deprecated, uninstalled, packages (#1393) Less intrusive display of deprecated packages that aren't installed. Diagnostics should only be for things that require the user's immediate attention. --- lua/mason/ui/components/main/package_list.lua | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'lua') diff --git a/lua/mason/ui/components/main/package_list.lua b/lua/mason/ui/components/main/package_list.lua index a92980f3..455a8196 100644 --- a/lua/mason/ui/components/main/package_list.lua +++ b/lua/mason/ui/components/main/package_list.lua @@ -52,6 +52,9 @@ end local function ExpandedPackageInfo(state, pkg, is_installed) local pkg_state = state.packages.states[pkg.name] return Ui.CascadingStyleNode({ "INDENT" }, { + Ui.When(not is_installed and pkg.spec.deprecation, function() + return Ui.HlTextNode(p.warning(("Deprecation message: %s"):format(pkg.spec.deprecation.message))) + end), Ui.HlTextNode(_.map(function(line) return { p.Comment(line) } end, _.split("\n", pkg.spec.desc))), @@ -137,15 +140,20 @@ local function PackageComponent(state, pkg, opts) if state.view.is_searching then package_line[#package_line + 1] = p.Comment((" (keywords: %s)"):format(get_package_search_keywords(pkg))) end + if not opts.is_installed and pkg.spec.deprecation ~= nil then + package_line[#package_line + 1] = p.warning " deprecated" + end 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(opts.is_installed and pkg.spec.deprecation ~= nil, function() + return 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), + } + end), Ui.When(pkg_state.is_checking_new_version, function() return Ui.VirtualTextNode { p.Comment " checking for new version…" } end), -- cgit v1.2.3-70-g09d2