Skip to content

Commit 7aaab7f

Browse files
authored
fix(grit): linting inside workspace (#4477)
1 parent 931960e commit 7aaab7f

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

crates/biome_service/src/file_handlers/grit.rs

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
use super::{
22
AnalyzerCapabilities, Capabilities, DebugCapabilities, DocumentFileSource, ExtensionHandler,
3-
FormatterCapabilities, ParseResult, ParserCapabilities, SearchCapabilities,
3+
FormatterCapabilities, LintParams, LintResults, ParseResult, ParserCapabilities,
4+
SearchCapabilities,
45
};
56
use crate::workspace::GetSyntaxTreeResult;
67
use crate::{
78
settings::{ServiceLanguage, Settings, WorkspaceSettingsHandle},
89
WorkspaceError,
910
};
1011
use biome_analyze::{AnalyzerConfiguration, AnalyzerOptions};
12+
use biome_diagnostics::{Diagnostic, Severity};
1113
use biome_formatter::{IndentStyle, IndentWidth, LineEnding, LineWidth, Printed};
1214
use biome_fs::BiomePath;
1315
use biome_grit_formatter::{context::GritFormatOptions, format_node};
1416
use biome_grit_parser::parse_grit_with_cache;
1517
use biome_grit_syntax::{GritLanguage, GritRoot, GritSyntaxNode};
1618
use biome_parser::AnyParse;
1719
use biome_rowan::NodeCache;
20+
use tracing::debug_span;
1821

1922
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
2023
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
@@ -118,7 +121,7 @@ impl ExtensionHandler for GritFileHandler {
118121
debug_formatter_ir: Some(debug_formatter_ir),
119122
},
120123
analyzer: AnalyzerCapabilities {
121-
lint: None,
124+
lint: Some(lint),
122125
code_actions: None,
123126
rename: None,
124127
fix_all: None,
@@ -192,3 +195,23 @@ fn format(
192195
Err(error) => Err(WorkspaceError::FormatError(error.into())),
193196
}
194197
}
198+
199+
#[tracing::instrument(level = "debug", skip(params))]
200+
fn lint(params: LintParams) -> LintResults {
201+
let _ = debug_span!("Linting Grit file", path =? params.path, language =? params.language)
202+
.entered();
203+
let diagnostics = params.parse.into_diagnostics();
204+
205+
let diagnostic_count = diagnostics.len() as u32;
206+
let skipped_diagnostics = diagnostic_count.saturating_sub(diagnostics.len() as u32);
207+
let errors = diagnostics
208+
.iter()
209+
.filter(|diag| diag.severity() <= Severity::Error)
210+
.count();
211+
212+
LintResults {
213+
diagnostics,
214+
errors,
215+
skipped_diagnostics,
216+
}
217+
}

crates/biome_service/src/file_handlers/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,6 @@ impl DocumentFileSource {
160160
if let Ok(file_source) = HtmlFileSource::try_from_extension(extension) {
161161
return Ok(file_source.into());
162162
}
163-
164163
if let Ok(file_source) = GritFileSource::try_from_extension(extension) {
165164
return Ok(file_source.into());
166165
}

0 commit comments

Comments
 (0)