diff --git a/Dockerfile b/Dockerfile index 138ee69..5804dac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,7 @@ COPY ./Package.* ./ RUN swift package resolve COPY . . -RUN swift build -c release --static-swift-stdlib -Xswiftc -enable-testing +RUN swift build -c release --static-swift-stdlib -Xswiftc -DPROCESSOR_MEASUREMENTS_ENABLED -Xswiftc -enable-testing WORKDIR /staging diff --git a/Package.resolved b/Package.resolved index 916964c..cbe2b5d 100644 --- a/Package.resolved +++ b/Package.resolved @@ -129,10 +129,10 @@ { "identity" : "swift-experimental-string-processing", "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-experimental-string-processing.git", + "location" : "https://github.com/kishikawakatsumi/swift-experimental-string-processing.git", "state" : { - "branch" : "main", - "revision" : "e1611c5be1bb9306ee697e638dd9eaa7a0f5b136" + "branch" : "metrics", + "revision" : "167229e1c19f349a466a558c0500700a8546b346" } }, { diff --git a/Package.swift b/Package.swift index 99aa463..acdb0c0 100644 --- a/Package.swift +++ b/Package.swift @@ -7,7 +7,7 @@ let package = Package( .macOS(.v12) ], dependencies: [ - .package(url: "https://github.com/apple/swift-experimental-string-processing.git", branch: "main"), + .package(url: "https://github.com/kishikawakatsumi/swift-experimental-string-processing.git", branch: "metrics"), .package(url: "https://github.com/vapor/vapor.git", from: "4.114.0"), .package(url: "https://github.com/vapor/leaf.git", from: "4.4.1"), ], @@ -23,17 +23,6 @@ let package = Package( .unsafeFlags(["-cross-module-optimization"], .when(configuration: .release)), ] ), - .executableTarget( - name: "DSLParser", - dependencies: [ - .product(name: "_StringProcessing", package: "swift-experimental-string-processing"), - .product(name: "_RegexParser", package: "swift-experimental-string-processing"), - ], - swiftSettings: [ - .unsafeFlags(["-Xfrontend", "-disable-availability-checking"]), - .unsafeFlags(["-cross-module-optimization"], .when(configuration: .release)), - ] - ), .executableTarget( name: "ExpressionParser", dependencies: [ @@ -59,17 +48,19 @@ let package = Package( .executableTarget( name: "App", dependencies: [ + .product(name: "_StringProcessing", package: "swift-experimental-string-processing"), + .product(name: "_RegexParser", package: "swift-experimental-string-processing"), .product(name: "Vapor", package: "vapor"), .product(name: "Leaf", package: "leaf"), ], swiftSettings: [ - .unsafeFlags(["-cross-module-optimization"], .when(configuration: .release)) + .unsafeFlags(["-Xfrontend", "-disable-availability-checking"]), + .unsafeFlags(["-cross-module-optimization"], .when(configuration: .release)), ] ), .testTarget( name: "RegexTests", dependencies: [ .target(name: "DSLConverter"), - .target(name: "DSLParser"), .target(name: "ExpressionParser"), .target(name: "Matcher"), .target(name: "App"), diff --git a/Public/css/common.css b/Public/css/common.css index a36b55c..cff26ff 100644 --- a/Public/css/common.css +++ b/Public/css/common.css @@ -1,8 +1,3 @@ -.nav-link { - padding: 2px 1rem; - min-width: 180px; -} - .active-tick .checkable::after { font-family: "Font Awesome 6 Pro"; content: "\f00c"; @@ -54,6 +49,39 @@ font-size: 90%; } +.button-circle { + width: 2rem; + height: 2rem; +} + +#debugger-button { + background-color: rgba(51, 51, 51, 0.05); + border-radius: 15px; + border-width: 0; + color: #333333; + cursor: pointer; + display: inline-block; + list-style: none; + margin: 0 6px; + padding: 4px 16px; + text-align: center; + transition: all 200ms; + vertical-align: baseline; + white-space: nowrap; + user-select: none; + -webkit-user-select: none; + touch-action: manipulation; + font-size: 90%; +} + +#debugger-button:hover { + background-color: #2222221a; +} + +#debugger-regex { + font-family: Consolas, Monaco, "Andale Mono", "Ubuntu Mono", monospace; +} + .dropdown-menu { min-width: 200px; } diff --git a/Public/css/highlight.css b/Public/css/highlight.css index 88832d7..0040fac 100644 --- a/Public/css/highlight.css +++ b/Public/css/highlight.css @@ -87,6 +87,9 @@ span.match { background: rgba(112, 176, 224, 0.5); color: #101112; + border-right: solid 1px #ffffff; + border-left: solid 1px #ffffff; + margin-right: -2px; } span.error { color: #d22; @@ -95,13 +98,18 @@ span.error { span.error.warning { color: #d22; } -span.match { - border-right: solid 1px #ffffff; - border-left: solid 1px #ffffff; - margin-right: -2px; - margin-right: -2px; -} span.highlight { background: rgba(255, 128, 0, 0.5); color: #101112; } + +span.debuggermatch { + background: rgba(112, 176, 224, 0.5); + color: #101112; + border-right: solid 1px rgba(112, 176, 224, 0.5); + border-left: solid 1px rgba(112, 176, 224, 0.5); +} + +span.debuggerbacktrack { + background: rgba(255, 0, 0, 0.2); +} diff --git a/Public/index.html b/Public/index.html index 733d812..a136916 100644 --- a/Public/index.html +++ b/Public/index.html @@ -33,7 +33,6 @@

Swift Regex - β

@@ -145,6 +144,7 @@

+ no match
@@ -163,6 +163,80 @@

+ +