aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/diagnostics.rs
diff options
context:
space:
mode:
authoryihuang <[email protected]>2020-07-10 08:41:41 +0100
committeryihuang <[email protected]>2020-07-10 10:30:57 +0100
commit17ff67dd7e874ad7cff5251684fb242c4a4e3200 (patch)
treee8e185a866f64ab0d17466e0d9b7f187ae04f111 /crates/ra_ide/src/diagnostics.rs
parent5fc84f071d8fe1792db1f20bf735ec6b85a51a2f (diff)
Only take first 500 syntax errors
Too many syntax errors make some editor/ide slow, fix #3434.
Diffstat (limited to 'crates/ra_ide/src/diagnostics.rs')
-rw-r--r--crates/ra_ide/src/diagnostics.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/crates/ra_ide/src/diagnostics.rs b/crates/ra_ide/src/diagnostics.rs
index e69e9b4ec..71fd45e5d 100644
--- a/crates/ra_ide/src/diagnostics.rs
+++ b/crates/ra_ide/src/diagnostics.rs
@@ -35,7 +35,8 @@ pub(crate) fn diagnostics(db: &RootDatabase, file_id: FileId) -> Vec<Diagnostic>
35 let parse = db.parse(file_id); 35 let parse = db.parse(file_id);
36 let mut res = Vec::new(); 36 let mut res = Vec::new();
37 37
38 res.extend(parse.errors().iter().map(|err| Diagnostic { 38 // [#34344] Only take first 500 errors to prevent slowing down editor/ide, the number 500 is chosen arbitrarily.
39 res.extend(parse.errors().iter().take(500).map(|err| Diagnostic {
39 range: err.range(), 40 range: err.range(),
40 message: format!("Syntax Error: {}", err), 41 message: format!("Syntax Error: {}", err),
41 severity: Severity::Error, 42 severity: Severity::Error,