mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 18:58:26 +00:00
Convert Message::SyntaxError
to use Diagnostic
internally (#17784)
## Summary This PR is a first step toward integration of the new `Diagnostic` type into ruff. There are two main changes: - A new `UnifiedFile` enum wrapping `File` for red-knot and a `SourceFile` for ruff - ruff's `Message::SyntaxError` variant is now a `Diagnostic` instead of a `SyntaxErrorMessage` The second of these changes was mostly just a proof of concept for the first, and it went pretty smoothly. Converting `DiagnosticMessage`s will be most of the work in replacing `Message` entirely. ## Test Plan Existing tests, which show no changes. --------- Co-authored-by: Carl Meyer <carl@astral.sh> Co-authored-by: Micha Reiser <micha@reiser.io>
This commit is contained in:
parent
0763331f7f
commit
981bd70d39
31 changed files with 327 additions and 175 deletions
|
@ -14,7 +14,7 @@ use ruff_linter::{
|
|||
directives::{extract_directives, Flags},
|
||||
generate_noqa_edits,
|
||||
linter::check_path,
|
||||
message::{DiagnosticMessage, Message, SyntaxErrorMessage},
|
||||
message::{DiagnosticMessage, Message},
|
||||
package::PackageRoot,
|
||||
packaging::detect_package_root,
|
||||
registry::AsRule,
|
||||
|
@ -173,10 +173,10 @@ pub(crate) fn check(
|
|||
locator.to_index(),
|
||||
encoding,
|
||||
)),
|
||||
Message::SyntaxError(syntax_error_message) => {
|
||||
Message::SyntaxError(_) => {
|
||||
if show_syntax_errors {
|
||||
Some(syntax_error_to_lsp_diagnostic(
|
||||
syntax_error_message,
|
||||
&message,
|
||||
&source_kind,
|
||||
locator.to_index(),
|
||||
encoding,
|
||||
|
@ -322,7 +322,7 @@ fn to_lsp_diagnostic(
|
|||
}
|
||||
|
||||
fn syntax_error_to_lsp_diagnostic(
|
||||
syntax_error: SyntaxErrorMessage,
|
||||
syntax_error: &Message,
|
||||
source_kind: &SourceKind,
|
||||
index: &LineIndex,
|
||||
encoding: PositionEncoding,
|
||||
|
@ -331,7 +331,7 @@ fn syntax_error_to_lsp_diagnostic(
|
|||
let cell: usize;
|
||||
|
||||
if let Some(notebook_index) = source_kind.as_ipy_notebook().map(Notebook::index) {
|
||||
NotebookRange { cell, range } = syntax_error.range.to_notebook_range(
|
||||
NotebookRange { cell, range } = syntax_error.range().to_notebook_range(
|
||||
source_kind.source_code(),
|
||||
index,
|
||||
notebook_index,
|
||||
|
@ -340,7 +340,7 @@ fn syntax_error_to_lsp_diagnostic(
|
|||
} else {
|
||||
cell = usize::default();
|
||||
range = syntax_error
|
||||
.range
|
||||
.range()
|
||||
.to_range(source_kind.source_code(), index, encoding);
|
||||
}
|
||||
|
||||
|
@ -353,7 +353,7 @@ fn syntax_error_to_lsp_diagnostic(
|
|||
code: None,
|
||||
code_description: None,
|
||||
source: Some(DIAGNOSTIC_NAME.into()),
|
||||
message: syntax_error.message,
|
||||
message: syntax_error.body().to_string(),
|
||||
related_information: None,
|
||||
data: None,
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue