mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-10 01:43:59 -05:00
Merge pull request #19072 from Microsoft/completionInClassMember
Handle the case of completion of class member when member name is being edited
This commit is contained in:
@@ -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();
|
||||
Reference in New Issue
Block a user