Fix position of keyword in "Add 'override' modifier" code fix (#45274)

fixes #45270
This commit is contained in:
Martin Johns
2021-08-03 20:01:30 +02:00
committed by GitHub
parent ceef6f7cfd
commit 5a2153a729
3 changed files with 10 additions and 3 deletions

View File

@@ -129,6 +129,11 @@ namespace ts {
return node.kind === SyntaxKind.StaticKeyword;
}
/* @internal */
export function isAbstractModifier(node: Node): node is AbstractKeyword {
return node.kind === SyntaxKind.AbstractKeyword;
}
/*@internal*/
export function isSuperKeyword(node: Node): node is SuperExpression {
return node.kind === SyntaxKind.SuperKeyword;

View File

@@ -89,11 +89,13 @@ namespace ts.codefix {
const classElement = findContainerClassElementLike(sourceFile, pos);
const modifiers = classElement.modifiers || emptyArray;
const staticModifier = find(modifiers, isStaticModifier);
const abstractModifier = find(modifiers, isAbstractModifier);
const accessibilityModifier = find(modifiers, m => isAccessibilityModifier(m.kind));
const modifierPos = staticModifier ? staticModifier.end :
const modifierPos = abstractModifier ? abstractModifier.end :
staticModifier ? staticModifier.end :
accessibilityModifier ? accessibilityModifier.end :
classElement.decorators ? skipTrivia(sourceFile.text, classElement.decorators.end) : classElement.getStart(sourceFile);
const options = accessibilityModifier || staticModifier ? { prefix: " " } : { suffix: " " };
const options = accessibilityModifier || staticModifier || abstractModifier ? { prefix: " " } : { suffix: " " };
changeTracker.insertModifierAt(sourceFile, modifierPos, SyntaxKind.OverrideKeyword, options);
}

View File

@@ -11,6 +11,6 @@
verify.codeFix({
description: "Add 'override' modifier",
newRangeContent: "override abstract bar() {}",
newRangeContent: "abstract override bar() {}",
index: 0
})