@@ -25,6 +25,7 @@ import com.neoutils.highlight.core.Highlight
25
25
import com.neoutils.neoregex.core.common.platform.Platform
26
26
import com.neoutils.neoregex.core.common.platform.platform
27
27
import com.neoutils.xregex.Flavor
28
+ import com.neoutils.xregex.extension.isSupported
28
29
import com.neoutils.xregex.extension.xRegex
29
30
30
31
interface Syntax {
@@ -33,12 +34,12 @@ interface Syntax {
33
34
34
35
data class Regex (
35
36
private val modifierColor : Color = Color (color = 0xff0077ff),
36
- private val escapeReservedColor : Color = Color (color =0xffb700ff),
37
- private val escapedCharColor : Color = Color (color =0xfff5cd05),
38
- private val anchorsColor : Color = Color (color =0xffb06100),
39
- private val charSetColor : Color = Color (color =0xffe39b00),
40
- private val groupColor : Color = Color (color =0xff038d00),
41
- private val controlsColor : Color = Color (color =0xffff00c9),
37
+ private val escapeReservedColor : Color = Color (color = 0xffb700ff),
38
+ private val escapedCharColor : Color = Color (color = 0xfff5cd05),
39
+ private val anchorsColor : Color = Color (color = 0xffb06100),
40
+ private val charSetColor : Color = Color (color = 0xffe39b00),
41
+ private val groupColor : Color = Color (color = 0xff038d00),
42
+ private val controlsColor : Color = Color (color = 0xffff00c9),
42
43
) : Syntax {
43
44
44
45
private val charSetRegex = listOf (
@@ -54,20 +55,17 @@ interface Syntax {
54
55
""" (\\\[)""" ,
55
56
""" (\[(?:\\{2}|\\\]|[^\]])*\]?)""" ,
56
57
""" (\\\()""" ,
57
- when (platform) {
58
- Platform .Android ,
59
- is Platform .Desktop -> {
60
- """ ((\((?:\?[:=!])?)((?:\\{2}|\\\)|\\\[|\[(?:\\{2}|\\\]|[^\]])*\]?|(?5)|[^\)])*)(\))?)"""
61
- }
62
-
63
- Platform .Web -> {
64
- """ ((\((?:\?[:=!])?)((?:\\{2}|\\\)|\\\[|\[(?:\\{2}|\\\]|[^\]])*\]?|[^\)])*)(\))?)"""
65
- }
58
+ if (Flavor .JVM .PCRE .isSupported) {
59
+ """ ((\((?:\?[:=!])?)((?:\\{2}|\\\)|\\\[|\[(?:\\{2}|\\\]|[^\]])*\]?|(?5)|[^\)])*)(\))?)"""
60
+ } else {
61
+ """ ((\((?:\?[:=!])?)((?:\\{2}|\\\)|\\\[|\[(?:\\{2}|\\\]|[^\]])*\]?|[^\)])*)(\))?)"""
66
62
}
67
63
).joinToString(
68
64
separator = " |"
69
65
).xRegex().apply {
70
- flavors.jvm = Flavor .JVM .PCRE
66
+ flavors.jvm = Flavor .JVM .PCRE .takeIf {
67
+ it.isSupported
68
+ } ? : Flavor .JVM .Native
71
69
}
72
70
73
71
private val quantifierRegex = listOf (
0 commit comments