Skip to content

Commit 52748a0

Browse files
authored
Merge pull request #2347 from ahoppen/ahoppen/5.10/space-between-string-and-dot
[5.10] Don't add a space between literals and period in BasicFormat
2 parents a21dfa6 + c9e4788 commit 52748a0

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

Sources/SwiftBasicFormat/BasicFormat.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,15 +327,19 @@ open class BasicFormat: SyntaxRewriter {
327327
(.rawStringPoundDelimiter, .multilineStringQuote), // opening raw string delimiter should never be separate by a space
328328
(.rawStringPoundDelimiter, .singleQuote), // opening raw string delimiter should never be separate by a space
329329
(.rawStringPoundDelimiter, .stringQuote), // opening raw string delimiter should never be separate by a space
330+
(.rawStringPoundDelimiter, .period), // opening raw string delimiter should never be separate by a space
330331
(.regexLiteralPattern, _),
332+
(.regexPoundDelimiter, .period), // #/myRegex/#.someMember
331333
(.regexSlash, .regexPoundDelimiter), // closing extended regex delimiter should never be separate by a space
334+
(.regexSlash, .period), // /myRegex/.someMember
332335
(.rightAngle, .leftParen), // func foo<T>(x: T)
333336
(.rightBrace, .leftParen), // { return 1 }()
334337
(.rightParen, .leftParen), // returnsClosure()()
335338
(.rightParen, .period), // foo().bar
336339
(.rightSquare, .period), // myArray[1].someProperty
337340
(.singleQuote, .rawStringPoundDelimiter), // closing raw string delimiter should never be separate by a space
338341
(.stringQuote, .rawStringPoundDelimiter), // closing raw string delimiter should never be separate by a space
342+
(.stringQuote, .period), // "test".lowercased
339343
(.stringSegment, _),
340344
(_, .comma),
341345
(_, .ellipsis),

Tests/SwiftBasicFormatTest/BasicFormatTests.swift

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -503,4 +503,32 @@ final class BasicFormatTest: XCTestCase {
503503
)
504504
}
505505
}
506+
507+
func testPeriodAfterStringLiteral() {
508+
let source = """
509+
"test".lowercased()
510+
"""
511+
assertFormatted(source: source, expected: source)
512+
}
513+
514+
func testPeriodAfterRawStringLiteral() {
515+
let source = """
516+
#"test"#.lowercased()
517+
"""
518+
assertFormatted(source: source, expected: source)
519+
}
520+
521+
func testPeriodAfterRegexLiteral() {
522+
let source = """
523+
/test/.something
524+
"""
525+
assertFormatted(source: source, expected: source)
526+
}
527+
528+
func testPeriodAfterRawRegexLiteral() {
529+
let source = """
530+
/test/.something
531+
"""
532+
assertFormatted(source: source, expected: source)
533+
}
506534
}

0 commit comments

Comments
 (0)