FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

馃 Pick PR #48463 (Fix newline inserted in empty block...) into release-4.6 by typescript-bot 路 Pull Request #48477 路 microsoft/TypeScript 路 GitHub

Repository navigation

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .ts  (3) All 1 file type selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
Cherry-pick PR #48463 into release-4.6
Component commits:
9163143 Fix newline inserted in empty block at end of formatting range

79b600a Clean up

19ef6b6 Fix refactoring mistake
  • Loading branch information
andrewbranch authored and typescript-bot committed Mar 29, 2022
commit 217c6771bd9051f8331b00cb2e5624c90030801b
13 changes: 7 additions & 6 deletions src/services/formatting/formatting.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -439,20 +439,21 @@ namespace ts.formatting {
}

if (previousRange! && formattingScanner.getStartPos() >= originalRange.end) {
const token =
const tokenInfo =
formattingScanner.isOnEOF() ? formattingScanner.readEOFTokenRange() :
formattingScanner.isOnToken() ? formattingScanner.readTokenInfo(enclosingNode).token :
undefined;

if (token) {
if (tokenInfo) {
const parent = findPrecedingToken(tokenInfo.end, sourceFile, enclosingNode)?.parent || previousParent!;
processPair(
token,
sourceFile.getLineAndCharacterOfPosition(token.pos).line,
enclosingNode,
tokenInfo,
sourceFile.getLineAndCharacterOfPosition(tokenInfo.pos).line,
parent,
previousRange,
previousRangeStartLine!,
previousParent!,
enclosingNode,
parent,
/*dynamicIndentation*/ undefined);
}
}
Expand Down
10 changes: 6 additions & 4 deletions src/services/utilities.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -1256,8 +1256,10 @@ namespace ts {
* Finds the rightmost token satisfying `token.end <= position`,
* excluding `JsxText` tokens containing only whitespace.
*/
export function findPrecedingToken(position: number, sourceFile: SourceFile, startNode?: Node, excludeJsdoc?: boolean): Node | undefined {
const result = find(startNode || sourceFile);
export function findPrecedingToken(position: number, sourceFile: SourceFileLike, startNode: Node, excludeJsdoc?: boolean): Node | undefined;
export function findPrecedingToken(position: number, sourceFile: SourceFile, startNode?: Node, excludeJsdoc?: boolean): Node | undefined;
export function findPrecedingToken(position: number, sourceFile: SourceFileLike, startNode?: Node, excludeJsdoc?: boolean): Node | undefined {
const result = find((startNode || sourceFile) as Node);
Debug.assert(!(result && isWhiteSpaceOnlyJsxText(result)));
return result;

Expand Down Expand Up @@ -1322,7 +1324,7 @@ namespace ts {
return isToken(n) && !isWhiteSpaceOnlyJsxText(n);
}

function findRightmostToken(n: Node, sourceFile: SourceFile): Node | undefined {
function findRightmostToken(n: Node, sourceFile: SourceFileLike): Node | undefined {
if (isNonWhitespaceToken(n)) {
return n;
}
Expand All @@ -1339,7 +1341,7 @@ namespace ts {
/**
* Finds the rightmost child to the left of `children[exclusiveStartPosition]` which is a non-all-whitespace token or has constituent tokens.
*/
function findRightmostChildNodeWithTokens(children: Node[], exclusiveStartPosition: number, sourceFile: SourceFile, parentKind: SyntaxKind): Node | undefined {
function findRightmostChildNodeWithTokens(children: Node[], exclusiveStartPosition: number, sourceFile: SourceFileLike, parentKind: SyntaxKind): Node | undefined {
for (let i = exclusiveStartPosition - 1; i >= 0; i--) {
const child = children[i];

Expand Down
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/// <reference path="fourslash.ts"/>

//// if (foo) {
//// if (bar) {/**/}
//// }

goTo.marker("");
format.onType("", "{");
verify.currentFileContentIs(
`if (foo) {
if (bar) { }
}`);

Back | FazBrowse Home | New Git URL