diff options
Diffstat (limited to 'cli/tools/registry/diagnostics.rs')
-rw-r--r-- | cli/tools/registry/diagnostics.rs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/cli/tools/registry/diagnostics.rs b/cli/tools/registry/diagnostics.rs index ff86e68fb..9e88e81de 100644 --- a/cli/tools/registry/diagnostics.rs +++ b/cli/tools/registry/diagnostics.rs @@ -287,7 +287,30 @@ impl Diagnostic for PublishDiagnostic { } fn snippet_fixed(&self) -> Option<DiagnosticSnippet<'_>> { - None + match &self { + PublishDiagnostic::InvalidExternalImport { imported, .. } => { + match super::api::get_jsr_alternative(imported) { + Some(replacement) => { + let replacement = SourceTextInfo::new(replacement.into()); + let start = replacement.line_start(0); + let end = replacement.line_end(0); + Some(DiagnosticSnippet { + source: Cow::Owned(replacement), + highlight: DiagnosticSnippetHighlight { + style: DiagnosticSnippetHighlightStyle::Hint, + range: DiagnosticSourceRange { + start: DiagnosticSourcePos::SourcePos(start), + end: DiagnosticSourcePos::SourcePos(end), + }, + description: Some("try this specifier".into()), + }, + }) + } + None => None, + } + } + _ => None, + } } fn info(&self) -> Cow<'_, [Cow<'_, str>]> { |