From d0e1255d18146fd2c023a39f302f0926be654522 Mon Sep 17 00:00:00 2001 From: Gabriela Araujo Britto Date: Tue, 15 Feb 2022 19:56:16 -0300 Subject: [PATCH] Merge `InlayHintOptions` into `UserPreferences` (#47729) * get rid of inlayhintoptions * update userpreferences in protocol --- src/compiler/types.ts | 7 ++++++ src/harness/fourslashImpl.ts | 2 +- src/harness/fourslashInterfaceImpl.ts | 2 +- src/harness/harnessLanguageService.ts | 2 +- src/server/protocol.ts | 8 ++++++ src/services/inlayHints.ts | 4 +-- src/services/services.ts | 2 +- src/services/shims.ts | 4 +-- src/services/types.ts | 12 +-------- .../reference/api/tsserverlibrary.d.ts | 25 +++++++++++-------- tests/baselines/reference/api/typescript.d.ts | 18 ++++++------- 11 files changed, 47 insertions(+), 39 deletions(-) diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 05a053fd378..c369ca7c97c 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -8693,6 +8693,13 @@ namespace ts { readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; readonly provideRefactorNotApplicableReason?: boolean; readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean, + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } /** Represents a bigint literal value without requiring bigint support */ diff --git a/src/harness/fourslashImpl.ts b/src/harness/fourslashImpl.ts index 7a8cb46688f..47ed0e4a1ae 100644 --- a/src/harness/fourslashImpl.ts +++ b/src/harness/fourslashImpl.ts @@ -841,7 +841,7 @@ namespace FourSlash { }); } - public verifyInlayHints(expected: readonly FourSlashInterface.VerifyInlayHintsOptions[], span: ts.TextSpan = { start: 0, length: this.activeFile.content.length }, preference?: ts.InlayHintsOptions) { + public verifyInlayHints(expected: readonly FourSlashInterface.VerifyInlayHintsOptions[], span: ts.TextSpan = { start: 0, length: this.activeFile.content.length }, preference?: ts.UserPreferences) { const hints = this.languageService.provideInlayHints(this.activeFile.fileName, span, preference); assert.equal(hints.length, expected.length, "Number of hints"); diff --git a/src/harness/fourslashInterfaceImpl.ts b/src/harness/fourslashInterfaceImpl.ts index dc0779de3d8..98b61cf2fb5 100644 --- a/src/harness/fourslashInterfaceImpl.ts +++ b/src/harness/fourslashInterfaceImpl.ts @@ -255,7 +255,7 @@ namespace FourSlashInterface { } } - public getInlayHints(expected: readonly VerifyInlayHintsOptions[], span: ts.TextSpan, preference?: ts.InlayHintsOptions) { + public getInlayHints(expected: readonly VerifyInlayHintsOptions[], span: ts.TextSpan, preference?: ts.UserPreferences) { this.state.verifyInlayHints(expected, span, preference); } diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 22e88498203..dc41722f26c 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -600,7 +600,7 @@ namespace Harness.LanguageService { provideCallHierarchyOutgoingCalls(fileName: string, position: number) { return unwrapJSONCallResult(this.shim.provideCallHierarchyOutgoingCalls(fileName, position)); } - provideInlayHints(fileName: string, span: ts.TextSpan, preference: ts.InlayHintsOptions) { + provideInlayHints(fileName: string, span: ts.TextSpan, preference: ts.UserPreferences) { return unwrapJSONCallResult(this.shim.provideInlayHints(fileName, span, preference)); } getEmitOutput(fileName: string): ts.EmitOutput { diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 9a8fbfa4bed..ca8dbd1cac6 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -3420,6 +3420,14 @@ namespace ts.server.protocol { readonly displayPartsForJSDoc?: boolean; readonly generateReturnInDocTemplate?: boolean; + + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean, + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } export interface CompilerOptions { diff --git a/src/services/inlayHints.ts b/src/services/inlayHints.ts index 59add59b0ae..f36b6e7d087 100644 --- a/src/services/inlayHints.ts +++ b/src/services/inlayHints.ts @@ -7,11 +7,11 @@ namespace ts.InlayHints { return new RegExp(`^\\s?/\\*\\*?\\s?${name}\\s?\\*\\/\\s?$`); }; - function shouldShowParameterNameHints(preferences: InlayHintsOptions) { + function shouldShowParameterNameHints(preferences: UserPreferences) { return preferences.includeInlayParameterNameHints === "literals" || preferences.includeInlayParameterNameHints === "all"; } - function shouldShowLiteralParameterNameHintsOnly(preferences: InlayHintsOptions) { + function shouldShowLiteralParameterNameHintsOnly(preferences: UserPreferences) { return preferences.includeInlayParameterNameHints === "literals"; } diff --git a/src/services/services.ts b/src/services/services.ts index 1a1ee65dd9c..fa56017da5e 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2636,7 +2636,7 @@ namespace ts { return declaration ? CallHierarchy.getOutgoingCalls(program, declaration) : []; } - function provideInlayHints(fileName: string, span: TextSpan, preferences: InlayHintsOptions = emptyOptions): InlayHint[] { + function provideInlayHints(fileName: string, span: TextSpan, preferences: UserPreferences = emptyOptions): InlayHint[] { synchronizeHostData(); const sourceFile = getValidSourceFile(fileName); return InlayHints.provideInlayHints(getInlayHintsContext(sourceFile, span, preferences)); diff --git a/src/services/shims.ts b/src/services/shims.ts index 5ee3211e6ba..90890e70ed6 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -282,7 +282,7 @@ namespace ts { prepareCallHierarchy(fileName: string, position: number): string; provideCallHierarchyIncomingCalls(fileName: string, position: number): string; provideCallHierarchyOutgoingCalls(fileName: string, position: number): string; - provideInlayHints(fileName: string, span: TextSpan, preference: InlayHintsOptions | undefined): string; + provideInlayHints(fileName: string, span: TextSpan, preference: UserPreferences | undefined): string; getEmitOutput(fileName: string): string; getEmitOutputObject(fileName: string): EmitOutput; @@ -1069,7 +1069,7 @@ namespace ts { ); } - public provideInlayHints(fileName: string, span: TextSpan, preference: InlayHintsOptions | undefined): string { + public provideInlayHints(fileName: string, span: TextSpan, preference: UserPreferences | undefined): string { return this.forwardJSONCall( `provideInlayHints('${fileName}', '${JSON.stringify(span)}', ${JSON.stringify(preference)})`, () => this.languageService.provideInlayHints(fileName, span, preference) diff --git a/src/services/types.ts b/src/services/types.ts index 3aa4a30a061..66730a23a53 100644 --- a/src/services/types.ts +++ b/src/services/types.ts @@ -585,16 +585,6 @@ namespace ts { includeInsertTextCompletions?: boolean; } - export interface InlayHintsOptions extends UserPreferences { - readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; - readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; - readonly includeInlayFunctionParameterTypeHints?: boolean, - readonly includeInlayVariableTypeHints?: boolean; - readonly includeInlayPropertyDeclarationTypeHints?: boolean; - readonly includeInlayFunctionLikeReturnTypeHints?: boolean; - readonly includeInlayEnumMemberValueHints?: boolean; - } - export type SignatureHelpTriggerCharacter = "," | "(" | "<"; export type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; @@ -1620,6 +1610,6 @@ namespace ts { cancellationToken: CancellationToken; host: LanguageServiceHost; span: TextSpan; - preferences: InlayHintsOptions; + preferences: UserPreferences; } } diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index ae131e7533b..e9091d11123 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -4058,6 +4058,13 @@ declare namespace ts { readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; readonly provideRefactorNotApplicableReason?: boolean; readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean; + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } /** Represents a bigint literal value without requiring bigint support */ export interface PseudoBigInt { @@ -5882,15 +5889,6 @@ declare namespace ts { /** @deprecated Use includeCompletionsWithInsertText */ includeInsertTextCompletions?: boolean; } - interface InlayHintsOptions extends UserPreferences { - readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; - readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; - readonly includeInlayFunctionParameterTypeHints?: boolean; - readonly includeInlayVariableTypeHints?: boolean; - readonly includeInlayPropertyDeclarationTypeHints?: boolean; - readonly includeInlayFunctionLikeReturnTypeHints?: boolean; - readonly includeInlayEnumMemberValueHints?: boolean; - } type SignatureHelpTriggerCharacter = "," | "(" | "<"; type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; interface SignatureHelpItemsOptions { @@ -6694,7 +6692,7 @@ declare namespace ts { cancellationToken: CancellationToken; host: LanguageServiceHost; span: TextSpan; - preferences: InlayHintsOptions; + preferences: UserPreferences; } } declare namespace ts { @@ -9572,6 +9570,13 @@ declare namespace ts.server.protocol { readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; readonly displayPartsForJSDoc?: boolean; readonly generateReturnInDocTemplate?: boolean; + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean; + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } interface CompilerOptions { allowJs?: boolean; diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index 7c47b2d9338..383d18a4b2e 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -4058,6 +4058,13 @@ declare namespace ts { readonly includePackageJsonAutoImports?: "auto" | "on" | "off"; readonly provideRefactorNotApplicableReason?: boolean; readonly jsxAttributeCompletionStyle?: "auto" | "braces" | "none"; + readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; + readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; + readonly includeInlayFunctionParameterTypeHints?: boolean; + readonly includeInlayVariableTypeHints?: boolean; + readonly includeInlayPropertyDeclarationTypeHints?: boolean; + readonly includeInlayFunctionLikeReturnTypeHints?: boolean; + readonly includeInlayEnumMemberValueHints?: boolean; } /** Represents a bigint literal value without requiring bigint support */ export interface PseudoBigInt { @@ -5882,15 +5889,6 @@ declare namespace ts { /** @deprecated Use includeCompletionsWithInsertText */ includeInsertTextCompletions?: boolean; } - interface InlayHintsOptions extends UserPreferences { - readonly includeInlayParameterNameHints?: "none" | "literals" | "all"; - readonly includeInlayParameterNameHintsWhenArgumentMatchesName?: boolean; - readonly includeInlayFunctionParameterTypeHints?: boolean; - readonly includeInlayVariableTypeHints?: boolean; - readonly includeInlayPropertyDeclarationTypeHints?: boolean; - readonly includeInlayFunctionLikeReturnTypeHints?: boolean; - readonly includeInlayEnumMemberValueHints?: boolean; - } type SignatureHelpTriggerCharacter = "," | "(" | "<"; type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")"; interface SignatureHelpItemsOptions { @@ -6694,7 +6692,7 @@ declare namespace ts { cancellationToken: CancellationToken; host: LanguageServiceHost; span: TextSpan; - preferences: InlayHintsOptions; + preferences: UserPreferences; } } declare namespace ts {