pair-mode 0.2.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +12 -0
- package/.codex-plugin/plugin.json +29 -0
- package/README.md +79 -0
- package/assets/syntax/clojure.yaml +36 -0
- package/assets/syntax/cmake.yaml +41 -0
- package/assets/syntax/crystal.yaml +71 -0
- package/assets/syntax/csharp.yaml +51 -0
- package/assets/syntax/dart.yaml +45 -0
- package/assets/syntax/elm.yaml +38 -0
- package/assets/syntax/erb.yaml +42 -0
- package/assets/syntax/erlang.yaml +45 -0
- package/assets/syntax/fsharp.yaml +48 -0
- package/assets/syntax/graphql.yaml +47 -0
- package/assets/syntax/groovy.yaml +111 -0
- package/assets/syntax/haml.yaml +16 -0
- package/assets/syntax/haskell.yaml +52 -0
- package/assets/syntax/ini.yaml +23 -0
- package/assets/syntax/java.yaml +36 -0
- package/assets/syntax/julia.yaml +56 -0
- package/assets/syntax/kotlin.yaml +65 -0
- package/assets/syntax/makefile.yaml +37 -0
- package/assets/syntax/nginx.yaml +22 -0
- package/assets/syntax/nim.yaml +27 -0
- package/assets/syntax/nix.yaml +32 -0
- package/assets/syntax/objc.yaml +60 -0
- package/assets/syntax/ocaml.yaml +43 -0
- package/assets/syntax/perl.yaml +58 -0
- package/assets/syntax/php.yaml +60 -0
- package/assets/syntax/r.yaml +30 -0
- package/assets/syntax/scala.yaml +32 -0
- package/assets/syntax/svelte.yaml +27 -0
- package/assets/syntax/swift.yaml +102 -0
- package/assets/syntax/vue.yaml +63 -0
- package/assets/syntax/xml.yaml +37 -0
- package/assets/syntax/zig.yaml +52 -0
- package/dist/claude-code.js +461 -149
- package/dist/cli.js +1490 -476
- package/dist/codex.js +461 -149
- package/dist/opencode.js +453 -142
- package/dist/pair-tui.js +172 -26
- package/dist/pi.js +508 -155
- package/hooks/codex.json +17 -0
- package/hooks/hooks.json +16 -0
- package/package.json +8 -3
- package/skills/toggle/SKILL.md +24 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
filetype: php
|
|
2
|
+
|
|
3
|
+
detect:
|
|
4
|
+
filename: "\\.php[2345s~]?$"
|
|
5
|
+
|
|
6
|
+
rules:
|
|
7
|
+
- symbol.operator: "<|>"
|
|
8
|
+
- error: "<[^!].*?>"
|
|
9
|
+
- symbol.tag: "(?i)<[/]?(a(bbr|cronym|ddress|pplet|rea|rticle|side|udio)?|b(ase(font)?|d(i|o)|ig|lockquote|r)?|ca(nvas|ption)|center|cite|co(de|l|lgroup)|d(ata(list)?|d|el|etails|fn|ialog|ir|l|t)|em(bed)?|fieldset|fig(caption|ure)|font|form|(i)?frame|frameset|h[1-6]|hr|i|img|in(put|s)|kbd|keygen|label|legend|li(nk)?|ma(in|p|rk)|menu(item)?|met(a|er)|nav|no(frames|script)|o(l|pt(group|ion)|utput)|p(aram|icture|re|rogress)?|q|r(p|t|uby)|s(trike)?|samp|se(ction|lect)|small|source|span|strong|su(b|p|mmary)|textarea|time|track|u(l)?|var|video|wbr)( .*|>)*?>"
|
|
10
|
+
- symbol.tag.extended: "(?i)<[/]?(body|div|html|head(er)?|footer|title|table|t(body|d|h(ead)?|r|foot))( .*|>)*?>"
|
|
11
|
+
- preproc: "(?i)<[/]?(script|style)( .*|>)*?>"
|
|
12
|
+
- preproc: "<\\?(php|=)?"
|
|
13
|
+
- preproc: "\\?>"
|
|
14
|
+
- preproc: "<!DOCTYPE.+?>"
|
|
15
|
+
- special: "&[^;[[:space:]]]*;"
|
|
16
|
+
- symbol: "[:=]"
|
|
17
|
+
- identifier: "(alt|bgcolor|height|href|label|longdesc|name|onclick|onfocus|onload|onmouseover|size|span|src|style|target|type|value|width)="
|
|
18
|
+
- constant.number: "(?i)#[0-9a-fA-F]{6,6}"
|
|
19
|
+
- constant.string.url: "(ftp(s)?|http(s)?|git|chrome)://[^ ]+"
|
|
20
|
+
- comment: "<!--.+?-->"
|
|
21
|
+
- default: "<\\?(php|=)\" end=\"\\?>"
|
|
22
|
+
- identifier.class: "([a-zA-Z0-9_-]+)\\("
|
|
23
|
+
- type: "\\b(array|bool|callable|float|int|iterable|object|mixed|string|void)\\b"
|
|
24
|
+
- identifier.class: "[a-zA-Z\\\\]+::"
|
|
25
|
+
- identifier: "\\b([A-Z][a-zA-Z0-9_]+)\\b"
|
|
26
|
+
- identifier: "([A-Z0-9_]+)[;|\\s|\\)|,]"
|
|
27
|
+
- type.keyword: "\\b(global|final|public|private|protected|static|const|var)\\b"
|
|
28
|
+
- statement: "\\b(abstract|catch|class|declare|do|else(if)?|end(declare|for(each)?|if|switch|while)|enum|finally|for(each)|function|if|interface|namespace|switch|trait|try|while)\\b"
|
|
29
|
+
- identifier: "\\bnew\\s+([a-zA-Z0-9\\\\]+)"
|
|
30
|
+
- special: "\\b(as|and|break|case|clone|continue|default|die|fn|echo|empty|eval|exit|extends|goto|or|include(_once)?|implements|instanceof|insteadof|isset|list|match|new|print|return|require(_once)?|unset|use|throw|xor|yield(\\s+from))\\b"
|
|
31
|
+
- constant.bool: "\\b(true|false|null|TRUE|FALSE|NULL)\\b"
|
|
32
|
+
- constant: "[\\s|=|\\s|\\(|/|+|-|\\*|\\[]"
|
|
33
|
+
- constant.number: "[0-9]"
|
|
34
|
+
- identifier: "(\\$this|parent|self|\\$this->)"
|
|
35
|
+
- symbol.operator: "(=>|===|!==|==|!=|&&|\\|\\||::|=|->|\\!)"
|
|
36
|
+
- identifier.var: "(\\$[a-zA-Z0-9\\-_]+)"
|
|
37
|
+
- symbol.operator: "[\\(|\\)|/|+|\\-|\\*|\\[|.|,|;]"
|
|
38
|
+
- symbol.brackets: "(\\[|\\]|\\{|\\}|[()])"
|
|
39
|
+
|
|
40
|
+
- comment:
|
|
41
|
+
start: "(^|[[:space:]])*(//|#)"
|
|
42
|
+
end: "$"
|
|
43
|
+
rules: []
|
|
44
|
+
- comment:
|
|
45
|
+
start: "/\\*"
|
|
46
|
+
end: "\\*/"
|
|
47
|
+
rules: []
|
|
48
|
+
|
|
49
|
+
- constant.string:
|
|
50
|
+
start: '"'
|
|
51
|
+
end: '"'
|
|
52
|
+
skip: "\\\\."
|
|
53
|
+
rules:
|
|
54
|
+
- constant.specialChar: "\\\\[abfnrtv'\\\"\\\\]"
|
|
55
|
+
- constant.string:
|
|
56
|
+
start: "'"
|
|
57
|
+
end: "'"
|
|
58
|
+
skip: "\\\\."
|
|
59
|
+
rules:
|
|
60
|
+
- constant.specialChar: "\\\\[abfnrtv'\\\"\\\\]"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
filetype: r
|
|
2
|
+
|
|
3
|
+
detect:
|
|
4
|
+
filename: "\\.(r|R)$"
|
|
5
|
+
|
|
6
|
+
rules:
|
|
7
|
+
- statement: "\\b(library|require|break|else|for|function|if|ifelse|in|next|names|switch|repeat|print|try|tryCatch|isTRUE|return|while)\\b"
|
|
8
|
+
- constant: "\\b(T|TRUE|F|FALSE|NULL|Inf|NaN|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\\b"
|
|
9
|
+
- constant.number: "(\\b[0-9]+\\b|\\b0x[0-9A-Fa-f]+\\b)"
|
|
10
|
+
- symbol.operator: "([.:;,+*|=!\\%]|<|>|/|-|&|\\^|\\$)"
|
|
11
|
+
|
|
12
|
+
- comment:
|
|
13
|
+
start: "#"
|
|
14
|
+
end: "$"
|
|
15
|
+
rules:
|
|
16
|
+
- todo: "(TODO|XXX|FIXME):?"
|
|
17
|
+
|
|
18
|
+
- constant.string:
|
|
19
|
+
start: '"'
|
|
20
|
+
end: '"'
|
|
21
|
+
skip: "\\\\."
|
|
22
|
+
rules:
|
|
23
|
+
- constant.specialChar: "\\\\."
|
|
24
|
+
|
|
25
|
+
- constant.string:
|
|
26
|
+
start: "'"
|
|
27
|
+
end: "'"
|
|
28
|
+
skip: "\\\\."
|
|
29
|
+
rules:
|
|
30
|
+
- constant.specialChar: "\\\\."
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
filetype: scala
|
|
2
|
+
|
|
3
|
+
detect:
|
|
4
|
+
filename: "\\.sc(ala)?$|\\.sbt$"
|
|
5
|
+
|
|
6
|
+
rules:
|
|
7
|
+
- type: "\\b(boolean|byte|char|double|float|int|long|new|short|this|transient|void)\\b"
|
|
8
|
+
- statement: "\\b(match|val|var|break|case|catch|continue|default|do|else|finally|for|if|return|switch|throw|try|while)\\b"
|
|
9
|
+
- statement: "\\b(def|object|case|trait|lazy|implicit|abstract|class|extends|with|final|implements|override|import|instanceof|interface|native|package|private|protected|public|static|strictfp|super|synchronized|throws|volatile|sealed)\\b"
|
|
10
|
+
- constant.string:
|
|
11
|
+
start: '"""'
|
|
12
|
+
end: '"""'
|
|
13
|
+
rules: []
|
|
14
|
+
- constant.string:
|
|
15
|
+
start: '"'
|
|
16
|
+
end: '"'
|
|
17
|
+
skip: "\\\\."
|
|
18
|
+
rules:
|
|
19
|
+
- constant.specialChar: "\\\\."
|
|
20
|
+
- constant: "\\b(true|false|null)\\b"
|
|
21
|
+
- comment:
|
|
22
|
+
start: "//"
|
|
23
|
+
end: "$"
|
|
24
|
+
rules: []
|
|
25
|
+
- comment:
|
|
26
|
+
start: "/\\*"
|
|
27
|
+
end: "\\*/"
|
|
28
|
+
rules: []
|
|
29
|
+
- comment:
|
|
30
|
+
start: "/\\*\\*"
|
|
31
|
+
end: "\\*/"
|
|
32
|
+
rules: []
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
filetype: svelte
|
|
2
|
+
|
|
3
|
+
detect:
|
|
4
|
+
filename: "\\.svelte$"
|
|
5
|
+
|
|
6
|
+
rules:
|
|
7
|
+
- default:
|
|
8
|
+
start: "<script>"
|
|
9
|
+
end: "</script>"
|
|
10
|
+
rules:
|
|
11
|
+
- include: "javascript"
|
|
12
|
+
|
|
13
|
+
- default:
|
|
14
|
+
start: '<script lang="ts">'
|
|
15
|
+
end: "</script>"
|
|
16
|
+
rules:
|
|
17
|
+
- include: "typescript"
|
|
18
|
+
- default:
|
|
19
|
+
start: "<style.*?>"
|
|
20
|
+
end: "</style.*?>"
|
|
21
|
+
rules:
|
|
22
|
+
- include: "css"
|
|
23
|
+
- default:
|
|
24
|
+
start: "^"
|
|
25
|
+
end: "$"
|
|
26
|
+
rules:
|
|
27
|
+
- include: "html5"
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
filetype: swift
|
|
2
|
+
|
|
3
|
+
detect:
|
|
4
|
+
filename: "\\.swift$"
|
|
5
|
+
header: "^#!.*bin/(env +)?swift( |$)"
|
|
6
|
+
|
|
7
|
+
rules:
|
|
8
|
+
# Patterns
|
|
9
|
+
- type: \b(_)\b
|
|
10
|
+
|
|
11
|
+
# Operators
|
|
12
|
+
- symbol.operator: ([.:;,+*|=!?\\%]|<|>|/|-|&)
|
|
13
|
+
|
|
14
|
+
# Declaration Keywords
|
|
15
|
+
- statement.declaration: \b(associatedtype|class|deinit|enum|extension|fileprivate|func|import|init)\b
|
|
16
|
+
- statement.declaration: \b(inout|internal|let|open|operator|private|protocol|public|static|struct|subscript|typealias|var)\b
|
|
17
|
+
|
|
18
|
+
# Statements Keywords
|
|
19
|
+
- statement: \b(break|case|continue|default|defer|do|else|fallthrough|for|guard)\b
|
|
20
|
+
- statement: \b(if|inif|repeat|return|switch|where|while)\b
|
|
21
|
+
|
|
22
|
+
# keyword.reserved
|
|
23
|
+
- statement.reserved: \b(associativity|convenience|dynamic|didSet|final|get|infix|indirect|lazy|left|mutating)\b
|
|
24
|
+
- statement.reserved: \b(none|nonmutating|override|postfix|precedence|prefix|Protocol|required)\b
|
|
25
|
+
- statement.reserved: \b(right|set|Type|unowned|weak|willSet)\b
|
|
26
|
+
|
|
27
|
+
# Expression and types
|
|
28
|
+
- type: \b(as|Any|catch|is|rethrows|super|self|throw|throws|try)\b
|
|
29
|
+
|
|
30
|
+
- statement.built_in: \b(abs|advance|alignof|alignofValue|anyGenerator|assert|assertionFailure|bridgeFromObjectiveC)\b
|
|
31
|
+
- statement.built_in: \b(bridgeFromObjectiveCUnconditional|bridgeToObjectiveC|bridgeToObjectiveCUnconditional|contains)\b
|
|
32
|
+
- statement.built_in: \b(count|countElements|countLeadingZeros|debugPrint|debugPrintln|distance|dropFirst|dropLast|dump|encodeBitsAsWords)\b
|
|
33
|
+
- statement.built_in: \b(enumerate|equal|fatalError|filter|find|getBridgedObjectiveCType|getVaList|indices|insertionSort)\b
|
|
34
|
+
- statement.built_in: \b(isBridgedToObjectiveC|isBridgedVerbatimToObjectiveC|isUniquelyReferenced|isUniquelyReferencedNonObjC)\b
|
|
35
|
+
- statement.built_in: \b(join|lexicographicalCompare|map|max|maxElement|min|minElement|numericCast|overlaps|partition|posix)\b
|
|
36
|
+
- statement.built_in: \b(precondition|preconditionFailure|print|println|quickSort|readLine|reduce|reflect)\b
|
|
37
|
+
- statement.built_in: \b(reinterpretCast!reverse|roundUpToAlignment|sizeof|sizeofValue|sort|split|startsWith|stride)\b
|
|
38
|
+
- statement.built_in: \b(strideof|strideofValue|swap|toString|transcode|underestimateCount|unsafeAddressOf|unsafeBitCast)\b
|
|
39
|
+
- statement.built_in: \b(unsafeDowncast|unsafeUnwrap|unsafeReflect|withExtendedLifetime|withObjectAtPlusZero|withUnsafePointer)\b
|
|
40
|
+
- statement.built_in: \b(withUnsafePointerToObject|withUnsafeMutablePointer|withUnsafeMutablePointers|withUnsafePointer)\b
|
|
41
|
+
- statement.built_in: \b(withUnsafePointers|withVaList|zip)\b
|
|
42
|
+
|
|
43
|
+
# Meta
|
|
44
|
+
- statement.meta: \@\b(autoclosure|available|convention|exported|IBAction|IBDesignable|IBOutlet|IBInspectable|infix)\b
|
|
45
|
+
- statement.meta: \@\b(lazy|noreturn|noescape|nonobjc|NSApplicationMain|NSCopying|NSManaged|objc|prefix|postfix)\b
|
|
46
|
+
- statement.meta: \@\b(required|testable|warn_unused_result|UIApplicationMain)\b
|
|
47
|
+
|
|
48
|
+
#preprocessor
|
|
49
|
+
- preproc: ^[[:space:]]*#[[:space:]]*(define|else|elseif|endif|if|selector)\b
|
|
50
|
+
- preproc.DebugIdentifier: \b(__COLUMN__|__FILE__|__FUNCTION__|__LINE__)\b
|
|
51
|
+
- preproc.DebugIdentifier: ^[[:space:]]*#[[:space:]]*(column|file|function|line)\b
|
|
52
|
+
|
|
53
|
+
# Constant
|
|
54
|
+
- constant: \b(true|false|nil)
|
|
55
|
+
- constant.number: ([0-9]+)
|
|
56
|
+
|
|
57
|
+
# Storage Types
|
|
58
|
+
- type.storage: \b((U)?Int(8|16|32|64))\b
|
|
59
|
+
- type.storage: \b(Int|UInt|String|Bit|Bool|Character|Double|Optional|Float|Range)\b
|
|
60
|
+
- type.storage: \b(AnyObject)\b
|
|
61
|
+
|
|
62
|
+
# Collections
|
|
63
|
+
- type.collections: \b(Array|Dictionary|Set)\b
|
|
64
|
+
|
|
65
|
+
# Ctypes
|
|
66
|
+
- type.ctypes: \b(CBool|CChar|CUnsignedChar|CShort|CUnsignedShort|CInt|CUnsignedInt|CLong|CUnsignedLong|CLongLong|CUnsignedLongLong|CWideChar|CChar16|CChar32|CFloat|CDouble)\b
|
|
67
|
+
|
|
68
|
+
# String
|
|
69
|
+
- constant.string:
|
|
70
|
+
start: \"
|
|
71
|
+
end: \"
|
|
72
|
+
skip: \\.
|
|
73
|
+
rules:
|
|
74
|
+
- constant.specialChar: (\\0|\\\\|\\t|\\n|\\r|\\"|\\')
|
|
75
|
+
- constant.interpolation: \\\([[:graph:]]*\)
|
|
76
|
+
- constant.unicode: \\u\{[[:xdigit:]]+}
|
|
77
|
+
|
|
78
|
+
# Shebang Line
|
|
79
|
+
- comment.shebang: ^(#!).*
|
|
80
|
+
|
|
81
|
+
# Doc Comment
|
|
82
|
+
- comment.doc: (///).*
|
|
83
|
+
|
|
84
|
+
# Line Comment
|
|
85
|
+
- comment.line: "//.*"
|
|
86
|
+
|
|
87
|
+
# Block Comment
|
|
88
|
+
- comment.block:
|
|
89
|
+
start: "/\\*"
|
|
90
|
+
end: "\\*/"
|
|
91
|
+
rules:
|
|
92
|
+
- todo: "(TODO|XXX|FIXME):?"
|
|
93
|
+
|
|
94
|
+
# Doc Block Comment
|
|
95
|
+
- comment.block:
|
|
96
|
+
start: "/\\*\\*"
|
|
97
|
+
end: "\\*/"
|
|
98
|
+
rules:
|
|
99
|
+
- todo: "(TODO|XXX|FIXME):?"
|
|
100
|
+
|
|
101
|
+
# Todo
|
|
102
|
+
- todo: "(TODO|XXX|FIXME):?"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
filetype: vue
|
|
2
|
+
|
|
3
|
+
detect:
|
|
4
|
+
filename: "\\.vue$"
|
|
5
|
+
|
|
6
|
+
rules:
|
|
7
|
+
- default:
|
|
8
|
+
start: "<template.*?>"
|
|
9
|
+
end: "</template.*?>"
|
|
10
|
+
limit-group: symbol.tag
|
|
11
|
+
rules:
|
|
12
|
+
- error: "<[^!].*?>"
|
|
13
|
+
- symbol.tag: "(?i)<[/]?(a|a(bbr|ddress|rea|rticle|side|udio)|b|b(ase|d(i|o)|lockquote|r|utton)|ca(nvas|ption)|center|cite|co(de|l|lgroup)|d(ata|atalist|d|el|etails|fn|ialog|l|t)|em|embed|fieldset|fig(caption|ure)|form|iframe|h[1-6]|hr|i|img|in(put|s)|kbd|keygen|label|legend|li|link|ma(in|p|rk)|menu|menuitem|met(a|er)|nav|noscript|o(bject|l|pt(group|ion)|utput)|p|param|picture|pre|progress|q|r(p|t|uby)|s|samp|se(ction|lect)|svg|small|source|span|strong|su(b|p|mmary)|textarea|time|track|u|ul|var|video|wbr)( .*)*?>"
|
|
14
|
+
- symbol.tag.extended: "(?i)<[/]?(body|div|html|head(er)?|footer|title|table|t(body|d|h(ead)?|r|foot))( .*)*?>"
|
|
15
|
+
- preproc: "(?i)<[/]?(script|style)( .*)*?>"
|
|
16
|
+
- special: "&[^;[[:space:]]]*;"
|
|
17
|
+
|
|
18
|
+
- identifier: "(alt|bgcolor|class|height|href|id|label|longdesc|name|on(click|focus|load|mouseover)|placeholder|size|span|src|style|target|type|value|width)="
|
|
19
|
+
- symbol: "[:=]"
|
|
20
|
+
- constant.string: '"[^"]*"'
|
|
21
|
+
- constant.number: "(?i)#[0-9a-fA-F]{6,6}"
|
|
22
|
+
|
|
23
|
+
- symbol.tag: "<|>"
|
|
24
|
+
- constant.string.url: "(ftp(s)?|http(s)?|git|chrome)://[^ ]+"
|
|
25
|
+
- comment: "<!--.+?-->"
|
|
26
|
+
#- preproc: "<!DOCTYPE.+?>"
|
|
27
|
+
- comment.block:
|
|
28
|
+
start: "<!\\-\\-"
|
|
29
|
+
end: "\\-\\->"
|
|
30
|
+
rules: []
|
|
31
|
+
|
|
32
|
+
# Bootstrap
|
|
33
|
+
- symbol.tag.extended: "(?i)<[/]?(b-alert|b-aspect|b-avatar|b-badge|b-icon|b-breadcrumb|b-button-group|b-button-toolbar|b-button|b-calendar|b-card-text|b-card-input|b-card|b-carousel-slide|b-carousel|b-collapse|b-dropdown|b-dropdown-item|b-dropdown-divider|b-embed|b-form-checkbox-group|b-form-checkbox|b-form-datepicker|b-form-file|b-form-group|b-form-input|b-form-radio|b-form-rating|b-form-select|b-form-spinbutton|b-form-tags|b-form-textarea|b-form|b-form-timepicker|b-img-lazy|b-img|b-input-group|b-jumbotron|b-input|b-container|b-row|b-col|b-link|b-list-group|b-list-group-item|b-media|b-modal|b-nav|b-nav-item|b-nav-item-dropdown|b-nav-text|b-nav-form|b-navbar|b-navbar-brand|b-navbar-toggle|b-navbar-nav|b-overlay|b-pagination|b-pagination-nav|b-popover|b-progress|b-progress-bar|b-sidebar|b-skeleton-wrapper|b-skeleton|b-spinner|b-table|b-table-lite|b-table-simple|b-tabs|b-tab|b-time|b-toast|b-tooltip)\\b"
|
|
34
|
+
- identifier: "(variant|title|show|shadow|icon|align-h|align-v|label-for|@submit|tag|img-alt|img-src|data-toggle|data-target|aria-controls|aria-expanded|aria-label|aria-disabled|tabindex|:interval|background|img-width|img-height|@sliding-start|@sliding-end|cols|header|@reset)="
|
|
35
|
+
- symbol: "[:=]"
|
|
36
|
+
# Vue
|
|
37
|
+
- symbol.tag.extended: "(?i)<[/]?(component|transition|transition-group|keep-alive|slot)\\b"
|
|
38
|
+
- identifier: "(v-text|v-html|v-show|v-if|v-else|v-else-if|v-for|v-on|v-bind|v-model|v-slot|v-pre|v-cloak|v-once|key|ref|is|@click)="
|
|
39
|
+
- symbol: "[:=]"
|
|
40
|
+
# Vue-router
|
|
41
|
+
- symbol.tag.extended: "(?i)<[/]?(router-link|router-view)\\b"
|
|
42
|
+
- identifier: "(to|v-slot)="
|
|
43
|
+
- symbol: "[:=]"
|
|
44
|
+
|
|
45
|
+
- default:
|
|
46
|
+
start: "<script>"
|
|
47
|
+
end: "</script>"
|
|
48
|
+
limit-group: symbol.tag
|
|
49
|
+
rules:
|
|
50
|
+
- include: "javascript"
|
|
51
|
+
|
|
52
|
+
- default:
|
|
53
|
+
start: '<script[ ]+lang=("ts"|''ts'')>'
|
|
54
|
+
end: "</script>"
|
|
55
|
+
rules:
|
|
56
|
+
- include: "typescript"
|
|
57
|
+
|
|
58
|
+
- default:
|
|
59
|
+
start: "<style.*?>"
|
|
60
|
+
end: "</style.*?>"
|
|
61
|
+
limit-group: symbol.tag
|
|
62
|
+
rules:
|
|
63
|
+
- include: "css"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
filetype: xml
|
|
2
|
+
|
|
3
|
+
detect:
|
|
4
|
+
filename: "\\.(xml|sgml?|rng|svg|plist)$"
|
|
5
|
+
header: "<\\?xml.*\\?>"
|
|
6
|
+
|
|
7
|
+
rules:
|
|
8
|
+
- preproc:
|
|
9
|
+
start: "<!DOCTYPE"
|
|
10
|
+
end: "[/]?>"
|
|
11
|
+
rules: []
|
|
12
|
+
|
|
13
|
+
- comment:
|
|
14
|
+
start: "<!--"
|
|
15
|
+
end: "-->"
|
|
16
|
+
rules: []
|
|
17
|
+
|
|
18
|
+
- symbol.tag:
|
|
19
|
+
start: "<\\??"
|
|
20
|
+
end: "\\??>"
|
|
21
|
+
rules:
|
|
22
|
+
- identifier:
|
|
23
|
+
start: " "
|
|
24
|
+
end: "="
|
|
25
|
+
rules: []
|
|
26
|
+
- constant.string:
|
|
27
|
+
start: '"'
|
|
28
|
+
end: '"'
|
|
29
|
+
skip: "\\\\."
|
|
30
|
+
rules:
|
|
31
|
+
- constant.specialChar: "\\\\."
|
|
32
|
+
- constant.string:
|
|
33
|
+
start: "'"
|
|
34
|
+
end: "'"
|
|
35
|
+
skip: "\\\\."
|
|
36
|
+
rules:
|
|
37
|
+
- constant.specialChar: "\\\\."
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
filetype: zig
|
|
2
|
+
|
|
3
|
+
detect:
|
|
4
|
+
filename: "\\.z(ig|on)$"
|
|
5
|
+
|
|
6
|
+
rules:
|
|
7
|
+
# Reserved words
|
|
8
|
+
- statement: "\\b(addrspace|align|allowzero|and|asm|async|await|break|callconv|catch|comptime|const|continue|defer|else|errdefer|error|export|extern|fn|for|if|inline|noalias|noinline|nosuspend|or|orelse|packed|pub|resume|return|linksection|suspend|switch|test|threadlocal|try|unreachable|usingnamespace|var|volatile|while)\\b"
|
|
9
|
+
# builtin functions
|
|
10
|
+
- special: "@[a-zA-Z_]+"
|
|
11
|
+
# Primitive Types
|
|
12
|
+
- type: "\\b(anyframe|anytype|anyerror|anyopaque|bool|comptime_int|comptime_float|enum|f(16|32|64|80|128)|i(8|16|32|64|128)|isize|noreturn|opaque|struct|type|union|u(8|16|32|64|128)|usize|void)\\b"
|
|
13
|
+
- type: "\\b(c_u?(short|int|long(long)?)|c_longdouble|c_void)\\b"
|
|
14
|
+
|
|
15
|
+
# Operators
|
|
16
|
+
- symbol.operator: "[-!|=;%.+^*:&?<>~]"
|
|
17
|
+
|
|
18
|
+
# Parenthesis
|
|
19
|
+
- symbol.brackets: "[(){}]|\\[|\\]"
|
|
20
|
+
|
|
21
|
+
# Constants
|
|
22
|
+
- constant: "\\b(null|undefined)\\b"
|
|
23
|
+
- constant.number: "\\b(0b[01_]+|0o[0-7_]+|[0-9_]+|0x[a-fA-F0-9_]+)\\b"
|
|
24
|
+
- constant.bool: "\\b(true|false)\\b"
|
|
25
|
+
|
|
26
|
+
- constant.string:
|
|
27
|
+
start: '"'
|
|
28
|
+
end: '"'
|
|
29
|
+
skip: "\\\\."
|
|
30
|
+
rules:
|
|
31
|
+
- constant.specialChar: "\\\\([nrt\\\\'\"]|x[a-fA-F0-9]{2}|u{[a-fA-F0-9]+})"
|
|
32
|
+
|
|
33
|
+
- constant.string:
|
|
34
|
+
start: "'"
|
|
35
|
+
end: "'"
|
|
36
|
+
skip: "\\\\."
|
|
37
|
+
rules:
|
|
38
|
+
- error: "..+"
|
|
39
|
+
- constant.specialChar: "\\\\([nrt\\\\'\"]|x[a-fA-F0-9]{2}|u{[a-fA-F0-9]+})"
|
|
40
|
+
|
|
41
|
+
- constant.string:
|
|
42
|
+
start: "\\\\\\\\"
|
|
43
|
+
end: "$"
|
|
44
|
+
skip: "\\\\."
|
|
45
|
+
rules:
|
|
46
|
+
- constant.specialChar: "\\\\([nrt\\\\'\"]|x[a-fA-F0-9]{2}|u{[a-fA-F0-9]+})"
|
|
47
|
+
|
|
48
|
+
- comment:
|
|
49
|
+
start: "//"
|
|
50
|
+
end: "$"
|
|
51
|
+
rules:
|
|
52
|
+
- todo: "(TODO|XXX|FIXME):?"
|