From 19596deb7f0211102e2c655175947cf890b2d745 Mon Sep 17 00:00:00 2001 From: zhengbli Date: Mon, 18 Apr 2016 16:20:45 -0700 Subject: [PATCH] remove extra deduplicate --- src/server/editorServices.ts | 5 ++++- src/server/session.ts | 11 ++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index e3bf97f2736..0393caa75bb 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -464,7 +464,10 @@ namespace ts.server { return copiedList; } - export function processEachProjectThenConcatSortDeduplicateResults(projects: Project[], action: (project: Project) => T[], comparer?: (a: T, b: T) => number, areEqual?: (a: T, b: T) => boolean) { + /** + * This helper funciton processes a list of projects and return the concatenated, sortd and deduplicated output of processing each project. + */ + export function combineProjectOutput(projects: Project[], action: (project: Project) => T[], comparer?: (a: T, b: T) => number, areEqual?: (a: T, b: T) => boolean) { const result = projects.reduce((previous, current) => concatenate(previous, action(current)), []).sort(comparer); return projects.length > 1 ? deduplicate(result, areEqual) : result; } diff --git a/src/server/session.ts b/src/server/session.ts index d81b0ee286e..defdd577577 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -434,7 +434,7 @@ namespace ts.server { }; } - const fileSpans = processEachProjectThenConcatSortDeduplicateResults( + const fileSpans = combineProjectOutput( projects, (project: Project) => { const compilerService = project.compilerService; @@ -511,7 +511,7 @@ namespace ts.server { const nameSpan = nameInfo.textSpan; const nameColStart = defaultProject.compilerService.host.positionToLineOffset(file, nameSpan.start).offset; const nameText = defaultProject.compilerService.host.getScriptSnapshot(file).getText(nameSpan.start, ts.textSpanEnd(nameSpan)); - const refs = processEachProjectThenConcatSortDeduplicateResults( + const refs = combineProjectOutput( projects, (project: Project) => { const compilerService = project.compilerService; @@ -534,11 +534,12 @@ namespace ts.server { }; }); }, - compareFileStart + compareFileStart, + areReferencesResponseItemsForTheSameLocation ); return { - refs: deduplicate(refs, areReferencesResponseItemsForTheSameLocation), + refs, symbolName: nameText, symbolStartOffset: nameColStart, symbolDisplayString: displayString @@ -872,7 +873,7 @@ namespace ts.server { throw Errors.NoProject; } - const allNavToItems = processEachProjectThenConcatSortDeduplicateResults( + const allNavToItems = combineProjectOutput( projects, (project: Project) => { const compilerService = project.compilerService;