pub struct Diagnostic {
pub file_id: usize,
pub severity: Severity,
pub code: Option<String>,
pub title: String,
pub tag: Option<DiagnosticTag>,
pub primary: Option<SubDiagnostic>,
pub children: Vec<SubDiagnostic>,
pub suggestions: Vec<CodeSuggestion>,
pub footers: Vec<Footer>,
}
Expand description
A diagnostic message that can give information like errors or warnings.
Fields§
§file_id: usize
§severity: Severity
§code: Option<String>
§title: String
§tag: Option<DiagnosticTag>
§primary: Option<SubDiagnostic>
§children: Vec<SubDiagnostic>
§suggestions: Vec<CodeSuggestion>
Implementations§
Source§impl Diagnostic
impl Diagnostic
Sourcepub fn error(
file_id: usize,
code: impl Into<String>,
title: impl Into<String>,
) -> Diagnostic
pub fn error( file_id: usize, code: impl Into<String>, title: impl Into<String>, ) -> Diagnostic
Creates a new Diagnostic
with the Error
severity.
Sourcepub fn warning(
file_id: usize,
code: impl Into<String>,
title: impl Into<String>,
) -> Diagnostic
pub fn warning( file_id: usize, code: impl Into<String>, title: impl Into<String>, ) -> Diagnostic
Creates a new Diagnostic
with the Warning
severity.
Sourcepub fn help(
file_id: usize,
code: impl Into<String>,
title: impl Into<String>,
) -> Diagnostic
pub fn help( file_id: usize, code: impl Into<String>, title: impl Into<String>, ) -> Diagnostic
Creates a new Diagnostic
with the Help
severity.
Sourcepub fn note(
file_id: usize,
code: impl Into<String>,
title: impl Into<String>,
) -> Diagnostic
pub fn note( file_id: usize, code: impl Into<String>, title: impl Into<String>, ) -> Diagnostic
Creates a new Diagnostic
with the Note
severity.
Sourcepub fn new(
file_id: usize,
severity: Severity,
title: impl Into<String>,
) -> Diagnostic
pub fn new( file_id: usize, severity: Severity, title: impl Into<String>, ) -> Diagnostic
Creates a new Diagnostic
that will be used in a builder-like way
to modify labels, and suggestions.
Sourcepub fn new_with_code(
file_id: usize,
severity: Severity,
title: impl Into<String>,
code: Option<String>,
) -> Diagnostic
pub fn new_with_code( file_id: usize, severity: Severity, title: impl Into<String>, code: Option<String>, ) -> Diagnostic
Creates a new Diagnostic
with an error code that will be used in a builder-like way
to modify labels, and suggestions.
Sourcepub fn severity(self, severity: Severity) -> Diagnostic
pub fn severity(self, severity: Severity) -> Diagnostic
Overwrites the severity of this diagnostic.
Sourcepub fn deprecated(self) -> Diagnostic
pub fn deprecated(self) -> Diagnostic
Marks this diagnostic as deprecated code, which will be displayed in the language server.
This does not have any influence on the diagnostic rendering.
Sourcepub fn unnecessary(self) -> Diagnostic
pub fn unnecessary(self) -> Diagnostic
Marks this diagnostic as unnecessary code, which will be displayed in the language server.
This does not have any influence on the diagnostic rendering.
Sourcepub fn label_in_file(
self,
severity: Severity,
span: FileSpan,
msg: String,
) -> Diagnostic
pub fn label_in_file( self, severity: Severity, span: FileSpan, msg: String, ) -> Diagnostic
Attaches a label to this Diagnostic
, that will point to another file
that is provided.
Sourcepub fn label(
self,
severity: Severity,
span: impl Span,
msg: impl Into<String>,
) -> Diagnostic
pub fn label( self, severity: Severity, span: impl Span, msg: impl Into<String>, ) -> Diagnostic
Attaches a label to this Diagnostic
.
The given span has to be in the file that was provided while creating this Diagnostic
.
Sourcepub fn primary(self, span: impl Span, msg: impl Into<String>) -> Diagnostic
pub fn primary(self, span: impl Span, msg: impl Into<String>) -> Diagnostic
Attaches a primary label to this Diagnostic
.
Sourcepub fn secondary(self, span: impl Span, msg: impl Into<String>) -> Diagnostic
pub fn secondary(self, span: impl Span, msg: impl Into<String>) -> Diagnostic
Attaches a secondary label to this Diagnostic
.
Sourcepub fn suggestion_in_file(
self,
span: impl Span,
msg: &str,
suggestion: impl Into<String>,
applicability: Applicability,
file: usize,
) -> Diagnostic
pub fn suggestion_in_file( self, span: impl Span, msg: &str, suggestion: impl Into<String>, applicability: Applicability, file: usize, ) -> Diagnostic
Prints out a message that suggests a possible solution, that is in another
file as this Diagnostic
, to the error.
If the message plus the suggestion is longer than 25 chars,
the suggestion is displayed as a new children of this Diagnostic
,
otherwise it will be inlined with the other labels.
A suggestion is displayed like:
try adding a `;`: console.log();
or in a separate multiline suggestion
The message should not contain the :
because it’s added automatically.
The suggestion will automatically be wrapped inside two backticks.
Sourcepub fn suggestion(
self,
span: impl Span,
msg: &str,
suggestion: impl Into<String>,
applicability: Applicability,
) -> Diagnostic
pub fn suggestion( self, span: impl Span, msg: &str, suggestion: impl Into<String>, applicability: Applicability, ) -> Diagnostic
Prints out a message that suggests a possible solution to the error.
If the message plus the suggestion is longer than 25 chars,
the suggestion is displayed as a new children of this Diagnostic
,
otherwise it will be inlined with the other labels.
A suggestion is displayed like:
try adding a `;`: console.log();
or in a separate multiline suggestion
The message should not contain the :
because it’s added automatically.
The suggestion will automatically be wrapped inside two backticks.
Sourcepub fn suggestion_full(
self,
span: impl Span,
msg: &str,
suggestion: impl Into<String>,
applicability: Applicability,
) -> Diagnostic
pub fn suggestion_full( self, span: impl Span, msg: &str, suggestion: impl Into<String>, applicability: Applicability, ) -> Diagnostic
Add a suggestion which is always shown in the Full style.
Sourcepub fn suggestion_inline(
self,
span: impl Span,
msg: &str,
suggestion: impl Into<String>,
applicability: Applicability,
) -> Diagnostic
pub fn suggestion_inline( self, span: impl Span, msg: &str, suggestion: impl Into<String>, applicability: Applicability, ) -> Diagnostic
Add a suggestion which is always shown in the Inline style.
Sourcepub fn suggestion_no_code(
self,
span: impl Span,
msg: &str,
applicability: Applicability,
) -> Diagnostic
pub fn suggestion_no_code( self, span: impl Span, msg: &str, applicability: Applicability, ) -> Diagnostic
Add a suggestion which does not have a suggestion code.
pub fn indel_suggestion( self, indels: impl IntoIterator<Item = Indel>, span: impl Span, msg: &str, applicability: Applicability, ) -> Diagnostic
Sourcepub fn suggestion_with_labels(
self,
span: impl Span,
msg: &str,
suggestion: impl Into<String>,
applicability: Applicability,
labels: impl IntoIterator<Item = impl Span>,
) -> Diagnostic
pub fn suggestion_with_labels( self, span: impl Span, msg: &str, suggestion: impl Into<String>, applicability: Applicability, labels: impl IntoIterator<Item = impl Span>, ) -> Diagnostic
Add a suggestion with info labels which point to places in the suggestion.
The label ranges are relative to the start of the span, not relative to the original code
Sourcepub fn suggestion_with_src_labels(
self,
span: impl Span,
msg: &str,
suggestion: impl Into<String>,
applicability: Applicability,
labels: impl IntoIterator<Item = impl Span>,
) -> Diagnostic
pub fn suggestion_with_src_labels( self, span: impl Span, msg: &str, suggestion: impl Into<String>, applicability: Applicability, labels: impl IntoIterator<Item = impl Span>, ) -> Diagnostic
Add a suggestion with info labels which point to places in the suggestion.
The label ranges are relative to the source code, not relative to the original code
Adds a footer to this Diagnostic
, which will be displayed under the actual error.
Adds a footer to this Diagnostic
, with the Help
severity.
Adds a footer to this Diagnostic
, with the Note
severity.
Trait Implementations§
Source§impl Clone for Diagnostic
impl Clone for Diagnostic
Source§fn clone(&self) -> Diagnostic
fn clone(&self) -> Diagnostic
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more