1use tinymist_lint::KnownIssues;
2use tinymist_project::LspCompiledArtifact;
3
4use crate::{DiagWorker, DiagnosticsMap, SemanticRequest, prelude::*};
5
6#[derive(Clone)]
8pub struct CheckRequest {
9 pub snap: LspCompiledArtifact,
11}
12
13impl SemanticRequest for CheckRequest {
14 type Response = DiagnosticsMap;
15
16 fn request(self, ctx: &mut LocalContext) -> Option<Self::Response> {
17 let worker = DiagWorker::new(ctx);
18 let compiler_diags = || self.snap.diagnostics();
19
20 let known_issues = KnownIssues::from_compiler_diagnostics(compiler_diags());
21 Some(worker.check(&known_issues).convert_all(compiler_diags()))
22 }
23}