From 55bf3e3ff01d5eeaedc206715be04b26fc305cb6 Mon Sep 17 00:00:00 2001 From: Arthur Ozga Date: Tue, 8 Nov 2016 13:15:58 -0800 Subject: [PATCH] Use new engine for interface fixes --- .../fixClassIncorrectlyImplementsInterface.ts | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts b/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts index 3244cc0afb9..940452b687f 100644 --- a/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts +++ b/src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts @@ -11,24 +11,18 @@ namespace ts.codefix { if (token.kind === SyntaxKind.Identifier && isClassLike(token.parent)) { const classDeclaration = token.parent; const startPos: number = classDeclaration.members.pos; - const classMembers = ts.map(getNamedClassMembers(classDeclaration), member => member.name.getText()); - const trackingAddedMembers: string[] = []; - const interfaceClauses = ts.getClassImplementsHeritageClauseElements(classDeclaration); - let textChanges: TextChange[] = undefined; + const insertion = getMissingInterfaceMembersInsertion(classDeclaration, checker, context.newLineCharacter); - for (let i = 0; interfaceClauses && i < interfaceClauses.length; i++) { - const newChanges = getCodeFixChanges(interfaceClauses[i], classMembers, startPos, checker, /*reference*/ false, trackingAddedMembers, context.newLineCharacter); - // getMissingAbstractMemberChanges(classDeclaration, checker, context.newLineCharacter); - textChanges = textChanges ? textChanges.concat(newChanges) : newChanges; - } - - if (textChanges && textChanges.length > 0) { + if(insertion && insertion.length) { return [{ description: getLocaleSpecificMessage(Diagnostics.Implement_interface_on_class), changes: [{ fileName: sourceFile.fileName, - textChanges: textChanges + textChanges: [{ + span: { start: startPos, length: 0 }, + newText: insertion + }] }] }]; }