branch: elpa/swift-mode
commit 5074a028a2047bef61f395a67c37756b5dcd3878
Author: taku0 <[email protected]>
Commit: taku0 <[email protected]>
Fix font-lock of successive identifiers
Example:
```swift
enum Foo: Error {
.foo
}
```
`Foo` was not fontified with `swift-mode:function-name-face`.
---
swift-mode-font-lock.el | 4 ++--
test/swift-files/font-lock/font-lock.swift | 14 ++++++++++----
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/swift-mode-font-lock.el b/swift-mode-font-lock.el
index 3e403f3..2cd1106 100644
--- a/swift-mode-font-lock.el
+++ b/swift-mode-font-lock.el
@@ -361,8 +361,8 @@ The predicate MATCH-P is called with two arguments:
(let ((result nil))
(while (and
(< (point) limit)
- (re-search-forward "\\<\\(\\sw\\|\\s_\\)+\\>" limit t)
- (not result))
+ (not result)
+ (re-search-forward "\\<\\(\\sw\\|\\s_\\)+\\>" limit t))
(when (save-excursion
(save-match-data
(funcall match-p (match-beginning 0) limit)))
diff --git a/test/swift-files/font-lock/font-lock.swift
b/test/swift-files/font-lock/font-lock.swift
index 8669dd4..4113d74 100644
--- a/test/swift-files/font-lock/font-lock.swift
+++ b/test/swift-files/font-lock/font-lock.swift
@@ -30,11 +30,11 @@ foo != bar // "foo != bar"
foo !== bar // "foo !== bar"
-a.b.c! // #("a.b.c!" 4 5 (face swift-mode:property-access-face))
+a.b.c! // #("a.b.c!" 2 3 (face swift-mode:property-access-face) 4 5 (face
swift-mode:property-access-face))
-a.b.c_! // #("a.b.c_!" 4 5 (face swift-mode:property-access-face))
+a.b.c_! // #("a.b.c_!" 2 3 (face swift-mode:property-access-face) 4 5 (face
swift-mode:property-access-face))
-a.b.aあ! // #("a.b.a\343\201\202!" 4 8 (face swift-mode:property-access-face))
+a.b.aあ! // #("a.b.a\343\201\202!" 2 3 (face swift-mode:property-access-face) 4
8 (face swift-mode:property-access-face))
init! {} // #("init! {}" 0 4 (face swift-mode:keyword-face))
@@ -45,7 +45,13 @@ let x = foo()! // #("let x = foo()!" 0 3 (face
swift-mode:keyword-face) 8 11 (fa
let x = foo[0]! // #("let x = foo[0]!" 0 3 (face swift-mode:keyword-face))
// Identifiers can be quoted.
-a.b.`c`! // #("a.b.`c`!" 4 7 (face font-lock-string-face))
+a.b.`c`! // #("a.b.`c`!" 2 3 (face swift-mode:property-access-face) 4 7 (face
font-lock-string-face))
// Custom operators.
foo +!+!+!+!+ bbb // "foo +!+!+!+!+ bbb"
+
+//
+// Regression tests.
+//
+
+enum Foo: Error { .foo } // #("enum Foo: Error { .foo }" 0 4 (face
swift-mode:keyword-face) 5 8 (face swift-mode:function-name-face) 10 15 (face
swift-mode:builtin-type-face) 19 22 (face swift-mode:property-access-face))