Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
cd99389
Add signature arguments label support
Kingwl Dec 23, 2020
ab3c937
Support rest parameters and destruction
Kingwl Dec 24, 2020
d91b2f7
make lint
Kingwl Dec 24, 2020
8388add
Fix tuple rest parameters
Kingwl Dec 24, 2020
1058fdd
Adjust name styles
Kingwl Dec 24, 2020
1517b1f
Rename to inline hints
Kingwl Dec 24, 2020
fd9b09f
Partition inline hints
Kingwl Dec 25, 2020
23afce2
Adjust range pred
Kingwl Dec 25, 2020
ee6527e
Add function expression like hints
Kingwl Dec 25, 2020
679b58d
Support configure inline hints
Kingwl Dec 25, 2020
446bee4
Display hints in single line
Kingwl Dec 25, 2020
d2fbd1e
Add test suits and tests
Kingwl Dec 27, 2020
c4abb87
Add range tests
Kingwl Dec 28, 2020
a9e007a
Support more hints
Kingwl Dec 29, 2020
df62a11
Add more options
Kingwl Dec 30, 2020
fce2619
Fix logical
Kingwl Dec 30, 2020
679f066
Add more cases
Kingwl Dec 30, 2020
eb4b4ad
Support call chains
Kingwl Dec 30, 2020
9297051
Rename options
Kingwl Dec 30, 2020
467b5cd
Match lastest protocol
Kingwl Jan 13, 2021
e5ca31b
Update protocol changes
Kingwl Jan 14, 2021
37a7089
Support context value and hover message
Kingwl Jan 16, 2021
2ccfc98
Revert "Support context value and hover message"
Kingwl Jan 21, 2021
0e5f223
Revert "Update protocol changes"
Kingwl Jan 21, 2021
7197d0d
Add hover message
Kingwl Jan 21, 2021
e785943
Accept baseline
Kingwl Jan 21, 2021
637c7f8
Update src/services/inlineHints.ts
Kingwl Feb 4, 2021
b3c3e7e
Update src/services/inlineHints.ts
Kingwl Feb 4, 2021
7948cec
Merge branch 'master' into signature_arguments_labels_support
Kingwl Feb 4, 2021
a374417
Cache across the program
Kingwl Feb 4, 2021
7ac2a35
Merge branch 'master' into signature_arguments_labels_support
Kingwl May 7, 2021
5767d7e
Fix possible undefined
Kingwl May 7, 2021
d7d72d6
Update protocol changes
Kingwl Jun 3, 2021
9306d72
Fix missing property
Kingwl Jun 3, 2021
5cab46f
Merge branch 'main' into signature_arguments_labels_support
Kingwl Jun 3, 2021
2750c6b
Make lint happy
Kingwl Jun 4, 2021
0090962
Avoid call chain hints
Kingwl Jun 10, 2021
f771afc
I'm bad
Kingwl Jun 10, 2021
67dcbb0
Add whitespace before type
Kingwl Jun 10, 2021
957756c
Add more tests
Kingwl Jun 10, 2021
db4135b
Should care about jsdoc
Kingwl Jun 10, 2021
b74af7c
Support complex rest parameter
Kingwl Jun 10, 2021
388cc6d
Avoid module symbol hints
Kingwl Jun 14, 2021
f5695a1
Care about leading comments
Kingwl Jun 14, 2021
6336803
Fix CR issues
Kingwl Jun 15, 2021
09cdf37
Avoid changes
Kingwl Jun 15, 2021
71bae5e
Simplify comments contains
Kingwl Jun 15, 2021
cba4dc3
Fix CR issues
Kingwl Jun 18, 2021
0e8cdb6
Accept baseline
Kingwl Jun 18, 2021
cc06dbc
Merge branch 'main' into signature_arguments_labels_support
Kingwl Jun 18, 2021
e8fef30
Check parameter name before create regex
Kingwl Jun 18, 2021
d8dc8f1
Rename option
Kingwl Jun 24, 2021
52c9d5c
Avoid makers
Kingwl Jun 24, 2021
7ce7a44
Skip parens for argument
Kingwl Jun 24, 2021
24e1a4a
Fix CR issues
Kingwl Jun 24, 2021
6b279e7
Fix enums
Kingwl Jun 25, 2021
8e9a8d8
Accept baseline
Kingwl Jun 25, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add more options
  • Loading branch information
Kingwl committed Dec 30, 2020
commit df62a114b3c1a338cbacb80efece10ddfbf84960
3 changes: 3 additions & 0 deletions src/compiler/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8246,8 +8246,11 @@ namespace ts {
readonly includePackageJsonAutoImports?: "auto" | "on" | "off";
readonly provideRefactorNotApplicableReason?: boolean;
readonly includeInlineParameterName?: boolean;
readonly includeInlineNonLiteralParameterName?: boolean;
readonly includeInlineDuplicatedParameterName?: boolean;
readonly includeInlineFunctionParameterType?: boolean;
readonly includeInlineVariableType?: boolean;
readonly includeInlineRequireAssignedVariableType?: boolean;
readonly includeInlinePropertyDeclarationType?: boolean;
readonly includeInlineFunctionLikeReturnType?: boolean;
readonly includeInlineEnumMemberValue?: boolean;
Expand Down
17 changes: 14 additions & 3 deletions src/services/inlineHints.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,10 @@ namespace ts.InlineHints {
}

const declarationType = checker.getTypeAtLocation(decl);
if (!preferences.includeInlineRequireAssignedVariableType || declarationType.symbol && (declarationType.symbol.flags & SymbolFlags.Module)) {
return;
}

const typeDisplayString = printTypeInSingleLine(declarationType);
if (typeDisplayString) {
addTypeHints(typeDisplayString, decl.name.end);
Expand All @@ -132,17 +136,24 @@ namespace ts.InlineHints {
}

for (let i = 0; i < expr.arguments.length; ++i) {
const arg = expr.arguments[i];
if (!preferences.includeInlineNonLiteralParameterName && !isHintableExpression(arg)) {
continue;
}

const parameterName = checker.getParameterIdentifierNameAtPosition(signature, i);
if (parameterName) {
const arg = expr.arguments[i];
const argumentName = isIdentifier(arg) ? arg.text : undefined;
if (!argumentName || argumentName !== parameterName) {
if (preferences.includeInlineDuplicatedParameterName || !isIdentifier(arg) || arg.text !== parameterName) {
addNameHints(unescapeLeadingUnderscores(parameterName), expr.arguments[i].getStart());
}
}
}
}

function isHintableExpression(node: Node) {
return isLiteralExpression(node) || isFunctionExpressionLike(node) || isObjectLiteralExpression(node) || isArrayLiteralExpression(node);
}

function visitFunctionDeclarationLikeForReturnType(decl: ArrowFunction | FunctionExpression | MethodDeclaration | FunctionDeclaration) {
if (decl.type || !decl.body) {
return;
Expand Down
6 changes: 6 additions & 0 deletions src/services/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -566,8 +566,14 @@ namespace ts {

export interface InlineHintsOptions extends UserPreferences {
readonly includeInlineParameterName?: boolean;
readonly includeInlineNonLiteralParameterName?: boolean;
readonly includeDuplicatedParameterName?: boolean;
readonly includeInlineFunctionParameterType?: boolean,
readonly includeInlineVariableType?: boolean;
readonly includeInlineRequireAssignedVariableType?: boolean;
readonly includeInlinePropertyDeclarationType?: boolean;
readonly includeInlineFunctionLikeReturnType?: boolean;
readonly includeInlineEnumMemberValue?: boolean;
}

export type SignatureHelpTriggerCharacter = "," | "(" | "<";
Expand Down
12 changes: 12 additions & 0 deletions tests/baselines/reference/api/tsserverlibrary.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3873,8 +3873,14 @@ declare namespace ts {
readonly includePackageJsonAutoImports?: "auto" | "on" | "off";
readonly provideRefactorNotApplicableReason?: boolean;
readonly includeInlineParameterName?: boolean;
readonly includeInlineNonLiteralParameterName?: boolean;
readonly includeInlineDuplicatedParameterName?: boolean;
readonly includeInlineFunctionParameterType?: boolean;
readonly includeInlineVariableType?: boolean;
readonly includeInlineRequireAssignedVariableType?: boolean;
readonly includeInlinePropertyDeclarationType?: boolean;
readonly includeInlineFunctionLikeReturnType?: boolean;
readonly includeInlineEnumMemberValue?: boolean;
}
/** Represents a bigint literal value without requiring bigint support */
export interface PseudoBigInt {
Expand Down Expand Up @@ -5608,8 +5614,14 @@ declare namespace ts {
}
interface InlineHintsOptions extends UserPreferences {
readonly includeInlineParameterName?: boolean;
readonly includeInlineNonLiteralParameterName?: boolean;
readonly includeDuplicatedParameterName?: boolean;
readonly includeInlineFunctionParameterType?: boolean;
readonly includeInlineVariableType?: boolean;
readonly includeInlineRequireAssignedVariableType?: boolean;
readonly includeInlinePropertyDeclarationType?: boolean;
readonly includeInlineFunctionLikeReturnType?: boolean;
readonly includeInlineEnumMemberValue?: boolean;
}
type SignatureHelpTriggerCharacter = "," | "(" | "<";
type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")";
Expand Down
12 changes: 12 additions & 0 deletions tests/baselines/reference/api/typescript.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3873,8 +3873,14 @@ declare namespace ts {
readonly includePackageJsonAutoImports?: "auto" | "on" | "off";
readonly provideRefactorNotApplicableReason?: boolean;
readonly includeInlineParameterName?: boolean;
readonly includeInlineNonLiteralParameterName?: boolean;
readonly includeInlineDuplicatedParameterName?: boolean;
readonly includeInlineFunctionParameterType?: boolean;
readonly includeInlineVariableType?: boolean;
readonly includeInlineRequireAssignedVariableType?: boolean;
readonly includeInlinePropertyDeclarationType?: boolean;
readonly includeInlineFunctionLikeReturnType?: boolean;
readonly includeInlineEnumMemberValue?: boolean;
}
/** Represents a bigint literal value without requiring bigint support */
export interface PseudoBigInt {
Expand Down Expand Up @@ -5608,8 +5614,14 @@ declare namespace ts {
}
interface InlineHintsOptions extends UserPreferences {
readonly includeInlineParameterName?: boolean;
readonly includeInlineNonLiteralParameterName?: boolean;
readonly includeDuplicatedParameterName?: boolean;
readonly includeInlineFunctionParameterType?: boolean;
readonly includeInlineVariableType?: boolean;
readonly includeInlineRequireAssignedVariableType?: boolean;
readonly includeInlinePropertyDeclarationType?: boolean;
readonly includeInlineFunctionLikeReturnType?: boolean;
readonly includeInlineEnumMemberValue?: boolean;
}
type SignatureHelpTriggerCharacter = "," | "(" | "<";
type SignatureHelpRetriggerCharacter = SignatureHelpTriggerCharacter | ")";
Expand Down