@@ -12,6 +12,7 @@ import arrayMethods from './completions/arrayMethods'
12
12
import prepareTextForEmmet from './specialCommands/prepareTextForEmmet'
13
13
import objectLiteralHelpers from './completions/objectLiteralHelpers'
14
14
import switchCaseExcludeCovered from './completions/switchCaseExcludeCovered'
15
+ import additionalTypesSuggestions from './completions/additionalTypesSuggestions'
15
16
16
17
export type PrevCompletionMap = Record < string , { originalName ?: string ; documentationOverride ?: string | ts . SymbolDisplayPart [ ] } >
17
18
@@ -40,6 +41,7 @@ export const getCompletionsAtPosition = (
40
41
if ( ! prior ) prior = { entries : [ ] , isGlobalCompletion : false , isMemberCompletion : false , isNewIdentifierLocation : false }
41
42
return true
42
43
}
44
+ const hasSuggestions = prior && prior . entries . filter ( ( { kind } ) => kind !== ts . ScriptElementKind . warning ) . length !== 0
43
45
const node = findChildContainingPosition ( ts , sourceFile , position )
44
46
/** node that is one character behind
45
47
* useful as in most cases we work with node that is behind the cursor */
@@ -87,9 +89,10 @@ export const getCompletionsAtPosition = (
87
89
// #endregion
88
90
}
89
91
}
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 )
93
96
if ( addSignatureAccessCompletions . length && ensurePrior ( ) && prior ) {
94
97
prior . entries = [ ...prior . entries , ...addSignatureAccessCompletions ]
95
98
}
0 commit comments