@@ -740,6 +740,8 @@ namespace ts.refactor.extractSymbol {
740
740
}
741
741
742
742
const { body, returnValueProperty } = transformFunctionBody ( node , exposedVariableDeclarations , writes , substitutions , ! ! ( range . facts & RangeFacts . HasReturn ) ) ;
743
+ suppressLeadingAndTrailingTrivia ( body ) ;
744
+
743
745
let newFunction : MethodDeclaration | FunctionDeclaration ;
744
746
745
747
if ( isClassLike ( scope ) ) {
@@ -926,15 +928,10 @@ namespace ts.refactor.extractSymbol {
926
928
}
927
929
}
928
930
929
- if ( isReadonlyArray ( range . range ) ) {
930
- changeTracker . replaceNodesWithNodes ( context . file , range . range , newNodes , {
931
- nodeSeparator : context . newLineCharacter ,
932
- suffix : context . newLineCharacter // insert newline only when replacing statements
933
- } ) ;
934
- }
935
- else {
936
- changeTracker . replaceNodeWithNodes ( context . file , range . range , newNodes , { nodeSeparator : context . newLineCharacter } ) ;
937
- }
931
+ const replacementRange = isReadonlyArray ( range . range )
932
+ ? { pos : first ( range . range ) . getStart ( ) , end : last ( range . range ) . end }
933
+ : { pos : range . range . getStart ( ) , end : range . range . end } ;
934
+ changeTracker . replaceRangeWithNodes ( context . file , replacementRange , newNodes , { nodeSeparator : context . newLineCharacter } ) ;
938
935
939
936
const edits = changeTracker . getChanges ( ) ;
940
937
const renameRange = isReadonlyArray ( range . range ) ? first ( range . range ) : range . range ;
@@ -982,6 +979,7 @@ namespace ts.refactor.extractSymbol {
982
979
: checker . typeToTypeNode ( checker . getContextualType ( node ) , scope , NodeBuilderFlags . NoTruncation ) ;
983
980
984
981
const initializer = transformConstantInitializer ( node , substitutions ) ;
982
+ suppressLeadingAndTrailingTrivia ( initializer ) ;
985
983
986
984
const changeTracker = textChanges . ChangeTracker . fromContext ( context ) ;
987
985
@@ -1014,7 +1012,7 @@ namespace ts.refactor.extractSymbol {
1014
1012
changeTracker . insertNodeBefore ( context . file , nodeToInsertBefore , newVariable , { suffix : context . newLineCharacter + context . newLineCharacter } ) ;
1015
1013
1016
1014
// Consume
1017
- changeTracker . replaceNodeWithNodes ( context . file , node , [ localReference ] , { nodeSeparator : context . newLineCharacter } ) ;
1015
+ changeTracker . replaceRange ( context . file , { pos : node . getStart ( ) , end : node . end } , localReference ) ;
1018
1016
}
1019
1017
else {
1020
1018
const newVariableDeclaration = createVariableDeclaration ( localNameText , variableType , initializer ) ;
0 commit comments