mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 12:32:08 -06:00
Merge pull request #3717 from Microsoft/builderInIndexSignature
Show builder at beginning of index signatures & computed properties
This commit is contained in:
commit
cd64f2b537
@ -3062,7 +3062,7 @@ namespace ts {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if(jsxContainer) {
|
||||
else if (jsxContainer) {
|
||||
let attrsType: Type;
|
||||
if ((jsxContainer.kind === SyntaxKind.JsxSelfClosingElement) || (jsxContainer.kind === SyntaxKind.JsxOpeningElement)) {
|
||||
// Cursor is inside a JSX self-closing element or opening element
|
||||
@ -3162,7 +3162,7 @@ namespace ts {
|
||||
switch (previousToken.kind) {
|
||||
case SyntaxKind.CommaToken:
|
||||
return containingNodeKind === SyntaxKind.CallExpression // func( a, |
|
||||
|| containingNodeKind === SyntaxKind.Constructor // constructor( a, | public, protected, private keywords are allowed here, so show completion
|
||||
|| containingNodeKind === SyntaxKind.Constructor // constructor( a, | /* public, protected, private keywords are allowed here, so show completion */
|
||||
|| containingNodeKind === SyntaxKind.NewExpression // new C(a, |
|
||||
|| containingNodeKind === SyntaxKind.ArrayLiteralExpression // [a, |
|
||||
|| containingNodeKind === SyntaxKind.BinaryExpression // let x = (a, |
|
||||
@ -3173,10 +3173,12 @@ namespace ts {
|
||||
|| containingNodeKind === SyntaxKind.Constructor // constructor( |
|
||||
|| containingNodeKind === SyntaxKind.NewExpression // new C(a|
|
||||
|| containingNodeKind === SyntaxKind.ParenthesizedExpression // let x = (a|
|
||||
|| containingNodeKind === SyntaxKind.ParenthesizedType; // function F(pred: (a| this can become an arrow function, where 'a' is the argument
|
||||
|| containingNodeKind === SyntaxKind.ParenthesizedType; // function F(pred: (a| /* this can become an arrow function, where 'a' is the argument */
|
||||
|
||||
case SyntaxKind.OpenBracketToken:
|
||||
return containingNodeKind === SyntaxKind.ArrayLiteralExpression; // [ |
|
||||
return containingNodeKind === SyntaxKind.ArrayLiteralExpression // [ |
|
||||
|| containingNodeKind === SyntaxKind.IndexSignature // [ | : string ]
|
||||
|| containingNodeKind === SyntaxKind.ComputedPropertyName // [ | /* this can become an index signature */
|
||||
|
||||
case SyntaxKind.ModuleKeyword: // module |
|
||||
case SyntaxKind.NamespaceKeyword: // namespace |
|
||||
|
||||
20
tests/cases/fourslash/completionListInIndexSignature01.ts
Normal file
20
tests/cases/fourslash/completionListInIndexSignature01.ts
Normal file
@ -0,0 +1,20 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
////interface I<T> {
|
||||
//// [/*1*/]: T;
|
||||
//// [/*2*/]: T;
|
||||
////}
|
||||
////
|
||||
////class C {
|
||||
//// [/*3*/]: string;
|
||||
//// [str/*4*/: string]: number;
|
||||
////}
|
||||
////
|
||||
////type T = {
|
||||
//// [x/*5*/yz: number]: boolean;
|
||||
//// [/*6*/
|
||||
|
||||
for (let marker of test.markers()) {
|
||||
goTo.position(marker.position);
|
||||
verify.completionListAllowsNewIdentifier();
|
||||
}
|
||||
19
tests/cases/fourslash/completionListInIndexSignature02.ts
Normal file
19
tests/cases/fourslash/completionListInIndexSignature02.ts
Normal file
@ -0,0 +1,19 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
////interface I<T> {
|
||||
//// [x: /*1*/]: T;
|
||||
//// [: /*2*/]: T
|
||||
////}
|
||||
////
|
||||
////class C {
|
||||
//// [a: /*3*/]: string;
|
||||
//// [str: string/*4*/]: number;
|
||||
////}
|
||||
////
|
||||
////type T = {
|
||||
//// [xyz: /*5*/
|
||||
|
||||
for (let marker of test.markers()) {
|
||||
goTo.position(marker.position);
|
||||
verify.not.completionListAllowsNewIdentifier();
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user