mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-12-12 03:20:56 -06:00
Fixes to emit / format for codeFix (#18484)
This commit is contained in:
parent
21bbdd33c5
commit
0747b33038
@ -2417,6 +2417,12 @@ namespace ts {
|
||||
|
||||
const isEmpty = isUndefined || start >= children.length || count === 0;
|
||||
if (isEmpty && format & ListFormat.OptionalIfEmpty) {
|
||||
if (onBeforeEmitNodeArray) {
|
||||
onBeforeEmitNodeArray(children);
|
||||
}
|
||||
if (onAfterEmitNodeArray) {
|
||||
onAfterEmitNodeArray(children);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -3500,7 +3500,7 @@ ${code}
|
||||
expected = makeWhitespaceVisible(expected);
|
||||
actual = makeWhitespaceVisible(actual);
|
||||
}
|
||||
return `Expected:\n${expected}\nActual:${actual}`;
|
||||
return `Expected:\n${expected}\nActual:\n${actual}`;
|
||||
}
|
||||
|
||||
function differOnlyByWhitespace(a: string, b: string) {
|
||||
|
||||
@ -755,9 +755,8 @@ namespace ts.formatting {
|
||||
return true;
|
||||
case SyntaxKind.Block: {
|
||||
const blockParent = context.currentTokenParent.parent;
|
||||
if (blockParent.kind !== SyntaxKind.ArrowFunction &&
|
||||
blockParent.kind !== SyntaxKind.FunctionExpression
|
||||
) {
|
||||
// In a codefix scenario, we can't rely on parents being set. So just always return true.
|
||||
if (!blockParent || blockParent.kind !== SyntaxKind.ArrowFunction && blockParent.kind !== SyntaxKind.FunctionExpression) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,14 +2,14 @@
|
||||
|
||||
// @allowNonTsExtensions: true
|
||||
// @Filename: test123.js
|
||||
//// [|var bar = 10, /*1*/foo = function() { };
|
||||
//// var bar = 10, /*1*/foo = function() { };
|
||||
//// /*2*/foo.prototype.instanceMethod1 = function() { return "this is name"; };
|
||||
//// /*3*/foo.prototype.instanceMethod2 = () => { return "this is name"; };
|
||||
//// /*4*/foo.prototype.instanceProp1 = "hello";
|
||||
//// /*5*/foo.prototype.instanceProp2 = undefined;
|
||||
//// /*6*/foo.staticProp = "world";
|
||||
//// /*7*/foo.staticMethod1 = function() { return "this is static name"; };
|
||||
//// /*8*/foo.staticMethod2 = () => "this is static name";|]
|
||||
//// /*8*/foo.staticMethod2 = () => "this is static name";
|
||||
|
||||
|
||||
['1', '2', '3', '4', '5', '6', '7', '8'].forEach(m => verify.applicableRefactorAvailableAtMarker(m));
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
// @allowNonTsExtensions: true
|
||||
// @Filename: /a.js
|
||||
////function /**/MyClass() {
|
||||
////}
|
||||
////MyClass.prototype.f = function(x) {
|
||||
//// switch (x) {
|
||||
//// case 0:
|
||||
//// }
|
||||
////}
|
||||
|
||||
verify.applicableRefactorAvailableAtMarker("");
|
||||
verify.fileAfterApplyingRefactorAtMarker("",
|
||||
`class MyClass {
|
||||
constructor() {
|
||||
}
|
||||
f(x) {
|
||||
switch (x) {
|
||||
case 0:
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
'Convert to ES2015 class', 'convert');
|
||||
@ -0,0 +1,21 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
// @allowNonTsExtensions: true
|
||||
// @Filename: /a.js
|
||||
////function /**/MyClass() {
|
||||
////}
|
||||
////MyClass.prototype.foo = function() {
|
||||
//// ({ bar: () => { } })
|
||||
////}
|
||||
|
||||
verify.applicableRefactorAvailableAtMarker("");
|
||||
verify.fileAfterApplyingRefactorAtMarker("",
|
||||
`class MyClass {
|
||||
constructor() {
|
||||
}
|
||||
foo() {
|
||||
({ bar: () => { } });
|
||||
}
|
||||
}
|
||||
`,
|
||||
'Convert to ES2015 class', 'convert');
|
||||
Loading…
x
Reference in New Issue
Block a user