mirror of
				https://github.com/astral-sh/ruff.git
				synced 2025-11-03 21:24:29 +00:00 
			
		
		
		
	Render Azure, JSON, and JSON lines output with the new diagnostics (#19133)
## Summary This was originally stacked on #19129, but some of the changes I made for JSON also impacted the Azure format, so I went ahead and combined them. The main changes here are: - Implementing `FileResolver` for Ruff's `EmitterContext` - Adding `FileResolver::notebook_index` and `FileResolver::is_notebook` methods - Adding a `DisplayDiagnostics` (with an "s") type for rendering a group of diagnostics at once - Adding `Azure`, `Json`, and `JsonLines` as new `DiagnosticFormat`s I tried a couple of alternatives to the `FileResolver::notebook` methods like passing down the `NotebookIndex` separately and trying to reparse a `Notebook` from Ruff's `SourceFile`. The latter seemed promising, but the `SourceFile` only stores the concatenated plain text of the notebook, not the re-parsable JSON. I guess the current version is just a variation on passing the `NotebookIndex`, but at least we can reuse the existing `resolver` argument. I think a lot of this can be cleaned up once Ruff has its own actual file resolver. As suggested, I also tried deleting the corresponding `Emitter` files in `ruff_linter`, but it doesn't look like git was able to follow this as a rename. It did, however, track that the tests were moved, so the snapshots should be easy to review. ## Test Plan Existing Ruff tests ported to tests in `ruff_db`. I think some other existing ruff tests also cover parts of this refactor. --------- Co-authored-by: Micha Reiser <micha@reiser.io>
This commit is contained in:
		
							parent
							
								
									ee88abf77c
								
							
						
					
					
						commit
						b5c5f710fc
					
				
					 28 changed files with 1135 additions and 539 deletions
				
			
		| 
						 | 
				
			
			@ -323,8 +323,8 @@ pub enum OutputFormat {
 | 
			
		|||
    Concise,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl From<OutputFormat> for ruff_db::diagnostic::DiagnosticFormat {
 | 
			
		||||
    fn from(format: OutputFormat) -> ruff_db::diagnostic::DiagnosticFormat {
 | 
			
		||||
impl From<OutputFormat> for ty_project::metadata::options::OutputFormat {
 | 
			
		||||
    fn from(format: OutputFormat) -> ty_project::metadata::options::OutputFormat {
 | 
			
		||||
        match format {
 | 
			
		||||
            OutputFormat::Full => Self::Full,
 | 
			
		||||
            OutputFormat::Concise => Self::Concise,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -290,7 +290,7 @@ impl MainLoop {
 | 
			
		|||
                } => {
 | 
			
		||||
                    let terminal_settings = db.project().settings(db).terminal();
 | 
			
		||||
                    let display_config = DisplayDiagnosticConfig::default()
 | 
			
		||||
                        .format(terminal_settings.output_format)
 | 
			
		||||
                        .format(terminal_settings.output_format.into())
 | 
			
		||||
                        .color(colored::control::SHOULD_COLORIZE.should_colorize());
 | 
			
		||||
 | 
			
		||||
                    if check_revision == revision {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue