mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-18 07:29:16 -05:00
Support '.' as a trigger character (#23890)
* Support '.' as a trigger character * Add a CompletionsTriggerCharacter type * Add more trigger characters * Add another type CompletionsTriggerCharacter * Update API baselines
This commit is contained in:
@@ -25,7 +25,7 @@ namespace ts.Completions {
|
||||
|
||||
const enum GlobalsSearch { Continue, Success, Fail }
|
||||
|
||||
export function getCompletionsAtPosition(host: LanguageServiceHost, program: Program, log: Log, sourceFile: SourceFile, position: number, preferences: UserPreferences, triggerCharacter: string | undefined): CompletionInfo | undefined {
|
||||
export function getCompletionsAtPosition(host: LanguageServiceHost, program: Program, log: Log, sourceFile: SourceFile, position: number, preferences: UserPreferences, triggerCharacter: CompletionsTriggerCharacter | undefined): CompletionInfo | undefined {
|
||||
const typeChecker = program.getTypeChecker();
|
||||
const compilerOptions = program.getCompilerOptions();
|
||||
if (isInReferenceComment(sourceFile, position)) {
|
||||
@@ -2208,8 +2208,12 @@ namespace ts.Completions {
|
||||
return !!type.getStringIndexType() || !!type.getNumberIndexType();
|
||||
}
|
||||
|
||||
function isValidTrigger(sourceFile: SourceFile, triggerCharacter: string, contextToken: Node, position: number): boolean {
|
||||
function isValidTrigger(sourceFile: SourceFile, triggerCharacter: CompletionsTriggerCharacter, contextToken: Node, position: number): boolean {
|
||||
switch (triggerCharacter) {
|
||||
case ".":
|
||||
case "/":
|
||||
case "@":
|
||||
return true;
|
||||
case '"':
|
||||
case "'":
|
||||
case "`":
|
||||
@@ -2219,7 +2223,7 @@ namespace ts.Completions {
|
||||
// Opening JSX tag
|
||||
return contextToken.kind === SyntaxKind.LessThanToken && contextToken.parent.kind !== SyntaxKind.BinaryExpression;
|
||||
default:
|
||||
return Debug.fail(triggerCharacter);
|
||||
return Debug.assertNever(triggerCharacter);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -358,9 +358,11 @@ namespace ts {
|
||||
|
||||
export type OrganizeImportsScope = CombinedCodeFixScope;
|
||||
|
||||
export type CompletionsTriggerCharacter = "." | '"' | "'" | "`" | "/" | "@" | "<";
|
||||
|
||||
export interface GetCompletionsAtPositionOptions extends UserPreferences {
|
||||
/** If the editor is asking for completions because a certain character was typed, and not because the user explicitly requested them, this should be set. */
|
||||
triggerCharacter?: string;
|
||||
triggerCharacter?: CompletionsTriggerCharacter;
|
||||
/** @deprecated Use includeCompletionsForModuleExports */
|
||||
includeExternalModuleExports?: boolean;
|
||||
/** @deprecated Use includeCompletionsWithInsertText */
|
||||
|
||||
Reference in New Issue
Block a user