Merge branch 'sk/userdiff-swift' into next
Userdiff patterns for Swift have been added, with support for Swift-specific constructs such as attributes, modifiers, failable initializers, and generics. * sk/userdiff-swift: userdiff: add support for Swiftnext
commit
45dbcc6307
|
|
@ -914,6 +914,8 @@ patterns are available:
|
|||
- `scheme` suitable for source code in most Lisp dialects,
|
||||
including Scheme, Emacs Lisp, Common Lisp, and Clojure.
|
||||
|
||||
- `swift` suitable for source code in the Swift language.
|
||||
|
||||
- `tex` suitable for source code for LaTeX documents.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,5 @@
|
|||
actor RIGHT {
|
||||
let a = 1
|
||||
// a comment
|
||||
let b = ChangeMe
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
struct View {
|
||||
@available(iOS 13, *) public func RIGHT() {
|
||||
let a = 1
|
||||
// a comment
|
||||
print(ChangeMe)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
class RIGHT {
|
||||
let a = 1
|
||||
// a comment
|
||||
let b = ChangeMe
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
enum RIGHT {
|
||||
case first
|
||||
// a comment
|
||||
case ChangeMe
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
extension RIGHT {
|
||||
static let a = 1
|
||||
// a comment
|
||||
static let b = ChangeMe
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
class Bar {
|
||||
init?(RIGHT: Int) {
|
||||
let x = 0
|
||||
// a comment
|
||||
print(ChangeMe)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
func RIGHT(x: Int) -> Int {
|
||||
let y = x
|
||||
// a comment
|
||||
return ChangeMe
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
struct Container {
|
||||
subscript<RIGHT>(index: Int) -> Int {
|
||||
let a = 0
|
||||
// a comment
|
||||
return ChangeMe
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
class Foo {
|
||||
init(RIGHT: Int) {
|
||||
let x = 0
|
||||
// a comment
|
||||
print(ChangeMe)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
class Service {
|
||||
@objc func RIGHT() {
|
||||
let path = "/api"
|
||||
// a comment
|
||||
log(ChangeMe)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
public static func RIGHT() -> Int {
|
||||
// a comment
|
||||
return ChangeMe
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
protocol RIGHT {
|
||||
var first: Int { get }
|
||||
// a comment
|
||||
var second: ChangeMe { get }
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
struct RIGHT {
|
||||
let a = 1
|
||||
// a comment
|
||||
let b = ChangeMe
|
||||
}
|
||||
10
userdiff.c
10
userdiff.c
|
|
@ -362,6 +362,16 @@ PATTERNS("scheme",
|
|||
"\\|([^|\\\\]|\\\\.)*\\|"
|
||||
/* All other words should be delimited by spaces or parentheses. */
|
||||
"|([^][)(}{ \t])+"),
|
||||
PATTERNS("swift",
|
||||
"^[ \t]*((@[A-Za-z_][A-Za-z0-9_]*(\\([^()]*\\))?[ \t]+)*([a-z]+[ \t]+)*(func|init|deinit|subscript|class|struct|enum|protocol|extension|actor)[ \t(?!<].*)$",
|
||||
/* -- */
|
||||
"[a-zA-Z_][a-zA-Z0-9_]*"
|
||||
/* hexadecimal, octal, and binary literals */
|
||||
"|0[xX][0-9a-fA-F_]+|0[oO][0-7_]+|0[bB][01_]+"
|
||||
/* integers and floating-point numbers */
|
||||
"|[0-9][0-9_]*([.][0-9_]+)?([eE][-+]?[0-9]+)?"
|
||||
/* unary and binary operators */
|
||||
"|[-+*/%<>=!&|^~?]=|&&|\\|\\||<<=?|>>=?|\\?\\?|\\.\\.[.<]|->"),
|
||||
PATTERNS("tex", "^(\\\\((sub)*section|chapter|part)\\*{0,1}\\{.*)$",
|
||||
"\\\\[a-zA-Z@]+|\\\\.|([a-zA-Z0-9]|[^\x01-\x7f])+"),
|
||||
{ .name = "default", .binary = -1 },
|
||||
|
|
|
|||
Loading…
Reference in New Issue