forked from swiftlang/swift-format
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PrettyPrinter reports wrong line LineNumbersTests
The reason for the wrong line number were multiline comments. In to accomodate for this, we now check the string while writing for new lines and increment the line count accordingly. Issue: swiftlang#882
- Loading branch information
Showing
2 changed files
with
94 additions
and
1 deletion.
There are no files selected for viewing
This file contains 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
This file contains 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,80 @@ | ||
import SwiftFormat | ||
import _SwiftFormatTestSupport | ||
|
||
final class LineNumbersTests: PrettyPrintTestCase { | ||
func testLineNumbers() { | ||
let input = | ||
""" | ||
final class A { | ||
@Test func b() throws { | ||
doSomethingInAFunctionWithAVeryLongName() 1️⃣// Here we have a very long comment that should not be here because it is far too long | ||
} | ||
} | ||
""" | ||
|
||
let expected = | ||
""" | ||
final class A { | ||
@Test func b() throws { | ||
doSomethingInAFunctionWithAVeryLongName() // Here we have a very long comment that should not be here because it is far too long | ||
} | ||
} | ||
""" | ||
|
||
assertPrettyPrintEqual(input: input, | ||
expected: expected, | ||
linelength: 120, | ||
whitespaceOnly: true, | ||
findings: [ | ||
FindingSpec("1️⃣", message: "move end-of-line comment that exceeds the line length") | ||
]) | ||
} | ||
|
||
func testLineNumbersWithComments() { | ||
let input = | ||
""" | ||
// Copyright (C) 2024 My Coorp. All rights reserved. | ||
// | ||
// This document is the property of My Coorp. | ||
// It is considered confidential and proprietary. | ||
// | ||
// This document may not be reproduced or transmitted in any form, | ||
// in whole or in part, without the express written permission of | ||
// My Coorp. | ||
final class A { | ||
@Test func b() throws { | ||
doSomethingInAFunctionWithAVeryLongName() 1️⃣// Here we have a very long comment that should not be here because it is far too long | ||
} | ||
} | ||
""" | ||
|
||
let expected = | ||
""" | ||
// Copyright (C) 2024 My Coorp. All rights reserved. | ||
// | ||
// This document is the property of My Coorp. | ||
// It is considered confidential and proprietary. | ||
// | ||
// This document may not be reproduced or transmitted in any form, | ||
// in whole or in part, without the express written permission of | ||
// My Coorp. | ||
final class A { | ||
@Test func b() throws { | ||
doSomethingInAFunctionWithAVeryLongName() // Here we have a very long comment that should not be here because it is far too long | ||
} | ||
} | ||
""" | ||
|
||
assertPrettyPrintEqual(input: input, | ||
expected: expected, | ||
linelength: 120, | ||
whitespaceOnly: true, | ||
findings: [ | ||
FindingSpec("1️⃣", message: "move end-of-line comment that exceeds the line length") | ||
]) | ||
} | ||
} |