diff options
author | yihuang <[email protected]> | 2020-07-10 08:41:41 +0100 |
---|---|---|
committer | yihuang <[email protected]> | 2020-07-10 10:30:57 +0100 |
commit | 17ff67dd7e874ad7cff5251684fb242c4a4e3200 (patch) | |
tree | e8e185a866f64ab0d17466e0d9b7f187ae04f111 /crates | |
parent | 5fc84f071d8fe1792db1f20bf735ec6b85a51a2f (diff) |
Only take first 500 syntax errors
Too many syntax errors make some editor/ide slow, fix #3434.
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ra_ide/src/diagnostics.rs | 3 |
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, |