@@ -378,6 +378,7 @@ impl Application {
378 let doc = self.editor.document_by_path_mut(&path);
378 let doc = self.editor.document_by_path_mut(&path);
380 if let Some(doc) = doc {
380 if let Some(doc) = doc {
381+ let lang_conf = doc.language_config();
381 let text = doc.text();
382 let text = doc.text();
383 let diagnostics = params
384 let diagnostics = params
@@ -415,19 +416,31 @@ impl Application {
415 return None;
416 return None;
420+ diagnostic.severity.map(|severity| match severity {
421+ DiagnosticSeverity::ERROR => Error,
422+ DiagnosticSeverity::WARNING => Warning,
423+ DiagnosticSeverity::INFORMATION => Info,
424+ DiagnosticSeverity::HINT => Hint,
425+ severity => unreachable!(
426+ "unrecognized diagnostic severity: {:?}",
431+ if let Some(lang_conf) = lang_conf {
432+ if let Some(severity) = severity {
433+ if severity < lang_conf.diagnostic_severity {
418 Some(Diagnostic {
439 Some(Diagnostic {
419 range: Range { start, end },
440 range: Range { start, end },
420 line: diagnostic.range.start.line as usize,
441 line: diagnostic.range.start.line as usize,
421 message: diagnostic.message,
442 message: diagnostic.message,
422− severity: diagnostic.severity.map(
443+ severity,
423− |severity| match severity {
424− DiagnosticSeverity::ERROR => Error,
425− DiagnosticSeverity::WARNING => Warning,
426− DiagnosticSeverity::INFORMATION => Info,
427− DiagnosticSeverity::HINT => Hint,
428− severity => unimplemented!("{:?}", severity),
432 // source
445 // source