Skip to content

Commit c290d0e

Browse files
authored
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.
1 parent b728115 commit c290d0e

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

lua/mason/ui/components/main/package_list.lua

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ end
5252
local function ExpandedPackageInfo(state, pkg, is_installed)
5353
local pkg_state = state.packages.states[pkg.name]
5454
return Ui.CascadingStyleNode({ "INDENT" }, {
55+
Ui.When(not is_installed and pkg.spec.deprecation, function()
56+
return Ui.HlTextNode(p.warning(("Deprecation message: %s"):format(pkg.spec.deprecation.message)))
57+
end),
5558
Ui.HlTextNode(_.map(function(line)
5659
return { p.Comment(line) }
5760
end, _.split("\n", pkg.spec.desc))),
@@ -137,15 +140,20 @@ local function PackageComponent(state, pkg, opts)
137140
if state.view.is_searching then
138141
package_line[#package_line + 1] = p.Comment((" (keywords: %s)"):format(get_package_search_keywords(pkg)))
139142
end
143+
if not opts.is_installed and pkg.spec.deprecation ~= nil then
144+
package_line[#package_line + 1] = p.warning " deprecated"
145+
end
140146

141147
return Ui.Node {
142148
Ui.HlTextNode { package_line },
143149
opts.sticky or Ui.Node {},
144-
pkg.spec.deprecation and Ui.DiagnosticsNode {
145-
message = ("deprecated: %s"):format(pkg.spec.deprecation.message),
146-
severity = vim.diagnostic.severity.WARN,
147-
source = ("Deprecated since version %s"):format(pkg.spec.deprecation.since),
148-
} or Ui.Node {},
150+
Ui.When(opts.is_installed and pkg.spec.deprecation ~= nil, function()
151+
return Ui.DiagnosticsNode {
152+
message = ("deprecated: %s"):format(pkg.spec.deprecation.message),
153+
severity = vim.diagnostic.severity.WARN,
154+
source = ("Deprecated since version %s"):format(pkg.spec.deprecation.since),
155+
}
156+
end),
149157
Ui.When(pkg_state.is_checking_new_version, function()
150158
return Ui.VirtualTextNode { p.Comment " checking for new version…" }
151159
end),

0 commit comments

Comments
 (0)