5286: Only take first 500 syntax errors r=jonas-schievink a=yihuang

Too many syntax errors make some editor/ide slow, fix #3434.

Co-authored-by: yihuang <yi.codeplayer@gmail.com>
This commit is contained in:
bors[bot] 2020-07-10 09:33:29 +00:00 committed by GitHub
commit 5fa8f8e376
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -35,7 +35,8 @@ pub(crate) fn diagnostics(db: &RootDatabase, file_id: FileId) -> Vec<Diagnostic>
let parse = db.parse(file_id); let parse = db.parse(file_id);
let mut res = Vec::new(); let mut res = Vec::new();
res.extend(parse.errors().iter().map(|err| Diagnostic { // [#34344] Only take first 500 errors to prevent slowing down editor/ide, the number 500 is chosen arbitrarily.
res.extend(parse.errors().iter().take(500).map(|err| Diagnostic {
range: err.range(), range: err.range(),
message: format!("Syntax Error: {}", err), message: format!("Syntax Error: {}", err),
severity: Severity::Error, severity: Severity::Error,