mirror of
https://github.com/Microsoft/vscode
synced 2024-09-13 13:46:13 +00:00
Support TS's includeInlayVariableTypeHintsWhenTypeMatchesName setting (#150489)
From https://github.com/microsoft/TypeScript/pull/48529 Let users control is variable type inlay hints are suppresed if the variable name matches the type name, such as: ```ts const range = new Range(); ```
This commit is contained in:
parent
e2adf980b1
commit
6428d0fc7d
|
@ -301,6 +301,12 @@
|
|||
"markdownDescription": "%configuration.inlayHints.variableTypes.enabled%",
|
||||
"scope": "resource"
|
||||
},
|
||||
"typescript.inlayHints.variableTypes.suppressWhenTypeMatchesName": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"markdownDescription": "%configuration.inlayHints.variableTypes.suppressWhenTypeMatchesName%",
|
||||
"scope": "resource"
|
||||
},
|
||||
"typescript.inlayHints.propertyDeclarationTypes.enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
|
@ -353,6 +359,12 @@
|
|||
"markdownDescription": "%configuration.inlayHints.variableTypes.enabled%",
|
||||
"scope": "resource"
|
||||
},
|
||||
"javascript.inlayHints.variableTypes.suppressWhenTypeMatchesName": {
|
||||
"type": "boolean",
|
||||
"default": true,
|
||||
"markdownDescription": "%configuration.inlayHints.variableTypes.suppressWhenTypeMatchesName%",
|
||||
"scope": "resource"
|
||||
},
|
||||
"javascript.inlayHints.propertyDeclarationTypes.enabled": {
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
|
|
|
@ -88,10 +88,7 @@
|
|||
"message": "Enable/disable inlay hints for parameter names:\n```typescript\n\nparseInt(/* str: */ '123', /* radix: */ 8)\n \n```\nRequires using TypeScript 4.4+ in the workspace.",
|
||||
"comment": "The text inside the ``` block is code and should not be localized."
|
||||
},
|
||||
"configuration.inlayHints.parameterNames.suppressWhenArgumentMatchesName": {
|
||||
"message": "Suppress parameter name hints on arguments whose text is identical to the parameter name.",
|
||||
"comment": "The text inside the ``` block is code and should not be localized."
|
||||
},
|
||||
"configuration.inlayHints.parameterNames.suppressWhenArgumentMatchesName": "Suppress parameter name hints on arguments whose text is identical to the parameter name.",
|
||||
"configuration.inlayHints.parameterTypes.enabled": {
|
||||
"message": "Enable/disable inlay hints for implicit parameter types:\n```typescript\n\nel.addEventListener('click', e /* :MouseEvent */ => ...)\n \n```\nRequires using TypeScript 4.4+ in the workspace.",
|
||||
"comment": "The text inside the ``` block is code and should not be localized."
|
||||
|
@ -100,6 +97,7 @@
|
|||
"message": "Enable/disable inlay hints for implicit variable types:\n```typescript\n\nconst foo /* :number */ = Date.now();\n \n```\nRequires using TypeScript 4.4+ in the workspace.",
|
||||
"comment": "The text inside the ``` block is code and should not be localized."
|
||||
},
|
||||
"configuration.inlayHints.variableTypes.suppressWhenTypeMatchesName": "Suppress type hints on variables whose name is identical to the type name. Requires using TypeScript 4.8+ in the workspace.",
|
||||
"configuration.inlayHints.propertyDeclarationTypes.enabled": {
|
||||
"message": "Enable/disable inlay hints for implicit types on property declarations:\n```typescript\n\nclass Foo {\n\tprop /* :number */ = Date.now();\n}\n \n```\nRequires using TypeScript 4.4+ in the workspace.",
|
||||
"comment": "The text inside the ``` block is code and should not be localized."
|
||||
|
|
|
@ -210,6 +210,7 @@ export class InlayHintSettingNames {
|
|||
static readonly parameterNamesSuppressWhenArgumentMatchesName = 'inlayHints.parameterNames.suppressWhenArgumentMatchesName';
|
||||
static readonly parameterNamesEnabled = 'inlayHints.parameterTypes.enabled';
|
||||
static readonly variableTypesEnabled = 'inlayHints.variableTypes.enabled';
|
||||
static readonly variableTypesSuppressWhenTypeMatchesName = 'inlayHints.variableTypes.suppressWhenTypeMatchesName';
|
||||
static readonly propertyDeclarationTypesEnabled = 'inlayHints.propertyDeclarationTypes.enabled';
|
||||
static readonly functionLikeReturnTypesEnabled = 'inlayHints.functionLikeReturnTypes.enabled';
|
||||
static readonly enumMemberValuesEnabled = 'inlayHints.enumMemberValues.enabled';
|
||||
|
@ -221,6 +222,7 @@ export function getInlayHintsPreferences(config: vscode.WorkspaceConfiguration)
|
|||
includeInlayParameterNameHintsWhenArgumentMatchesName: !config.get<boolean>(InlayHintSettingNames.parameterNamesSuppressWhenArgumentMatchesName, true),
|
||||
includeInlayFunctionParameterTypeHints: config.get<boolean>(InlayHintSettingNames.parameterNamesEnabled, false),
|
||||
includeInlayVariableTypeHints: config.get<boolean>(InlayHintSettingNames.variableTypesEnabled, false),
|
||||
includeInlayVariableTypeHintsWhenTypeMatchesName: !config.get<boolean>(InlayHintSettingNames.variableTypesSuppressWhenTypeMatchesName, true),
|
||||
includeInlayPropertyDeclarationTypeHints: config.get<boolean>(InlayHintSettingNames.propertyDeclarationTypesEnabled, false),
|
||||
includeInlayFunctionLikeReturnTypeHints: config.get<boolean>(InlayHintSettingNames.functionLikeReturnTypesEnabled, false),
|
||||
includeInlayEnumMemberValueHints: config.get<boolean>(InlayHintSettingNames.enumMemberValuesEnabled, false),
|
||||
|
|
|
@ -15,14 +15,15 @@ import { Position } from '../utils/typeConverters';
|
|||
import FileConfigurationManager, { getInlayHintsPreferences, InlayHintSettingNames } from './fileConfigurationManager';
|
||||
|
||||
|
||||
const inlayHintSettingNames = [
|
||||
const inlayHintSettingNames = Object.freeze([
|
||||
InlayHintSettingNames.parameterNamesSuppressWhenArgumentMatchesName,
|
||||
InlayHintSettingNames.parameterNamesEnabled,
|
||||
InlayHintSettingNames.variableTypesEnabled,
|
||||
InlayHintSettingNames.variableTypesSuppressWhenTypeMatchesName,
|
||||
InlayHintSettingNames.propertyDeclarationTypesEnabled,
|
||||
InlayHintSettingNames.functionLikeReturnTypesEnabled,
|
||||
InlayHintSettingNames.enumMemberValuesEnabled,
|
||||
];
|
||||
]);
|
||||
|
||||
class TypeScriptInlayHintsProvider extends Disposable implements vscode.InlayHintsProvider {
|
||||
|
||||
|
|
Loading…
Reference in a new issue