Skip to content

Commit f4c997a

Browse files
committed
back to simple getDiagnostics-function, microsoft#30075
1 parent f2bb105 commit f4c997a

3 files changed

Lines changed: 16 additions & 41 deletions

File tree

src/vs/vscode.proposed.d.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,6 @@ declare module 'vscode' {
99

1010
//#region "read diagnostics"
1111

12-
export interface DiagnosticInformation {
13-
has(uri: Uri): boolean;
14-
get(uri: Uri): Diagnostic[] | undefined;
15-
all(): [Uri, Diagnostic[]][];
16-
}
17-
1812
export interface DiagnosticChangeEvent {
1913
uris: Uri[];
2014
}
@@ -26,7 +20,10 @@ declare module 'vscode' {
2620
*/
2721
export const onDidChangeDiagnostics: Event<DiagnosticChangeEvent>;
2822

29-
export const diagnostics: DiagnosticInformation;
23+
/**
24+
*
25+
*/
26+
export function getDiagnostics(resource?: Uri): Diagnostic[];
3027
}
3128

3229
//#endregion

src/vs/workbench/api/node/extHost.api.impl.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,11 +236,9 @@ export function createApiFactory(
236236
checkProposedApiEnabled(extension);
237237
return extHostDiagnostics.onDidChangeDiagnostics;
238238
},
239-
diagnostics: {
240-
has: proposedApiFunction(extension, uri => extHostDiagnostics.hasDiagnostics(uri)),
241-
get: proposedApiFunction(extension, uri => extHostDiagnostics.getDiagnostics(uri)),
242-
all: proposedApiFunction(extension, () => extHostDiagnostics.getAllDiagnostics())
243-
},
239+
getDiagnostics: proposedApiFunction(extension, resource => {
240+
return extHostDiagnostics.getDiagnostics(resource);
241+
}),
244242
getLanguages(): TPromise<string[]> {
245243
return extHostLanguages.getLanguages();
246244
},

src/vs/workbench/api/node/extHostDiagnostics.ts

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -287,38 +287,18 @@ export class ExtHostDiagnostics implements ExtHostDiagnosticsShape {
287287
return result;
288288
}
289289

290-
hasDiagnostics(resource: vscode.Uri): boolean {
291-
for (const collection of this._collections) {
292-
if (collection.has(resource)) {
293-
return true;
294-
}
295-
}
296-
return false;
297-
}
298-
299-
getDiagnostics(resource: vscode.Uri): vscode.Diagnostic[] {
290+
getDiagnostics(resource?: vscode.Uri): vscode.Diagnostic[] {
300291
let res: vscode.Diagnostic[] = [];
301292
for (const collection of this._collections) {
302-
if (collection.has(resource)) {
303-
res = res.concat(collection.get(resource));
304-
}
305-
}
306-
return res;
307-
}
308-
309-
getAllDiagnostics(): [vscode.Uri, vscode.Diagnostic[]][] {
310-
let map = new Map<string, number>();
311-
let res: [vscode.Uri, vscode.Diagnostic[]][] = [];
312-
for (const collection of this._collections) {
313-
collection.forEach((resource: vscode.Uri, diagnostics: vscode.Diagnostic[]) => {
314-
let index = map.get(resource.toString());
315-
if (typeof index === 'undefined') {
316-
index = res.length;
317-
res.push([resource, []]);
318-
map.set(resource.toString(), index);
293+
if (resource) {
294+
// filtered
295+
if (collection.has(resource)) {
296+
res = res.concat(collection.get(resource));
319297
}
320-
res[index][1] = res[index][1].concat(diagnostics);
321-
});
298+
} else {
299+
// all
300+
collection.forEach((uri, diag) => res = res.concat(diag));
301+
}
322302
}
323303
return res;
324304
}

0 commit comments

Comments
 (0)