@@ -12,6 +12,7 @@ import arrayMethods from './completions/arrayMethods'
1212import prepareTextForEmmet from './specialCommands/prepareTextForEmmet'
1313import objectLiteralHelpers from './completions/objectLiteralHelpers'
1414import switchCaseExcludeCovered from './completions/switchCaseExcludeCovered'
15+ import additionalTypesSuggestions from './completions/additionalTypesSuggestions'
1516
1617export type PrevCompletionMap = Record < string , { originalName ?: string ; documentationOverride ?: string | ts . SymbolDisplayPart [ ] } >
1718
@@ -40,6 +41,7 @@ export const getCompletionsAtPosition = (
4041 if ( ! prior ) prior = { entries : [ ] , isGlobalCompletion : false , isMemberCompletion : false , isNewIdentifierLocation : false }
4142 return true
4243 }
44+ const hasSuggestions = prior && prior . entries . filter ( ( { kind } ) => kind !== ts . ScriptElementKind . warning ) . length !== 0
4345 const node = findChildContainingPosition ( ts , sourceFile , position )
4446 /** node that is one character behind
4547 * useful as in most cases we work with node that is behind the cursor */
@@ -87,9 +89,10 @@ export const getCompletionsAtPosition = (
8789 // #endregion
8890 }
8991 }
90- const addSignatureAccessCompletions = prior ?. entries . filter ( ( { kind } ) => kind !== ts . ScriptElementKind . warning ) . length
91- ? [ ]
92- : indexSignatureAccessCompletions ( position , node , scriptSnapshot , sourceFile , program )
92+ if ( leftNode && ! hasSuggestions && ensurePrior ( ) && prior ) {
93+ prior . entries = additionalTypesSuggestions ( prior . entries , program , leftNode ) ?? prior . entries
94+ }
95+ const addSignatureAccessCompletions = hasSuggestions ? [ ] : indexSignatureAccessCompletions ( position , node , scriptSnapshot , sourceFile , program )
9396 if ( addSignatureAccessCompletions . length && ensurePrior ( ) && prior ) {
9497 prior . entries = [ ...prior . entries , ...addSignatureAccessCompletions ]
9598 }
0 commit comments