jsmdcui 0.3.0

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.
Files changed (258) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/LICENSE +22 -0
  3. package/README.md +285 -0
  4. package/package.json +17 -0
  5. package/project_structure.txt +35 -0
  6. package/runmd.mjs +240 -0
  7. package/runtime/colorschemes/atom-dark.micro +33 -0
  8. package/runtime/colorschemes/bubblegum.micro +31 -0
  9. package/runtime/colorschemes/cmc-16.micro +47 -0
  10. package/runtime/colorschemes/cmc-tc.micro +43 -0
  11. package/runtime/colorschemes/darcula.micro +34 -0
  12. package/runtime/colorschemes/default.micro +1 -0
  13. package/runtime/colorschemes/dracula-tc.micro +49 -0
  14. package/runtime/colorschemes/dukedark-tc.micro +38 -0
  15. package/runtime/colorschemes/dukelight-tc.micro +38 -0
  16. package/runtime/colorschemes/dukeubuntu-tc.micro +38 -0
  17. package/runtime/colorschemes/geany.micro +29 -0
  18. package/runtime/colorschemes/gotham.micro +29 -0
  19. package/runtime/colorschemes/gruvbox-tc.micro +29 -0
  20. package/runtime/colorschemes/gruvbox.micro +26 -0
  21. package/runtime/colorschemes/material-tc.micro +36 -0
  22. package/runtime/colorschemes/monokai-dark.micro +28 -0
  23. package/runtime/colorschemes/monokai.micro +34 -0
  24. package/runtime/colorschemes/one-dark.micro +39 -0
  25. package/runtime/colorschemes/railscast.micro +37 -0
  26. package/runtime/colorschemes/simple.micro +33 -0
  27. package/runtime/colorschemes/solarized-tc.micro +31 -0
  28. package/runtime/colorschemes/solarized.micro +30 -0
  29. package/runtime/colorschemes/sunny-day.micro +29 -0
  30. package/runtime/colorschemes/twilight.micro +40 -0
  31. package/runtime/colorschemes/zenburn.micro +30 -0
  32. package/runtime/help/actions.md +161 -0
  33. package/runtime/help/cdp.md +119 -0
  34. package/runtime/help/colors.md +421 -0
  35. package/runtime/help/commands.md +161 -0
  36. package/runtime/help/copypaste.md +149 -0
  37. package/runtime/help/defaultkeys.md +148 -0
  38. package/runtime/help/help.md +285 -0
  39. package/runtime/help/keybindings.md +355 -0
  40. package/runtime/help/linter.md +90 -0
  41. package/runtime/help/options.md +709 -0
  42. package/runtime/help/plugins.md +544 -0
  43. package/runtime/help/tutorial.md +112 -0
  44. package/runtime/jsplugins/cdp/cdp-server.js +1161 -0
  45. package/runtime/jsplugins/cdp/cdp.js +192 -0
  46. package/runtime/jsplugins/chapter/chapter.js +108 -0
  47. package/runtime/jsplugins/diff/diff.js +46 -0
  48. package/runtime/jsplugins/example/example.js +110 -0
  49. package/runtime/jsplugins/linter/linter.js +281 -0
  50. package/runtime/plugins/autoclose/autoclose.lua +75 -0
  51. package/runtime/plugins/ftoptions/ftoptions.lua +17 -0
  52. package/runtime/plugins/literate/README.md +5 -0
  53. package/runtime/plugins/literate/literate.lua +55 -0
  54. package/runtime/plugins/status/help/status.md +21 -0
  55. package/runtime/plugins/status/status.lua +62 -0
  56. package/runtime/syntax/LICENSE +22 -0
  57. package/runtime/syntax/PowerShell.yaml +128 -0
  58. package/runtime/syntax/README.md +63 -0
  59. package/runtime/syntax/ada.yaml +43 -0
  60. package/runtime/syntax/apacheconf.yaml +59 -0
  61. package/runtime/syntax/arduino.yaml +101 -0
  62. package/runtime/syntax/asciidoc.yaml +51 -0
  63. package/runtime/syntax/asm.yaml +123 -0
  64. package/runtime/syntax/ats.yaml +99 -0
  65. package/runtime/syntax/awk.yaml +44 -0
  66. package/runtime/syntax/b.yaml +87 -0
  67. package/runtime/syntax/bat.yaml +57 -0
  68. package/runtime/syntax/c.yaml +60 -0
  69. package/runtime/syntax/caddyfile.yaml +23 -0
  70. package/runtime/syntax/cake.yaml +7 -0
  71. package/runtime/syntax/clojure.yaml +38 -0
  72. package/runtime/syntax/cmake.yaml +42 -0
  73. package/runtime/syntax/coffeescript.yaml +56 -0
  74. package/runtime/syntax/colortest.yaml +19 -0
  75. package/runtime/syntax/conky.yaml +17 -0
  76. package/runtime/syntax/cpp.yaml +91 -0
  77. package/runtime/syntax/crontab.yaml +36 -0
  78. package/runtime/syntax/crystal.yaml +72 -0
  79. package/runtime/syntax/csharp.yaml +52 -0
  80. package/runtime/syntax/css.yaml +44 -0
  81. package/runtime/syntax/csx.yaml +8 -0
  82. package/runtime/syntax/cuda.yaml +68 -0
  83. package/runtime/syntax/cython.yaml +52 -0
  84. package/runtime/syntax/d.yaml +121 -0
  85. package/runtime/syntax/dart.yaml +46 -0
  86. package/runtime/syntax/default.yaml +10 -0
  87. package/runtime/syntax/dockerfile.yaml +36 -0
  88. package/runtime/syntax/dot.yaml +29 -0
  89. package/runtime/syntax/elixir.yaml +30 -0
  90. package/runtime/syntax/elm.yaml +38 -0
  91. package/runtime/syntax/erb.yaml +42 -0
  92. package/runtime/syntax/erlang.yaml +45 -0
  93. package/runtime/syntax/fish.yaml +48 -0
  94. package/runtime/syntax/forth.yaml +34 -0
  95. package/runtime/syntax/fortran.yaml +64 -0
  96. package/runtime/syntax/freebsd-kernel.yaml +14 -0
  97. package/runtime/syntax/fsharp.yaml +48 -0
  98. package/runtime/syntax/gdscript.yaml +61 -0
  99. package/runtime/syntax/gemini.yaml +19 -0
  100. package/runtime/syntax/gentoo-ebuild.yaml +48 -0
  101. package/runtime/syntax/gentoo-etc-portage.yaml +23 -0
  102. package/runtime/syntax/git-commit.yaml +35 -0
  103. package/runtime/syntax/git-config.yaml +14 -0
  104. package/runtime/syntax/git-rebase-todo.yaml +19 -0
  105. package/runtime/syntax/gleam.yaml +69 -0
  106. package/runtime/syntax/glsl.yaml +26 -0
  107. package/runtime/syntax/gnuplot.yaml +15 -0
  108. package/runtime/syntax/go.yaml +62 -0
  109. package/runtime/syntax/godoc.yaml +17 -0
  110. package/runtime/syntax/golo.yaml +73 -0
  111. package/runtime/syntax/gomod.yaml +31 -0
  112. package/runtime/syntax/graphql.yaml +47 -0
  113. package/runtime/syntax/groff.yaml +30 -0
  114. package/runtime/syntax/groovy.yaml +111 -0
  115. package/runtime/syntax/haml.yaml +16 -0
  116. package/runtime/syntax/hare.yaml +52 -0
  117. package/runtime/syntax/haskell.yaml +52 -0
  118. package/runtime/syntax/hc.yaml +52 -0
  119. package/runtime/syntax/html.yaml +70 -0
  120. package/runtime/syntax/html4.yaml +25 -0
  121. package/runtime/syntax/html5.yaml +25 -0
  122. package/runtime/syntax/ini.yaml +23 -0
  123. package/runtime/syntax/inputrc.yaml +14 -0
  124. package/runtime/syntax/java.yaml +37 -0
  125. package/runtime/syntax/javascript.yaml +124 -0
  126. package/runtime/syntax/jinja2.yaml +19 -0
  127. package/runtime/syntax/json.yaml +39 -0
  128. package/runtime/syntax/jsonnet.yaml +92 -0
  129. package/runtime/syntax/julia.yaml +57 -0
  130. package/runtime/syntax/justfile.yaml +40 -0
  131. package/runtime/syntax/keymap.yaml +27 -0
  132. package/runtime/syntax/kickstart.yaml +16 -0
  133. package/runtime/syntax/kotlin.yaml +66 -0
  134. package/runtime/syntax/kvlang.yaml +67 -0
  135. package/runtime/syntax/ledger.yaml +14 -0
  136. package/runtime/syntax/lfe.yaml +17 -0
  137. package/runtime/syntax/lilypond.yaml +26 -0
  138. package/runtime/syntax/lisp.yaml +17 -0
  139. package/runtime/syntax/log.yaml +92 -0
  140. package/runtime/syntax/lua.yaml +111 -0
  141. package/runtime/syntax/mail.yaml +25 -0
  142. package/runtime/syntax/makefile.yaml +38 -0
  143. package/runtime/syntax/man.yaml +12 -0
  144. package/runtime/syntax/markdown.yaml +49 -0
  145. package/runtime/syntax/mc.yaml +23 -0
  146. package/runtime/syntax/meson.yaml +51 -0
  147. package/runtime/syntax/micro.yaml +34 -0
  148. package/runtime/syntax/mpdconf.yaml +13 -0
  149. package/runtime/syntax/msbuild.yaml +6 -0
  150. package/runtime/syntax/nanorc.yaml +16 -0
  151. package/runtime/syntax/nftables.yaml +30 -0
  152. package/runtime/syntax/nginx.yaml +22 -0
  153. package/runtime/syntax/nim.yaml +27 -0
  154. package/runtime/syntax/nix.yaml +32 -0
  155. package/runtime/syntax/nu.yaml +114 -0
  156. package/runtime/syntax/objc.yaml +60 -0
  157. package/runtime/syntax/ocaml.yaml +43 -0
  158. package/runtime/syntax/octave.yaml +83 -0
  159. package/runtime/syntax/odin.yaml +64 -0
  160. package/runtime/syntax/pascal.yaml +45 -0
  161. package/runtime/syntax/patch.yaml +14 -0
  162. package/runtime/syntax/peg.yaml +16 -0
  163. package/runtime/syntax/perl.yaml +58 -0
  164. package/runtime/syntax/php.yaml +60 -0
  165. package/runtime/syntax/pkg-config.yaml +12 -0
  166. package/runtime/syntax/po.yaml +12 -0
  167. package/runtime/syntax/pony.yaml +37 -0
  168. package/runtime/syntax/pov.yaml +21 -0
  169. package/runtime/syntax/privoxy-action.yaml +14 -0
  170. package/runtime/syntax/privoxy-config.yaml +10 -0
  171. package/runtime/syntax/privoxy-filter.yaml +12 -0
  172. package/runtime/syntax/proto.yaml +40 -0
  173. package/runtime/syntax/prql.yaml +84 -0
  174. package/runtime/syntax/puppet.yaml +22 -0
  175. package/runtime/syntax/python2.yaml +60 -0
  176. package/runtime/syntax/python3.yaml +80 -0
  177. package/runtime/syntax/r.yaml +32 -0
  178. package/runtime/syntax/raku.yaml +42 -0
  179. package/runtime/syntax/reST.yaml +18 -0
  180. package/runtime/syntax/renpy.yaml +15 -0
  181. package/runtime/syntax/rpmspec.yaml +43 -0
  182. package/runtime/syntax/ruby.yaml +73 -0
  183. package/runtime/syntax/rust.yaml +78 -0
  184. package/runtime/syntax/sage.yaml +60 -0
  185. package/runtime/syntax/scad.yaml +53 -0
  186. package/runtime/syntax/scala.yaml +33 -0
  187. package/runtime/syntax/sed.yaml +13 -0
  188. package/runtime/syntax/sh.yaml +69 -0
  189. package/runtime/syntax/sls.yaml +15 -0
  190. package/runtime/syntax/smalltalk.yaml +55 -0
  191. package/runtime/syntax/solidity.yaml +41 -0
  192. package/runtime/syntax/sql.yaml +35 -0
  193. package/runtime/syntax/stata.yaml +67 -0
  194. package/runtime/syntax/svelte.yaml +27 -0
  195. package/runtime/syntax/swift.yaml +103 -0
  196. package/runtime/syntax/systemd.yaml +16 -0
  197. package/runtime/syntax/tcl.yaml +18 -0
  198. package/runtime/syntax/terraform.yaml +87 -0
  199. package/runtime/syntax/tex.yaml +32 -0
  200. package/runtime/syntax/toml.yaml +56 -0
  201. package/runtime/syntax/twig.yaml +55 -0
  202. package/runtime/syntax/typescript.yaml +49 -0
  203. package/runtime/syntax/v.yaml +80 -0
  204. package/runtime/syntax/vala.yaml +26 -0
  205. package/runtime/syntax/verilog.yaml +60 -0
  206. package/runtime/syntax/vhdl.yaml +37 -0
  207. package/runtime/syntax/vi.yaml +31 -0
  208. package/runtime/syntax/vue.yaml +64 -0
  209. package/runtime/syntax/xml.yaml +37 -0
  210. package/runtime/syntax/xresources.yaml +14 -0
  211. package/runtime/syntax/yaml.yaml +34 -0
  212. package/runtime/syntax/yum.yaml +12 -0
  213. package/runtime/syntax/zig.yaml +52 -0
  214. package/runtime/syntax/zscript.yaml +72 -0
  215. package/runtime/syntax/zsh.yaml +52 -0
  216. package/single-exe/README.md +80 -0
  217. package/single-exe/assetsHelper.js +90 -0
  218. package/single-exe/assetsLoader.mjs +85 -0
  219. package/single-exe/compiled.js +149 -0
  220. package/single-exe/entry.mjs +9 -0
  221. package/single-exe/packAssets.sh +7 -0
  222. package/src/buffer/backup.js +160 -0
  223. package/src/buffer/buffer.js +126 -0
  224. package/src/buffer/fixed3-codec.js +140 -0
  225. package/src/buffer/loc.js +38 -0
  226. package/src/buffer/message.js +29 -0
  227. package/src/config/clean.js +172 -0
  228. package/src/config/colorscheme.js +99 -0
  229. package/src/config/config.js +122 -0
  230. package/src/config/defaults.js +109 -0
  231. package/src/cui/rpc.mjs +259 -0
  232. package/src/cui/server.mjs +116 -0
  233. package/src/display/ansi-style.js +60 -0
  234. package/src/highlight/highlighter.js +243 -0
  235. package/src/highlight/parser.js +225 -0
  236. package/src/index.js +8009 -0
  237. package/src/lua/engine.js +71 -0
  238. package/src/platform/archive.js +50 -0
  239. package/src/platform/clipboard.js +278 -0
  240. package/src/platform/commands.js +137 -0
  241. package/src/plugins/js-bridge.js +983 -0
  242. package/src/plugins/manager.js +674 -0
  243. package/src/runtime/assets.js +90 -0
  244. package/src/runtime/compiled.js +25 -0
  245. package/src/runtime/encodings.js +10 -0
  246. package/src/runtime/registry.js +134 -0
  247. package/src/screen/cell-buffer.js +81 -0
  248. package/src/screen/events.js +263 -0
  249. package/src/screen/screen.js +142 -0
  250. package/src/screen/vt100.js +571 -0
  251. package/src/shell/shell.js +70 -0
  252. package/testapp.md +55 -0
  253. package/tests/backup.test.js +133 -0
  254. package/tests/cmphex3b64.js +95 -0
  255. package/tests/pty-demo.js +492 -0
  256. package/tests/wv-client.js +96 -0
  257. package/tui +5 -0
  258. package/wui +5 -0
@@ -0,0 +1,124 @@
1
+ filetype: javascript
2
+
3
+ detect:
4
+ filename: "(\\.(m|c)?js$|\\.es[5678]?$)"
5
+ header: "^#!.*/(env +)?(bun|node)( |$)"
6
+ # console
7
+ rules:
8
+ - constant.number: "\\b[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\\b"
9
+ - constant.number: "\\b[-+]?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?"
10
+ - constant.number: "\\b[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?"
11
+ #- identifier: "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
12
+ # ^ this is not correct usage of the identifier color
13
+ - symbol.brackets: "[(){}]|\\[|\\]"
14
+ - symbol.operator: "([-+/*=<>!~%?:&|]|[.]{3})"
15
+ - statement: "\\b(async|await|break|case|catch|const|continue|debugger|default)\\b"
16
+ - statement: "\\b(delete|do|else|export|finally|for|function\\*?|class|extends)\\b"
17
+ - statement: "\\b(get|if|import|from|in|of|instanceof|let|new|reject|resolve|return)\\b"
18
+ - statement: "\\b(set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b"
19
+ # reserved but unassigned
20
+ - error: "\\b(enum|implements|interface|package|private|protected|public)\\b"
21
+ - constant: "\\b(globalThis|Infinity|null|undefined|NaN)\\b"
22
+ - constant: "\\b(null|undefined|NaN)\\b"
23
+ - constant: "\\b(true|false)\\b"
24
+ - type: "\\b(Array|Boolean|Date|Enumerator|Error|Function|Generator|Map|Math)\\b"
25
+ - type: "\\b(Number|Object|Promise|Proxy|Reflect|RegExp|Set|String|Symbol|WeakMap|WeakSet)\\b"
26
+ - type: "\\b(BigInt64Array|BigUint64Array|Float32Array|Float64Array|Int16Array)\\b"
27
+
28
+ # - constant: "/[^*]([^/]|(\\\\/))*[^\\\\]/[gim]*"
29
+ - constant: "\\\\[0-7][0-7]?[0-7]?|\\\\x[0-9a-fA-F]+|\\\\[bfnrt'\"\\?\\\\]"
30
+ - comment: "^#!.*/(env +)?(bun|node)( |$)"
31
+
32
+ - identifier: "\\b(alert|decodeURI|decodeURIComponent|document|encodeURI|encodeURIComponent|escape|eval|isFinite|isNaN|parseFloat|parseInt|unescape|uneval|window)\\b"
33
+ - identifier: "\\b(Intl|WebAssembly)\\b"
34
+ - identifier: "\\b(Arguments)\\b"
35
+
36
+
37
+ - constant.string:
38
+ start: "\""
39
+ end: "\""
40
+ skip: "\\\\."
41
+ rules:
42
+ - constant.specialChar: "\\\\."
43
+
44
+ - constant.string:
45
+ start: "'"
46
+ end: "'"
47
+ skip: "\\\\."
48
+ rules:
49
+ - constant.specialChar: "\\\\."
50
+
51
+ - constant.string:
52
+ start: "`"
53
+ end: "`"
54
+ rules:
55
+ - constant.specialChar: "\\\\."
56
+ - identifier: "\\x24\\{.*?\\}"
57
+
58
+ - constant.bool: "\\b(true|false)\\b"
59
+ - constant.bool.false: "\\b(false)\\b"
60
+ - constant.bool.true: "\\b(true)\\b"
61
+
62
+ - comment:
63
+ start: "//"
64
+ end: "$"
65
+ rules:
66
+ - todo: "(TODO|XXX|FIXME)"
67
+
68
+ - comment:
69
+ start: "/\\*"
70
+ end: "\\*/"
71
+ skip: "\\\\."
72
+ rules:
73
+ - constant.specialChar: "\\\\."
74
+ # function documentation
75
+ - identifier: "\\s\\*\\s.*"
76
+ - todo: "(TODO|XXX|FIXME)"
77
+
78
+ # autocomplete-reference: Object constructor/static properties and methods (MDN Object)
79
+ # Object.length Object.name Object.prototype Object.assign Object.create Object.defineProperties Object.defineProperty Object.entries Object.freeze Object.fromEntries Object.getOwnPropertyDescriptor Object.getOwnPropertyDescriptors Object.getOwnPropertyNames Object.getOwnPropertySymbols Object.getPrototypeOf Object.groupBy Object.hasOwn Object.is Object.isExtensible Object.isFrozen Object.isSealed Object.keys Object.preventExtensions Object.seal Object.setPrototypeOf Object.values
80
+ # autocomplete-reference: Object.prototype properties and methods (MDN Object)
81
+ # Object.prototype.__proto__ Object.prototype.constructor Object.prototype.__defineGetter__ Object.prototype.__defineSetter__ Object.prototype.__lookupGetter__ Object.prototype.__lookupSetter__ Object.prototype.hasOwnProperty Object.prototype.isPrototypeOf Object.prototype.propertyIsEnumerable Object.prototype.toLocaleString Object.prototype.toString Object.prototype.valueOf
82
+
83
+
84
+ # autocomplete-reference: ECMAScript standard built-ins (MDN Global_Objects)
85
+ # globalThis Infinity NaN undefined eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape
86
+ # Object Function Boolean Symbol Error AggregateError EvalError RangeError ReferenceError SuppressedError SyntaxError TypeError URIError InternalError
87
+ # Number BigInt Math Date Temporal String RegExp
88
+ # Array TypedArray Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array BigInt64Array BigUint64Array Float16Array Float32Array Float64Array
89
+ # Map Set WeakMap WeakSet ArrayBuffer SharedArrayBuffer DataView Atomics JSON stringify parse WeakRef FinalizationRegistry
90
+ # Iterator AsyncIterator Promise GeneratorFunction AsyncGeneratorFunction Generator AsyncGenerator AsyncFunction DisposableStack AsyncDisposableStack
91
+ # Reflect Proxy Intl Collator DateTimeFormat DisplayNames DurationFormat ListFormat Locale NumberFormat PluralRules RelativeTimeFormat Segmenter
92
+ # autocomplete-reference: Browser globals and Web API interfaces (MDN Web/API)
93
+ # window self globalThis document navigator location history screen frames parent top opener origin name status closed crossOriginIsolated isSecureContext customElements visualViewport
94
+ # localStorage sessionStorage indexedDB caches cookieStore scheduler trustedTypes performance crypto console
95
+ # alert confirm prompt print open close focus blur stop find scroll scrollTo scrollBy scrollX scrollY moveTo moveBy resizeTo resizeBy
96
+ # getComputedStyle matchMedia requestAnimationFrame cancelAnimationFrame requestIdleCallback cancelIdleCallback structuredClone postMessage dispatchEvent addEventListener removeEventListener
97
+ # fetch setTimeout clearTimeout setInterval clearInterval queueMicrotask atob btoa createImageBitmap reportError
98
+ # AbortController AbortSignal AbstractRange AnalyserNode Animation AnimationEffect AnimationEvent AnimationPlaybackEvent AnimationTimeline Attr Audio AudioBuffer AudioBufferSourceNode AudioContext AudioData AudioDecoder AudioDestinationNode AudioEncoder AudioListener AudioNode AudioParam AudioParamMap AudioProcessingEvent AudioScheduledSourceNode AudioSinkInfo AudioWorklet AudioWorkletGlobalScope AudioWorkletNode AudioWorkletProcessor AuthenticatorAssertionResponse AuthenticatorAttestationResponse AuthenticatorResponse
99
+ # BarcodeDetector BatteryManager BeforeUnloadEvent BiquadFilterNode Blob BlobEvent Bluetooth BluetoothAdvertisingEvent BluetoothCharacteristicProperties BluetoothDevice BluetoothRemoteGATTCharacteristic BluetoothRemoteGATTDescriptor BluetoothRemoteGATTServer BluetoothRemoteGATTService BluetoothUUID BroadcastChannel BrowserCaptureMediaStreamTrack ByteLengthQueuingStrategy
100
+ # CSS CSSAnimation CSSConditionRule CSSContainerRule CSSCounterStyleRule CSSFontFaceRule CSSFontFeatureValuesRule CSSFontPaletteValuesRule CSSGroupingRule CSSImageValue CSSImportRule CSSKeyframeRule CSSKeyframesRule CSSKeywordValue CSSLayerBlockRule CSSLayerStatementRule CSSMathClamp CSSMathInvert CSSMathMax CSSMathMin CSSMathNegate CSSMathProduct CSSMathSum CSSMathValue CSSMatrixComponent CSSMediaRule CSSNamespaceRule CSSNumericArray CSSNumericValue CSSPageRule CSSPerspective CSSPositionValue CSSPropertyRule CSSRotate CSSRule CSSRuleList CSSScale CSSScopeRule CSSSkew CSSSkewX CSSSkewY CSSStartingStyleRule CSSStyleDeclaration CSSStyleRule CSSStyleSheet CSSStyleValue CSSSupportsRule CSSTransformComponent CSSTransformValue CSSTransition CSSTranslate CSSUnitValue CSSUnparsedValue CSSVariableReferenceValue
101
+ # Cache CacheStorage CanvasCaptureMediaStreamTrack CanvasGradient CanvasPattern CanvasRenderingContext2D CaptureController CaretPosition ChannelMergerNode ChannelSplitterNode CharacterData Clipboard ClipboardEvent ClipboardItem CloseEvent Comment CompositionEvent CompressionStream ConstantSourceNode ContentVisibilityAutoStateChangeEvent ConvolverNode CountQueuingStrategy Credential CredentialsContainer Crypto CryptoKey CustomElementRegistry CustomEvent
102
+ # DOMError DOMException DOMImplementation DOMMatrix DOMMatrixReadOnly DOMParser DOMPoint DOMPointReadOnly DOMQuad DOMRect DOMRectReadOnly DOMStringList DOMStringMap DOMTokenList DataTransfer DataTransferItem DataTransferItemList DecompressionStream DelayNode DeviceMotionEvent DeviceOrientationEvent DevicePosture DirectoryEntry DirectoryReader Document DocumentFragment DocumentPictureInPicture DocumentPictureInPictureEvent DocumentType DragEvent DynamicsCompressorNode
103
+ # EditContext Element ElementInternals EncodedAudioChunk EncodedVideoChunk ErrorEvent Event EventCounts EventSource EventTarget ExtendableCookieChangeEvent ExtendableEvent EyeDropper
104
+ # FeaturePolicy FederatedCredential Fence File FileList FileReader FileSystem FileSystemDirectoryEntry FileSystemDirectoryHandle FileSystemDirectoryReader FileSystemEntry FileSystemFileEntry FileSystemFileHandle FileSystemHandle FileSystemObserver FileSystemSyncAccessHandle FileSystemWritableFileStream FocusEvent FontData FontFace FontFaceSet FontFaceSetLoadEvent FormData FormDataEvent
105
+ # GPU GPUAdapter GPUAdapterInfo GPUBindGroup GPUBindGroupLayout GPUBuffer GPUCanvasContext GPUCommandBuffer GPUCommandEncoder GPUCompilationInfo GPUCompilationMessage GPUComputePassEncoder GPUComputePipeline GPUDevice GPUDeviceLostInfo GPUError GPUExternalTexture GPUInternalError GPUMapMode GPUOutOfMemoryError GPUPipelineError GPUPipelineLayout GPUQuerySet GPUQueue GPURenderBundle GPURenderBundleEncoder GPURenderPassEncoder GPURenderPipeline GPUSampler GPUShaderModule GPUSupportedFeatures GPUSupportedLimits GPUTexture GPUTextureView GPUUncapturedErrorEvent GPUValidationError Gamepad GamepadButton GamepadEvent GamepadHapticActuator Geolocation GeolocationCoordinates GeolocationPosition GeolocationPositionError GravitySensor Gyroscope
106
+ # HTMLAllCollection HTMLAnchorElement HTMLAreaElement HTMLAudioElement HTMLBRElement HTMLBaseElement HTMLBodyElement HTMLButtonElement HTMLCanvasElement HTMLCollection HTMLDListElement HTMLDataElement HTMLDataListElement HTMLDetailsElement HTMLDialogElement HTMLDivElement HTMLDocument HTMLElement HTMLEmbedElement HTMLFencedFrameElement HTMLFieldSetElement HTMLFontElement HTMLFormControlsCollection HTMLFormElement HTMLFrameElement HTMLFrameSetElement HTMLHRElement HTMLHeadElement HTMLHeadingElement HTMLHtmlElement HTMLIFrameElement HTMLImageElement HTMLInputElement HTMLLIElement HTMLLabelElement HTMLLegendElement HTMLLinkElement HTMLMapElement HTMLMarqueeElement HTMLMediaElement HTMLMenuElement HTMLMetaElement HTMLMeterElement HTMLModElement HTMLOListElement HTMLObjectElement HTMLOptGroupElement HTMLOptionElement HTMLOptionsCollection HTMLOutputElement HTMLParagraphElement HTMLParamElement HTMLPictureElement HTMLPreElement HTMLProgressElement HTMLQuoteElement HTMLScriptElement HTMLSelectElement HTMLSelectedContentElement HTMLSlotElement HTMLSourceElement HTMLSpanElement HTMLStyleElement HTMLTableCaptionElement HTMLTableCellElement HTMLTableColElement HTMLTableElement HTMLTableRowElement HTMLTableSectionElement HTMLTemplateElement HTMLTextAreaElement HTMLTimeElement HTMLTitleElement HTMLTrackElement HTMLUListElement HTMLUnknownElement HTMLVideoElement Headers Highlight HighlightRegistry History IDBCursor IDBCursorWithValue IDBDatabase IDBFactory IDBIndex IDBKeyRange IDBObjectStore IDBOpenDBRequest IDBRequest IDBTransaction IDBVersionChangeEvent IdleDeadline ImageBitmap ImageBitmapRenderingContext ImageCapture ImageData ImageDecoder ImageTrack ImageTrackList Ink InputDeviceCapabilities InputDeviceInfo InputEvent InstallEvent IntersectionObserver IntersectionObserverEntry
107
+ # Keyboard KeyboardEvent KeyboardLayoutMap KeyframeEffect LanguageDetector LargestContentfulPaint LaunchParams LaunchQueue LayoutShift LayoutShiftAttribution LinearAccelerationSensor Location Lock LockManager Magnetometer ManagedMediaSource ManagedSourceBuffer MathMLElement MediaCapabilities MediaDeviceInfo MediaDevices MediaElementAudioSourceNode MediaEncryptedEvent MediaError MediaKeyMessageEvent MediaKeys MediaKeySession MediaKeyStatusMap MediaKeySystemAccess MediaList MediaMetadata MediaQueryList MediaQueryListEvent MediaRecorder MediaRecorderErrorEvent MediaSession MediaSource MediaSourceHandle MediaStream MediaStreamAudioDestinationNode MediaStreamAudioSourceNode MediaStreamEvent MediaStreamTrack MediaStreamTrackAudioSourceNode MediaStreamTrackEvent MediaStreamTrackGenerator MediaStreamTrackProcessor MediaTrackConstraints MediaTrackSettings MediaTrackSupportedConstraints MessageChannel MessageEvent MessagePort MIDIAccess MIDIConnectionEvent MIDIInput MIDIInputMap MIDIMessageEvent MIDIOutput MIDIOutputMap MIDIPort MimeType MimeTypeArray MouseEvent MutationEvent MutationObserver MutationRecord
108
+ # NamedNodeMap NavigateEvent Navigation NavigationActivation NavigationCurrentEntryChangeEvent NavigationDestination NavigationHistoryEntry NavigationPrecommitController NavigationPreloadManager NavigationTransition Navigator NavigatorLogin NavigatorUAData NDEFMessage NDEFReader NDEFReadingEvent NDEFRecord NetworkInformation Node NodeIterator NodeList Notification NotificationEvent OffscreenCanvas OfflineAudioCompletionEvent OfflineAudioContext OrientationSensor OscillatorNode OverconstrainedError PageRevealEvent PageSwapEvent PageTransitionEvent PannerNode PasswordCredential Path2D PaymentAddress PaymentMethodChangeEvent PaymentRequest PaymentRequestUpdateEvent PaymentResponse Performance PerformanceElementTiming PerformanceEntry PerformanceEventTiming PerformanceLongAnimationFrameTiming PerformanceLongTaskTiming PerformanceMark PerformanceMeasure PerformanceNavigationTiming PerformanceObserver PerformanceObserverEntryList PerformancePaintTiming PerformanceResourceTiming PerformanceScriptTiming PerformanceServerTiming PerformanceTiming PeriodicSyncManager Permissions PermissionStatus PictureInPictureEvent PictureInPictureWindow Plugin PluginArray PointerEvent PopStateEvent Presentation PresentationAvailability PresentationConnection PresentationConnectionAvailableEvent PresentationConnectionCloseEvent PresentationConnectionList PresentationReceiver PresentationRequest PressureObserver PressureRecord ProcessingInstruction ProgressEvent PromiseRejectionEvent PublicKeyCredential PushEvent PushManager PushMessageData PushSubscription PushSubscriptionOptions
109
+ # RTCCertificate RTCDTMFSender RTCDTMFToneChangeEvent RTCDataChannel RTCDataChannelEvent RTCDtlsTransport RTCEncodedAudioFrame RTCEncodedVideoFrame RTCError RTCErrorEvent RTCIceCandidate RTCIceTransport RTCPeerConnection RTCPeerConnectionIceErrorEvent RTCPeerConnectionIceEvent RTCRtpReceiver RTCRtpScriptTransformer RTCRtpSender RTCRtpTransceiver RTCSctpTransport RTCSessionDescription RTCStatsReport RTCTrackEvent RadioNodeList Range ReadableByteStreamController ReadableStream ReadableStreamBYOBReader ReadableStreamBYOBRequest ReadableStreamDefaultController ReadableStreamDefaultReader RelativeOrientationSensor RemotePlayback Report ReportBody ReportingObserver Request ResizeObserver ResizeObserverEntry ResizeObserverSize Response SVGAElement SVGAngle SVGAnimateElement SVGAnimateMotionElement SVGAnimateTransformElement SVGAnimatedAngle SVGAnimatedBoolean SVGAnimatedEnumeration SVGAnimatedInteger SVGAnimatedLength SVGAnimatedLengthList SVGAnimatedNumber SVGAnimatedNumberList SVGAnimatedPreserveAspectRatio SVGAnimatedRect SVGAnimatedString SVGAnimatedTransformList SVGAnimationElement SVGCircleElement SVGClipPathElement SVGComponentTransferFunctionElement SVGDefsElement SVGDescElement SVGElement SVGEllipseElement SVGFEBlendElement SVGFEColorMatrixElement SVGFEComponentTransferElement SVGFECompositeElement SVGFEConvolveMatrixElement SVGFEDiffuseLightingElement SVGFEDisplacementMapElement SVGFEDistantLightElement SVGFEDropShadowElement SVGFEFloodElement SVGFEFuncAElement SVGFEFuncBElement SVGFEFuncGElement SVGFEFuncRElement SVGFEGaussianBlurElement SVGFEImageElement SVGFEMergeElement SVGFEMergeNodeElement SVGFEMorphologyElement SVGFEOffsetElement SVGFEPointLightElement SVGFESpecularLightingElement SVGFESpotLightElement SVGFETileElement SVGFETurbulenceElement SVGFilterElement SVGForeignObjectElement SVGGElement SVGGeometryElement SVGGradientElement SVGGraphicsElement SVGImageElement SVGLength SVGLengthList SVGLineElement SVGLinearGradientElement SVGMPathElement SVGMarkerElement SVGMaskElement SVGMatrix SVGMetadataElement SVGNumber SVGNumberList SVGPathElement SVGPatternElement SVGPoint SVGPointList SVGPolygonElement SVGPolylineElement SVGPreserveAspectRatio SVGRadialGradientElement SVGRect SVGRectElement SVGSVGElement SVGScriptElement SVGSetElement SVGStopElement SVGStringList SVGStyleElement SVGSwitchElement SVGSymbolElement SVGTSpanElement SVGTextContentElement SVGTextElement SVGTextPathElement SVGTextPositioningElement SVGTitleElement SVGTransform SVGTransformList SVGUnitTypes SVGUseElement SVGViewElement Screen ScreenDetailed ScreenDetails ScreenOrientation ScriptProcessorNode SecurityPolicyViolationEvent Selection Sensor SensorErrorEvent Serial SerialPort ServiceWorker ServiceWorkerContainer ServiceWorkerGlobalScope ServiceWorkerRegistration ShadowRoot SharedWorker SourceBuffer SourceBufferList SpeechRecognition SpeechRecognitionAlternative SpeechRecognitionErrorEvent SpeechRecognitionEvent SpeechRecognitionResult SpeechRecognitionResultList SpeechSynthesis SpeechSynthesisErrorEvent SpeechSynthesisEvent SpeechSynthesisUtterance SpeechSynthesisVoice StaticRange StereoPannerNode Storage StorageEvent StorageManager StylePropertyMap StylePropertyMapReadOnly StyleSheet StyleSheetList SubmitEvent SubtleCrypto SyncManager
110
+ # TaskAttributionTiming TaskController TaskPriorityChangeEvent TaskSignal Text TextDecoder TextEncoder TextDecoderStream TextEncoderStream TextEvent TextFormat TextFormatUpdateEvent TextMetrics TextTrack TextTrackCue TextTrackCueList TextTrackList TimeRanges ToggleEvent Touch TouchEvent TouchList TrackEvent TransformStream TransformStreamDefaultController TransitionEvent TreeWalker TrustedHTML TrustedScript TrustedScriptURL TrustedTypePolicy TrustedTypePolicyFactory UIEvent URL URLPattern URLSearchParams USB USBAlternateInterface USBConfiguration USBConnectionEvent USBDevice USBEndpoint USBInTransferResult USBInterface USBIsochronousInTransferPacket USBIsochronousInTransferResult USBIsochronousOutTransferPacket USBOutTransferResult UserActivation VTTCue VTTRegion ValidityState VideoColorSpace VideoDecoder VideoEncoder VideoFrame VideoPlaybackQuality ViewTransition VirtualKeyboard VisualViewport WakeLock WakeLockSentinel WebAssembly WebGL2RenderingContext WebGLActiveInfo WebGLBuffer WebGLContextEvent WebGLFramebuffer WebGLProgram WebGLQuery WebGLRenderbuffer WebGLRenderingContext WebGLSampler WebGLShader WebGLShaderPrecisionFormat WebGLSync WebGLTexture WebGLTransformFeedback WebGLUniformLocation WebGLVertexArrayObject WebSocket WebSocketStream WebTransport WebTransportBidirectionalStream WebTransportDatagramDuplexStream WebTransportError WheelEvent Window WindowClient WindowControlsOverlay Worker WorkerGlobalScope WorkerLocation WorkerNavigator Worklet WorkletGlobalScope WritableStream WritableStreamDefaultController WritableStreamDefaultWriter XMLDocument XMLHttpRequest XMLHttpRequestEventTarget XMLHttpRequestUpload XMLSerializer XPathEvaluator XPathExpression XPathResult XRAnchor XRAnchorSet XRBoundedReferenceSpace XRCPUDepthInformation XRCamera XRDOMOverlayState XRDepthInformation XRFrame XRHand XRHitTestResult XRHitTestSource XRInputSource XRInputSourceArray XRInputSourceEvent XRInputSourcesChangeEvent XRJointPose XRJointSpace XRLayer XRLightEstimate XRLightProbe XRPose XRRay XRReferenceSpace XRReferenceSpaceEvent XRRenderState XRRigidTransform XRSession XRSessionEvent XRSpace XRSystem XRTransientInputHitTestResult XRTransientInputHitTestSource XRView XRViewerPose XRViewport XRWebGLBinding XRWebGLDepthInformation XRWebGLLayer XSLTProcessor
111
+ # autocomplete-reference: Node.js globals and builtin modules (Node.js API)
112
+ # __dirname __filename exports module require process console Buffer
113
+ # AbortController AbortSignal Blob BroadcastChannel ByteLengthQueuingStrategy CloseEvent CompressionStream CountQueuingStrategy Crypto CryptoKey CustomEvent DecompressionStream DOMException ErrorEvent Event EventSource EventTarget File FormData Headers localStorage MessageChannel MessageEvent MessagePort navigator PerformanceEntry PerformanceMark PerformanceMeasure PerformanceObserver PerformanceObserverEntryList PerformanceResourceTiming performance Request Response sessionStorage Storage structuredClone SubtleCrypto TextDecoder TextDecoderStream TextEncoder TextEncoderStream TransformStream URL URLPattern URLSearchParams WebAssembly WebSocket WritableStream WritableStreamDefaultController WritableStreamDefaultWriter ReadableStream ReadableStreamBYOBReader ReadableStreamBYOBRequest ReadableStreamDefaultController ReadableStreamDefaultReader
114
+ # node assert assert/strict async_hooks buffer child_process cluster console constants crypto dgram diagnostics_channel dns dns/promises domain events fs fs/promises http http2 https inspector inspector/promises module net os path path/posix path/win32 perf_hooks process punycode querystring readline readline/promises repl sea sqlite stream stream/consumers stream/promises stream/web string_decoder test test/reporters timers timers/promises tls trace_events tty url util util/types v8 vm wasi worker_threads zlib
115
+ # autocomplete-reference: Bun globals and Bun native APIs (Bun docs)
116
+ # Bun bun jsc gc CryptoHasher FileSink HTMLBundle Shell ShellError ShellOutput ShellPromise Subprocess Transpiler UnsafeCallback build color console depth dns file gc gzip hash indexOfLine lineColumn listen main mmap nanoseconds openInEditor origin peek readableStreamToArray readableStreamToBlob readableStreamToBytes readableStreamToFormData readableStreamToJSON readableStreamToText resolve resolveSync revision semver serve shell sleep sleepSync spawn spawnSync stderr stdin stdout stringWidth stripANSI udp unzip version which write
117
+ # BunFile S3File ArrayBufferSink BlobPart BodyInit BunPlugin BuildConfig BuildMessage BuildOutput BuildArtifact CompileBuildConfig Cookie CookieMap Env FileBlob FileSystemRouter Glob GlobScanOptions HTTPResponseSink ImportMeta InspectOptions Mock ModuleMock NetworkSink PathLike PluginBuilder Server ServerWebSocket Socket TCPSocketListener TLSOptions TranspilerOptions UDPConnectedSocket UDPSocket WebSocketHandler WebSocketServeOptions
118
+ # fetch Request Response Headers FormData Blob File URL URLSearchParams TextEncoder TextDecoder ReadableStream WritableStream TransformStream WebSocket Event EventTarget MessageEvent CloseEvent ErrorEvent CustomEvent DOMException AbortController AbortSignal crypto Crypto CryptoKey SubtleCrypto performance structuredClone queueMicrotask setTimeout clearTimeout setInterval clearInterval setImmediate clearImmediate
119
+ # bun:test describe test it expect beforeAll beforeEach afterAll afterEach mock spyOn jest setSystemTime restore clearAllMocks restoreAllMocks
120
+ # bun:sqlite Database Statement SQLQueryBindings SQLQueryResult
121
+ # bun:jsc serialize deserialize
122
+ # bun:ffi dlopen suffix ptr CString JSCallback FFIType
123
+ # bun:wrap wrap
124
+ # bun:main bun:internal bun:macro bun:plugin bun:embedded bun:generated
@@ -0,0 +1,19 @@
1
+ filetype: jinja2
2
+
3
+ rules:
4
+ - include: "html"
5
+ - special: "({{|}}|{%-?|-?%})"
6
+ - default:
7
+ start: "({%-?|{{)"
8
+ end: "(-?%}|}})"
9
+ limit-group: special
10
+ rules:
11
+ - include: "python"
12
+ - statement: "\\b(ignore missing|with(out)? context|block|call|endblock|endcall|endfilter|endfor|endmacro|endraw|endset|extends|filter|for|include|macro|raw|recursive|scoped|set)\\b"
13
+ - identifier.builtinfunc: "\\b(attr|batch|capitalize|center|count|d|default|dictsort|e|escape|filesizeformat|first|forceescape|groupby|indent|join|last|length|lower|pprint|random|reject|rejectattr|replace|reverse|safe|select|selectattr|striptags|title|tojson|trim|truncate|unique|upper|urlencode|urlize|wordcount|wordwrap|xmlattr)\\b"
14
+ - identifier.builtintest: "\\b(callable|defined|divisibleby|eq|equalto|escaped|even|ge|gt|iterable|le|lower|lt|mapping|ne|none|number|odd|sameas|sequence|string|undefined|upper)\\b"
15
+ - identifier.defaultglobal: "\\b(lipsum|cycler|joiner|namespace)\\b"
16
+ - comment:
17
+ start: "{#"
18
+ end: "#}"
19
+ rules: []
@@ -0,0 +1,39 @@
1
+ filetype: json
2
+
3
+ detect:
4
+ filename: "\\.json$"
5
+ header: "^\\{$"
6
+
7
+ rules:
8
+ - constant.number: "\\b[-+]?([1-9][0-9]*|0[0-7]*|0x[0-9a-fA-F]+)([uU][lL]?|[lL][uU]?)?\\b"
9
+ - constant.number: "\\b[-+]?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+)([EePp][+-]?[0-9]+)?[fFlL]?"
10
+ - constant.number: "\\b[-+]?([0-9]+[EePp][+-]?[0-9]+)[fFlL]?"
11
+ - constant: "\\b(null)\\b"
12
+ - constant: "\\b(true|false)\\b"
13
+ - constant.string:
14
+ start: "\""
15
+ end: "\""
16
+ skip: "\\\\."
17
+ rules:
18
+ - constant.specialChar: "\\\\."
19
+ - constant.string:
20
+ start: "'"
21
+ end: "'"
22
+ skip: "\\\\."
23
+ rules:
24
+ - constant.specialChar: "\\\\."
25
+
26
+ - statement: "\\\"(\\\\\"|[^\"])*\\\"[[:space:]]*:\" \"'(\\'|[^'])*'[[:space:]]*:"
27
+ - constant: "\\\\u[0-9a-fA-F]{4}|\\\\[bfnrt'\"/\\\\]"
28
+
29
+ - comment:
30
+ start: "//"
31
+ end: "$"
32
+ rules:
33
+ - todo: "(TODO|XXX|FIXME):?"
34
+
35
+ - comment:
36
+ start: "/\\*"
37
+ end: "\\*/"
38
+ rules:
39
+ - todo: "(TODO|XXX|FIXME):?"
@@ -0,0 +1,92 @@
1
+ filetype: jsonnet
2
+
3
+ detect:
4
+ filename: "\\.jsonnet$"
5
+
6
+ # Spec: https://jsonnet.org/ref/spec.html
7
+
8
+ rules:
9
+ # built-in objects
10
+ # FIXME: $ won't match
11
+ - constant: "\\b(self|\\$|super)\\b"
12
+ # boolean constants
13
+ - constant.bool: "\\b(null|true|false)\\b"
14
+ # the standard library
15
+ - identifier: "\\bstd\\.(extVar|thisFile|type|length|objectHas|objectFields|objectHasAll|objectFieldsAll|prune|mapWithKey|abs|sign|max|min|pow|exp|log|exponent|mantissa|floor|ceil|sqrt|sin|cos|tan|asin|acos|atan|mod|assertEqual|toString|codepoint|char|substr|findSubstr|startsWith|endsWith|split|splitLimit|strReplace|asciiUpper|asciiLower|stringChars|format|escapeStringDollars|escapeStringPython|parseInt|parseOctal|parseHex|parseJson|encodeUTF8|decodeUTF8|manifestIni|manifestPython|manifestPythonVars|manifestJsonEx|manifestYamlDoc|manifestYamlStream|manifestXmlJsonml|makeArray|count|find|map|mapWithIndex|filterMap|filter|foldl|foldr|range|join|lines|flattenArrays|sort|uniq|set|setInter|setUnion|setDiff|setMember|base64|base64DecodeBytes|base64Decode|md5|mergePatch|trace)\\b"
16
+ # unquoted object keys
17
+ - type: "[_a-zA-Z][_a-zA-Z0-9]*\\s*:"
18
+ # object key separator
19
+ - statement: ":"
20
+ # keywords
21
+ - statement: "\\b(assert|else|error|for|function|if|import|importstr|in|local|tailstrict|then)\\b"
22
+ # operators
23
+ - symbol.operator: "([.;,+*|=!\\%]|<|>|/|-|&)"
24
+ # parentheses
25
+ - symbol.brackets: "([(){}]|\\[|\\])"
26
+ # numbers
27
+ - constant.number: "\\b(0|([1-9][0-9]*))(\\.[0-9]+)?([eE][\\+-]?[0-9]+)?\\b"
28
+
29
+ # double-quoted string
30
+ - constant.string:
31
+ start: "\""
32
+ end: "\""
33
+ skip: "\\\\\""
34
+ rules:
35
+ - constant.specialChar: "\\\\u[0-9a-fA-F]{4}|\\\\[bfnrt'\"/\\\\]"
36
+
37
+ # single-quoted string
38
+ - constant.string:
39
+ start: "'"
40
+ end: "'"
41
+ skip: "\\\\'"
42
+ rules:
43
+ - constant.specialChar: "\\\\u[0-9a-fA-F]{4}|\\\\[bfnrt'\"/\\\\]"
44
+
45
+ # double-quoted verbatim string
46
+ - constant.string:
47
+ start: "@\""
48
+ end: "\""
49
+ skip: "\\\\\""
50
+ rules:
51
+ - constant.specialChar: "\\\\\""
52
+
53
+ # single-quoted verbatim string
54
+ - constant.string:
55
+ start: "@'"
56
+ end: "'"
57
+ skip: "\\\\'"
58
+ rules:
59
+ - constant.specialChar: "\\\\'"
60
+
61
+ # block string
62
+ - constant.string:
63
+ # FIXME:
64
+ # This isn't quite right.
65
+ # The spec says this:
66
+
67
+ # beginning with |||, followed by optional whitespace and a new-line.
68
+ # The next non-blank line must be prefixed with some non-zero length
69
+ # whitespace W. The block ends at the first subsequent line that does
70
+ # not begin with W, and it is an error if this line does not contain
71
+ # some optional whitespace followed by |||.
72
+
73
+ # We need to match ^(\s+) on the first non-blank line after |||
74
+ # Then we need to skip ^\1.*$
75
+
76
+ start: "\\|\\|\\| *$"
77
+ end: "^ *\\|\\|\\|"
78
+ rules: []
79
+
80
+ # multi-line comment
81
+ - comment:
82
+ start: "/\\*"
83
+ end: "\\*/"
84
+ rules:
85
+ - todo: "(TODO|XXX|FIXME):?"
86
+
87
+ # single-line comment
88
+ - comment:
89
+ start: "#|(//)"
90
+ end: "$"
91
+ rules:
92
+ - todo: "(TODO|XXX|FIXME):?"
@@ -0,0 +1,57 @@
1
+ filetype: julia
2
+
3
+ detect:
4
+ filename: "\\.jl$"
5
+ header: "^#!.*/(env +)?julia( |$)"
6
+
7
+ rules:
8
+
9
+ # built-in objects
10
+ - constant.bool: "\\b(true|false)\\b"
11
+ - constant: "\\b(nothing|missing)\\b"
12
+ # built-in attributes
13
+ - constant: "__[A-Za-z0-9_]+__"
14
+ # definitions
15
+ - identifier: "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[(]"
16
+ # keywords
17
+ - statement: "\\b(baremodule|begin|break|catch|const|continue|do|else|elseif|end|export|finally|for|function|global|if|import|let|local|macro|module|public|quote|return|struct|try|using|while)\\b"
18
+ - statement: "\\b(abstract\\s+type|primitive\\s+type|mutable\\s+struct)\\b"
19
+ # decorators
20
+ - identifier.macro: "@[A-Za-z0-9_]+"
21
+ # operators
22
+ - symbol.operator: "[:+*|=!%~<>/\\-?&\\\\÷∈∉∘]|\\b(in|isa|where)\\b"
23
+ # for some reason having ^ in the same regex with the other operators broke things
24
+ - symbol.operator: "\\^"
25
+ # parentheses
26
+ - symbol.brackets: "([(){}]|\\[|\\])"
27
+ # numbers
28
+ - constant.number: "\\b([0-9]+(_[0-9]+)*|0x[0-9a-fA-F]+(_[0-9a-fA-F]+)*|0b[01]+(_[01]+)*|0o[0-7]+(_[0-7]+)*|Inf(16|32|64)?|NaN(16|32|64)?)\\b"
29
+
30
+ - constant.string:
31
+ start: "\"\"\""
32
+ end: "\"\"\""
33
+ rules: []
34
+
35
+ - constant.string:
36
+ start: "\""
37
+ end: "\""
38
+ skip: "\\\\."
39
+ rules:
40
+ - constant.specialChar: "\\\\([\"'abfnrtv\\\\]|[0-3]?[0-7]{1,2}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{1,4}|U[0-9A-Fa-f]{1,8})"
41
+
42
+ # Lifted from Rust's syntax highlighting
43
+ - constant.string: "'(\\\\.|.)'"
44
+ - constant.string:
45
+ start: "'\""
46
+ end: "'"
47
+ rules: []
48
+
49
+ - comment:
50
+ start: "#="
51
+ end: "=#"
52
+ rules: []
53
+
54
+ - comment:
55
+ start: "#"
56
+ end: "$"
57
+ rules: []
@@ -0,0 +1,40 @@
1
+ # For more information, see https://github.com/casey/just
2
+ filetype: 'justfile'
3
+
4
+ detect:
5
+ filename: "(^\\.?[Jj]ustfile|\\.just)$"
6
+ header: "^#!.*/(env +)?[bg]?just --justfile"
7
+
8
+ rules:
9
+ - preproc: "\\<(ifeq|ifdef|ifneq|ifndef|else|endif)\\>"
10
+ - statement: "^(export|include|override)\\>"
11
+ - symbol.operator: "^[^:= ]+:"
12
+ - symbol.operator: "([=,%]|\\+=|\\?=|:=|&&|\\|\\|)"
13
+ - statement: "\\$\\((abspath|addprefix|addsuffix|and|basename|call|dir)[[:space:]]"
14
+ - statement: "\\$\\((error|eval|filter|filter-out|findstring|firstword)[[:space:]]"
15
+ - statement: "\\$\\((flavor|foreach|if|info|join|lastword|notdir|or)[[:space:]]"
16
+ - statement: "\\$\\((origin|patsubst|realpath|shell|sort|strip|suffix)[[:space:]]"
17
+ - statement: "\\$\\((value|warning|wildcard|word|wordlist|words)[[:space:]]"
18
+ # default functions - probably shouldn't be overwritten by assignment
19
+ - statement: "\\b(arch|os|os_family|env_var|invocation_directory|justfile|justfile_directory|just_executable|lowercase|quote|replace|trim|trim_end|trim_end|trim_end_match|trim_end_matches|trim_start|trim_start_match|trim_start_matches|uppercase)\\b"
20
+ - identifier: "^.+:"
21
+ - identifier: "[()$]"
22
+ - constant.string:
23
+ start: "\""
24
+ end: "\""
25
+ skip: "\\\\."
26
+ rules:
27
+ - constant.specialChar: "\\\\."
28
+ - constant.string:
29
+ start: "'"
30
+ end: "'"
31
+ skip: "\\\\."
32
+ rules:
33
+ - constant.specialChar: "\\\\."
34
+ - identifier: "\\$+(\\{[^} ]+\\}|\\([^) ]+\\))"
35
+ - identifier: "\\$[@^<*?%|+]|\\$\\([@^<*?%+-][DF]\\)"
36
+ - identifier: "\\$\\$|\\\\.?"
37
+ - comment:
38
+ start: "#"
39
+ end: "$"
40
+ rules: []
@@ -0,0 +1,27 @@
1
+ filetype: keymap
2
+
3
+ detect:
4
+ filename: "\\.(k|key)?map$|Xmodmap$"
5
+
6
+ rules:
7
+ - statement: "\\b(add|clear|compose|keycode|keymaps|keysym|remove|string)\\b"
8
+ - statement: "\\b(control|alt|shift)\\b"
9
+ - constant.number: "\\b[0-9]+\\b"
10
+ - special: "="
11
+ - constant.string:
12
+ start: "\""
13
+ end: "\""
14
+ skip: "\\\\."
15
+ rules:
16
+ - constant.specialChar: "\\\\."
17
+ - constant.string:
18
+ start: "'"
19
+ end: "'"
20
+ skip: "\\\\."
21
+ rules:
22
+ - constant.specialChar: "\\\\."
23
+ - comment:
24
+ start: "^!"
25
+ end: "$"
26
+ rules: []
27
+
@@ -0,0 +1,16 @@
1
+ filetype: kickstart
2
+
3
+ detect:
4
+ filename: "\\.ks$|\\.kickstart$"
5
+
6
+ rules:
7
+ - special: "%[a-z]+"
8
+ - statement: "^[[:space:]]*(install|cdrom|text|graphical|volgroup|logvol|reboot|timezone|lang|keyboard|authconfig|firstboot|rootpw|user|firewall|selinux|repo|part|partition|clearpart|bootloader)"
9
+ - constant: "--(name|mirrorlist|baseurl|utc)(=|\\>)"
10
+ - statement: "\\$(releasever|basearch)\\>"
11
+ - brightblack: "^@[A-Za-z][A-Za-z-]*"
12
+ - brightred: "^-@[a-zA-Z0-9*-]+"
13
+ - red: "^-[a-zA-Z0-9*-]+"
14
+ - comment: "(^|[[:space:]])#([^{].*)?$"
15
+ - indent-char.whitespace: "[[:space:]]+$"
16
+ - indent-char: " + +| + +"
@@ -0,0 +1,66 @@
1
+ filetype: kotlin
2
+
3
+ detect:
4
+ filename: "\\.kts?$"
5
+
6
+ rules:
7
+
8
+ # Operators
9
+ - symbol.operator: ([.:;,+*|=!?\\%]|<|>|/|-|&)
10
+
11
+ # Statements Keywords
12
+ - statement: \b(as|by|class|constructor|companion|const|fun|import|in|infix|interface|inline|is|out|operator|package|return|suspend|super|this|when|val|var)\b
13
+ - statement.properties: \b(get|set)\b
14
+ - statement.control: \b(break|continue|else|do|if|try|catch|finally|for|while)\b
15
+ - statement.class: \b(abstract|annotation|data|enum|final|open|sealed)\b
16
+ - statement.member: \b(override|lateinit|init)\b
17
+ - statement.access: \b(internal|private|protected|public)\b
18
+ - statement.parameter: \b(crossinline|noinline|reified|vararg)\b
19
+
20
+ # Expression and types
21
+ - type: \b(dynamic|object|throw|typealias)\b
22
+
23
+ # Meta
24
+ - statement.meta: \@(\bfile|delegate|field|get|property|receiver|set|setparam|param|)\b
25
+
26
+ # Constant
27
+ - constant: \b(true|false|null)
28
+ - constant.number: ([0-9]+)
29
+
30
+ # Storage Types
31
+ - type.storage: \b(Byte|UByte|Char|Double|Float|Int|UInt|Long|ULong|Short|UShort|Boolean|Unit|Nothing)\b
32
+
33
+ # Collections
34
+ - type.collections: \b(Array)\b
35
+
36
+ # String
37
+ - constant.string:
38
+ start: \"
39
+ end: \"
40
+ skip: \\.
41
+ rules:
42
+ - constant.specialChar: (\\0|\\\\|\\t|\\n|\\r|\\"|\\')
43
+ - constant.unicode: \\u\{[[:xdigit:]]+}
44
+
45
+ # Shebang Line
46
+ - comment.shebang: ^(#!).*
47
+
48
+ # Line Comment
49
+ - comment.line: "//.*"
50
+
51
+ # Block Comment
52
+ - comment.block:
53
+ start: "/\\*"
54
+ end: "\\*/"
55
+ rules:
56
+ - todo: "(TODO|XXX|FIXME):?"
57
+
58
+ # Doc Block Comment
59
+ - comment.block:
60
+ start: "/\\*\\*"
61
+ end: "\\*/"
62
+ rules:
63
+ - todo: "(TODO|XXX|FIXME):?"
64
+
65
+ # Todo
66
+ - todo: "(TODO|XXX|FIXME):?"
@@ -0,0 +1,67 @@
1
+ filetype: "kvlang"
2
+
3
+ detect:
4
+ filename: "\\.kv$"
5
+
6
+ rules:
7
+ # layouts
8
+ - special: "\\b[a-z].+"
9
+ - identifier: "\\b(self|app|root)\\b"
10
+
11
+ - type: "\\b[A-Z].+"
12
+ - type: "\\b(AnchorLayout|BoxLayout|FloatLayout|RelativeLayout|GridLayout|PageLayout|StackLayout)\\b"
13
+
14
+ - type: "\\b(canvas)\\b"
15
+
16
+ # functions
17
+ - identifier.function: "[a-zA-Z_0-9]+\\("
18
+
19
+ # built-in functions
20
+ - type: "\\b(abs|all|any|ascii|bin|bool|breakpoint|bytearray|bytes)\\b"
21
+ - type: "\\b(callable|chr|classmethod|compile|copyright|credits|oct)\\b"
22
+ - type: "\\b(delattr|dict|dir|display|divmod|enumerate|eval|filter)\\b"
23
+ - type: "\\b(float|format|frozenset|get_ipython|getattr|globals|type)\\b"
24
+ - type: "\\b(hash|help|hex|id|input|int|isinstance|issubclass|iter|len)\\b"
25
+ - type: "\\b(license|list|locals|map|max|memoryview|min|next|object)\\b"
26
+ - type: "\\b(open|ord|pow|print|property|range|repr|reversed|round|set)\\b"
27
+ - type: "\\b(setattr|slice|sorted|staticmethod|hasattr|super|tuple|str)\\b"
28
+ - type: "\\b(vars|zip|exec|sum|complex)\\b"
29
+
30
+ # keywords
31
+ - statement.built_in: "\\b(and|as|assert|async|await|break|class|continue|def)\\b"
32
+ - statement.built_in: "\\b(del|elif|else|except|finally|for|from|global|if)\\b"
33
+ - statement.built_in: "\\b(import|in|is|lambda|nonlocal|not|or|pass|raise)\\b"
34
+ - statement.built_in: "\\b(return|try|while|with|yield|match|case)\\b"
35
+
36
+ # operators
37
+ - symbol.operator: "([~^.:;,+*|=!\\%]|<|>|/|-|&)"
38
+
39
+ # parentheses
40
+ - symbol.brackets: "([(){}]|\\[|\\])"
41
+
42
+ # numbers
43
+ - constant.number: "\\b[0-9](_?[0-9])*(\\.([0-9](_?[0-9])*)?)?(e[0-9](_?[0-9])*)?\\b" # decimal
44
+ - constant.number: "\\b0b(_?[01])+\\b" # bin
45
+ - constant.number: "\\b0o(_?[0-7])+\\b" # oct
46
+ - constant.number: "\\b0x(_?[0-9a-f])+\\b" # hex
47
+
48
+ - constant.bool.none: "\\b(None)\\b"
49
+ - constant.bool.true: "\\b(True)\\b"
50
+ - constant.bool.false: "\\b(False)\\b"
51
+
52
+ # strings
53
+ - constant.string:
54
+ start: "\""
55
+ end: "(\"|$)"
56
+ skip: "\\\\."
57
+ rules: []
58
+ - constant.string:
59
+ start: "'"
60
+ end: "('|$)"
61
+ skip: "\\\\."
62
+ rules: []
63
+
64
+ - comment:
65
+ start: "#"
66
+ end: "$"
67
+ rules: []
@@ -0,0 +1,14 @@
1
+ filetype: ledger
2
+
3
+ detect:
4
+ filename: "(^|\\.|/)(ledger|ldgr|beancount|bnct)$"
5
+
6
+ rules:
7
+ - special: "^([0-9]{4}(/|-)[0-9]{2}(/|-)[0-9]{2}|[=~]) .*"
8
+ - constant: "^[0-9]{4}(/|-)[0-9]{2}(/|-)[0-9]{2}"
9
+ - statement: "^~ .*"
10
+ - identifier.var: "^= .*"
11
+ - identifier: "^[[:space:]]+(![[:space:]]+)?\\(?[A-Za-z ]+(:[A-Za-z ]+)*\\)?"
12
+ - identifier: "^[[:space:]]+(![[:space:]]+)?\\(?[A-Za-z_\\-]+(:[A-Za-z_\\-]+)*\\)?"
13
+ - symbol: "[*!]"
14
+ - comment: "^[[:space:]]*;.*"
@@ -0,0 +1,17 @@
1
+ filetype: lfe
2
+
3
+ detect:
4
+ filename: "lfe$|\\.lfe$"
5
+
6
+ rules:
7
+ - symbol.brackets: "\\(|\\)"
8
+ - type: "defun|define-syntax|define|defmacro|defmodule|export"
9
+ - constant: "\\ [A-Za-z][A-Za-z0-9_-]+\\ "
10
+ - symbol.operator: "\\(([\\-+*/<>]|<=|>=)|'"
11
+ - constant.number: "\\b[0-9]+\\b"
12
+ - constant.string: "\\\"(\\\\.|[^\"])*\\\""
13
+ - special: "['|`][A-Za-z][A-Za-z0-9_\\-]+"
14
+ - constant.specialChar: "\\\\.?"
15
+ - comment: "(^|[[:space:]]);.*"
16
+ - indent-char.whitespace: "[[:space:]]+$"
17
+ - indent-char: " + +| + +"
@@ -0,0 +1,26 @@
1
+ filetype: lilypond
2
+
3
+ detect:
4
+ filename: "\\.ly$|\\.ily$|\\.lly$"
5
+
6
+ rules:
7
+ - constant.number: "\\d+"
8
+ - identifier: "\\b(staff|spacing|signature|routine|notes|handler|corrected|beams|arpeggios|Volta_engraver|Voice|Vertical_align_engraver|Vaticana_ligature_engraver|VaticanaVoice|VaticanaStaff|Tweak_engraver|Tuplet_engraver|Trill_spanner_engraver|Timing_translator|Time_signature_performer|Time_signature_engraver|Tie_performer|Tie_engraver|Text_spanner_engraver|Text_engraver|Tempo_performer|Tab_tie_follow_engraver|Tab_staff_symbol_engraver|Tab_note_heads_engraver|TabVoice|TabStaff|System_start_delimiter_engraver|Stem_engraver|Stanza_number_engraver|Stanza_number_align_engraver|Staff_symbol_engraver|Staff_performer|Staff_collecting_engraver|StaffGroup|Staff|Spanner_break_forbid_engraver|Span_bar_stub_engraver|Span_bar_engraver|Span_arpeggio_engraver|Spacing_engraver|Slur_performer|Slur_engraver|Slash_repeat_engraver|Separating_line_group_engraver|Script_row_engraver|Script_engraver|Script_column_engraver|Score|Rhythmic_column_engraver|RhythmicStaff|Rest_engraver|Rest_collision_engraver|Repeat_tie_engraver|Repeat_acknowledge_engraver|Pure_from_neighbor_engraver|Pitched_trill_engraver|Pitch_squash_engraver|Piano_pedal_performer|Piano_pedal_engraver|Piano_pedal_align_engraver|PianoStaff|Phrasing_slur_engraver|PetrucciVoice|PetrucciStaff|Percent_repeat_engraver|Part_combine_engraver|Parenthesis_engraver|Paper_column_engraver|Output_property_engraver|Ottava_spanner_engraver|OneStaff|NullVoice|Note_spacing_engraver|Note_performer|Note_name_engraver|Note_heads_engraver|Note_head_line_engraver|NoteName\\|NoteHead|New_fingering_engraver|Multi_measure_rest_engraver|Midi_control_function_performer|Metronome_mark_engraver|Mensural_ligature_engraver|MensuralVoice|MensuralStaff|Mark_engraver|Lyrics|Lyric_performer|Lyric_engraver|Ligature_bracket_engraver|Ledger_line_engraver|Laissez_vibrer_engraver|Kievan_ligature_engraver|KievanVoice|KievanStaff|Key_performer|Key_engraver|Keep_alive_together_engraver|Instrument_switch_engraver|Instrument_name_engraver|Hyphen_engraver|Grob_pq_engraver|GregorianTranscriptionVoice|GregorianTranscriptionStaff|GrandStaff|Grace_spacing_engraver|Grace_engraver|Grace_beam_engraver|Grace_auto_beam_engraver|Global|Glissando_engraver|Fretboard_engraver|FretBoards|Forbid_line_break_engraver|Footnote_engraver|Font_size_engraver|Fingering_engraver|Fingering_column_engraver|Figured_bass_position_engraver|Figured_bass_engraver|FiguredBass|Extender_engraver|Episema_engraver|Dynamics|Dynamic_performer|Dynamic_engraver|Dynamic_align_engraver|Drum_notes_engraver|Drum_note_performer|DrumVoice|DrumStaff|Double_percent_repeat_engraver|Dots_engraver|Dot_column_engraver|Devnull|Default_bar_line_engraver|Custos_engraver|Cue_clef_engraver|CueVoice|Control_track_performer|Concurrent_hairpin_engraver|Collision_engraver|Cluster_spanner_engraver|Clef_engraver|Chord_tremolo_engraver|Chord_name_engraver|ChordNames|ChoirStaff|Breathing_sign_engraver|Break_align_engraver|Bend_engraver|Beam_performer|Beam_engraver|Beam_collision_engraver|Bar_number_engraver|Bar_engraver|Axis_group_engraver|Auto_beam_engraver|Arpeggio_engraver|Accidental_engraver|Score)\\b"
9
+ - statement: "[-_^]?\\\\[-A-Za-z_]+"
10
+ - preproc: "\\b(((gisis|gis|geses|ges|g|fisis|fis|feses|fes|f|eisis|eis|eeses|ees|e|disis|dis|deses|des|d|cisis|cis|ceses|ces|c|bisis|bis|beses|bes|b|aisis|ais|aeses|aes|a)[,']*[?!]?)|s|r|R|q)(128|64|32|16|8|4|2|1|\\\\breve|\\\\longa|\\\\maxima)?([^\\\\\\w]|_|\\b)"
11
+ - special: "[(){}<>]|\\[|\\]"
12
+ - constant.string:
13
+ start: "\""
14
+ end: "\""
15
+ skip: "\\\\."
16
+ rules:
17
+ - constant.specialChar: "\\\\."
18
+ - comment:
19
+ start: "%\\{"
20
+ end: "%\\}"
21
+ rules: []
22
+ - comment:
23
+ start: "%"
24
+ end: "$"
25
+ rules: []
26
+