This commit is contained in:
xiaoxiyao 2025-12-20 08:33:52 +01:00 committed by GitHub
commit 4f64ffba4f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 53 additions and 20 deletions

View file

@ -459,7 +459,7 @@ export class SuggestAdapter extends Adapter implements languages.CompletionItemP
return;
}
const info = await worker.getCompletionsAtPosition(resource.toString(), offset);
const info = await worker.getCompletionsAtPosition(resource.toString(), offset, undefined);
if (!info || model.isDisposed()) {
return;
@ -509,7 +509,11 @@ export class SuggestAdapter extends Adapter implements languages.CompletionItemP
const details = await worker.getCompletionEntryDetails(
resource.toString(),
offset,
myItem.label
myItem.label,
undefined,
undefined,
undefined,
undefined
);
if (!details) {
return myItem;
@ -1099,7 +1103,8 @@ export class CodeActionAdaptor extends FormatHelper implements languages.CodeAct
start,
end,
errorCodes,
formatOptions
formatOptions,
{}
);
if (!codeFixes || model.isDisposed()) {

View file

@ -415,22 +415,37 @@ export interface TypeScriptWorker {
/**
* Get code completions for the given file and position.
* @param options `typescript.GetCompletionsAtPositionOptions | undefined`
* @param formattingSettings `typescript.FormatCodeSettings`
* @returns `Promise<typescript.CompletionInfo | undefined>`
*/
getCompletionsAtPosition(fileName: string, position: number): Promise<any | undefined>;
getCompletionsAtPosition(
fileName: string,
position: number,
options: any,
formattingSettings?: any
): Promise<any | undefined>;
/**
* Get code completion details for the given file, position, and entry.
* @param formatOptions `typescript.FormatCodeOptions | typescript.FormatCodeSettings | undefined`
* @param preferences `typescript.UserPreferences | undefined`
* @param data `typescript.CompletionEntryData | undefined`
* @returns `Promise<typescript.CompletionEntryDetails | undefined>`
*/
getCompletionEntryDetails(
fileName: string,
position: number,
entry: string
entryName: string,
formatOptions: any,
source: string | undefined,
preferences: any,
data: any
): Promise<any | undefined>;
/**
* Get signature help items for the item at the given file and position.
* @param options `typescript.SignatureHelpItemsOptions | undefined`
* @returns `Promise<typescript.SignatureHelpItems | undefined>`
*/
getSignatureHelpItems(fileName: string, position: number, options: any): Promise<any | undefined>;
@ -531,6 +546,7 @@ export interface TypeScriptWorker {
/**
* Get possible code fixes at the given position in the file.
* @param formatOptions `typescript.FormatCodeOptions`
* @param preferences `typescript.UserPreferences`
* @returns `Promise<ReadonlyArray<typescript.CodeFixAction>>`
*/
getCodeFixesAtPosition(
@ -538,7 +554,8 @@ export interface TypeScriptWorker {
start: number,
end: number,
errorCodes: number[],
formatOptions: any
formatOptions: any,
preferences: any
): Promise<ReadonlyArray<any>>;
/**

View file

@ -255,27 +255,38 @@ export class TypeScriptWorker implements ts.LanguageServiceHost, ITypeScriptWork
async getCompletionsAtPosition(
fileName: string,
position: number
): Promise<ts.CompletionInfo | undefined> {
position: number,
options: ts.GetCompletionsAtPositionOptions | undefined,
formattingSettings?: ts.FormatCodeSettings
): Promise<ts.WithMetadata<ts.CompletionInfo> | undefined> {
if (fileNameIsLib(fileName)) {
return undefined;
}
return this._languageService.getCompletionsAtPosition(fileName, position, undefined);
return this._languageService.getCompletionsAtPosition(
fileName,
position,
options,
formattingSettings
);
}
async getCompletionEntryDetails(
fileName: string,
position: number,
entry: string
entryName: string,
formatOptions: ts.FormatCodeOptions | ts.FormatCodeSettings | undefined,
source: string | undefined,
preferences: ts.UserPreferences | undefined,
data: ts.CompletionEntryData | undefined
): Promise<ts.CompletionEntryDetails | undefined> {
return this._languageService.getCompletionEntryDetails(
fileName,
position,
entry,
undefined,
undefined,
undefined,
undefined
entryName,
formatOptions,
source,
preferences,
data
);
}
@ -340,7 +351,7 @@ export class TypeScriptWorker implements ts.LanguageServiceHost, ITypeScriptWork
async getFormattingEditsForDocument(
fileName: string,
options: ts.FormatCodeOptions
options: ts.FormatCodeOptions | ts.FormatCodeSettings
): Promise<ts.TextChange[]> {
if (fileNameIsLib(fileName)) {
return [];
@ -352,7 +363,7 @@ export class TypeScriptWorker implements ts.LanguageServiceHost, ITypeScriptWork
fileName: string,
start: number,
end: number,
options: ts.FormatCodeOptions
options: ts.FormatCodeOptions | ts.FormatCodeSettings
): Promise<ts.TextChange[]> {
if (fileNameIsLib(fileName)) {
return [];
@ -364,7 +375,7 @@ export class TypeScriptWorker implements ts.LanguageServiceHost, ITypeScriptWork
fileName: string,
postion: number,
ch: string,
options: ts.FormatCodeOptions
options: ts.FormatCodeOptions | ts.FormatCodeSettings
): Promise<ts.TextChange[]> {
if (fileNameIsLib(fileName)) {
return [];
@ -429,12 +440,12 @@ export class TypeScriptWorker implements ts.LanguageServiceHost, ITypeScriptWork
start: number,
end: number,
errorCodes: number[],
formatOptions: ts.FormatCodeOptions
formatOptions: ts.FormatCodeOptions | ts.FormatCodeSettings,
preferences: ts.UserPreferences
): Promise<ReadonlyArray<ts.CodeFixAction>> {
if (fileNameIsLib(fileName)) {
return [];
}
const preferences = {};
try {
return this._languageService.getCodeFixesAtPosition(
fileName,