Handle the case of completion of class member when member name is being edited
Fixes #17977
This commit is contained in:
parent
62d045f1a2
commit
3171d082a6
|
@ -1195,6 +1195,11 @@ namespace ts.Completions {
|
|||
if (isClassLike(location)) {
|
||||
return location;
|
||||
}
|
||||
// class c { method() { } b| }
|
||||
if (isFromClassElementDeclaration(location) &&
|
||||
(location.parent as ClassElement).name === location) {
|
||||
return location.parent.parent as ClassLikeDeclaration;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
|
32
tests/cases/fourslash/completionEntryForClassMembers3.ts
Normal file
32
tests/cases/fourslash/completionEntryForClassMembers3.ts
Normal file
|
@ -0,0 +1,32 @@
|
|||
///<reference path="fourslash.ts" />
|
||||
|
||||
////interface IFoo {
|
||||
//// bar(): void;
|
||||
////}
|
||||
////class Foo1 implements IFoo {
|
||||
//// zap() { }
|
||||
//// /*1*/
|
||||
////}
|
||||
////class Foo2 implements IFoo {
|
||||
//// zap() { }
|
||||
//// b/*2*/() { }
|
||||
////}
|
||||
////class Foo3 implements IFoo {
|
||||
//// zap() { }
|
||||
//// b/*3*/: any;
|
||||
////}
|
||||
const allowedKeywordCount = verify.allowedClassElementKeywords.length;
|
||||
function verifyHasBar() {
|
||||
verify.completionListContains("bar", "(method) IFoo.bar(): void", /*documentation*/ undefined, "method");
|
||||
verify.completionListContainsClassElementKeywords();
|
||||
verify.completionListCount(allowedKeywordCount + 1);
|
||||
}
|
||||
|
||||
goTo.marker("1");
|
||||
verifyHasBar();
|
||||
edit.insert("b");
|
||||
verifyHasBar();
|
||||
goTo.marker("2");
|
||||
verifyHasBar();
|
||||
goTo.marker("3");
|
||||
verifyHasBar();
|
Loading…
Reference in a new issue