@@ -217,7 +217,8 @@ namespace ts.Completions {
217217 position : number ,
218218 preferences : UserPreferences ,
219219 triggerCharacter : CompletionsTriggerCharacter | undefined ,
220- completionKind ?: CompletionTriggerKind ,
220+ completionKind : CompletionTriggerKind | undefined ,
221+ cancellationToken : CancellationToken ,
221222 ) : CompletionInfo | undefined {
222223 const { previousToken } = getRelevantTokens ( position , sourceFile ) ;
223224 if ( triggerCharacter && ! isInString ( sourceFile , position , previousToken ) && ! isValidTrigger ( sourceFile , triggerCharacter , previousToken , position ) ) {
@@ -239,7 +240,7 @@ namespace ts.Completions {
239240 const compilerOptions = program . getCompilerOptions ( ) ;
240241 const incompleteCompletionsCache = preferences . allowIncompleteCompletions ? host . getIncompleteCompletionsCache ?.( ) : undefined ;
241242 if ( incompleteCompletionsCache && completionKind === CompletionTriggerKind . TriggerForIncompleteCompletions && previousToken && isIdentifier ( previousToken ) ) {
242- const incompleteContinuation = continuePreviousIncompleteResponse ( incompleteCompletionsCache , sourceFile , previousToken , program , host , preferences ) ;
243+ const incompleteContinuation = continuePreviousIncompleteResponse ( incompleteCompletionsCache , sourceFile , previousToken , program , host , preferences , cancellationToken ) ;
243244 if ( incompleteContinuation ) {
244245 return incompleteContinuation ;
245246 }
@@ -258,7 +259,7 @@ namespace ts.Completions {
258259 return getLabelCompletionAtPosition ( previousToken . parent ) ;
259260 }
260261
261- const completionData = getCompletionData ( program , log , sourceFile , isUncheckedFile ( sourceFile , compilerOptions ) , position , preferences , /*detailsEntryId*/ undefined , host ) ;
262+ const completionData = getCompletionData ( program , log , sourceFile , isUncheckedFile ( sourceFile , compilerOptions ) , position , preferences , /*detailsEntryId*/ undefined , host , cancellationToken ) ;
262263 if ( ! completionData ) {
263264 return undefined ;
264265 }
@@ -292,12 +293,13 @@ namespace ts.Completions {
292293 program : Program ,
293294 host : LanguageServiceHost ,
294295 preferences : UserPreferences ,
296+ cancellationToken : CancellationToken ,
295297 ) : CompletionInfo | undefined {
296298 const previousResponse = cache . get ( ) ;
297299 if ( ! previousResponse ) return undefined ;
298300
299301 const lowerCaseTokenText = location . text . toLowerCase ( ) ;
300- const exportMap = getExportInfoMap ( file , host , program ) ;
302+ const exportMap = getExportInfoMap ( file , host , program , cancellationToken ) ;
301303 const checker = program . getTypeChecker ( ) ;
302304 const autoImportProvider = host . getPackageJsonAutoImportProvider ?.( ) ;
303305 const autoImportProviderChecker = autoImportProvider ?. getTypeChecker ( ) ;
@@ -1202,7 +1204,8 @@ namespace ts.Completions {
12021204 position : number ,
12031205 preferences : UserPreferences ,
12041206 detailsEntryId : CompletionEntryIdentifier | undefined ,
1205- host : LanguageServiceHost
1207+ host : LanguageServiceHost ,
1208+ cancellationToken ?: CancellationToken ,
12061209 ) : CompletionData | Request | undefined {
12071210 const typeChecker = program . getTypeChecker ( ) ;
12081211
@@ -1914,7 +1917,8 @@ namespace ts.Completions {
19141917
19151918 const moduleSpecifierCache = host . getModuleSpecifierCache ?.( ) ;
19161919 const lowerCaseTokenText = previousToken && isIdentifier ( previousToken ) ? previousToken . text . toLowerCase ( ) : "" ;
1917- const exportInfo = getExportInfoMap ( sourceFile , host , program ) ;
1920+ const exportInfo = getExportInfoMap ( sourceFile , host , program , cancellationToken ) ;
1921+
19181922 const packageJsonAutoImportProvider = host . getPackageJsonAutoImportProvider ?.( ) ;
19191923 const packageJsonFilter = detailsEntryId ? undefined : createPackageJsonImportFilter ( sourceFile , preferences , host ) ;
19201924 resolvingModuleSpecifiers (
@@ -1928,7 +1932,7 @@ namespace ts.Completions {
19281932 exportInfo . forEach ( sourceFile . path , ( info , symbolName , isFromAmbientModule ) => {
19291933 if ( ! detailsEntryId && isStringANonContextualKeyword ( symbolName ) ) return ;
19301934 const isCompletionDetailsMatch = detailsEntryId && some ( info , i => detailsEntryId . source === stripQuotes ( i . moduleSymbol . name ) ) ;
1931- if ( isCompletionDetailsMatch || charactersFuzzyMatchInString ( symbolName , lowerCaseTokenText ) ) {
1935+ if ( isCompletionDetailsMatch || ! detailsEntryId && charactersFuzzyMatchInString ( symbolName , lowerCaseTokenText ) ) {
19321936 const defaultExportInfo = find ( info , isImportableExportInfo ) ;
19331937 if ( ! defaultExportInfo ) {
19341938 return ;
0 commit comments