react-native-enriched-markdown-scaffold 0.7.4-scaffold.9 → 1.0.2-scaffold.2

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 (469) hide show
  1. package/README.md +54 -8
  2. package/ReactNativeEnrichedMarkdown.podspec +82 -73
  3. package/android/build.gradle +186 -1
  4. package/android/consumer-rules.pro +1 -1
  5. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerDelegate.java +9 -0
  6. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownManagerInterface.java +3 -0
  7. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerDelegate.java +24 -0
  8. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextInputManagerInterface.java +8 -0
  9. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerDelegate.java +9 -0
  10. package/android/generated/java/com/facebook/react/viewmanagers/EnrichedMarkdownTextManagerInterface.java +3 -0
  11. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.cpp +75 -0
  12. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/EventEmitters.h +63 -0
  13. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.cpp +35 -0
  14. package/android/generated/jni/react/renderer/components/EnrichedMarkdownTextSpec/Props.h +886 -23
  15. package/android/src/main/baseline-prof.txt +1 -1
  16. package/android/src/main/cpp/jni-adapter.cpp +74 -0
  17. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdown.kt +189 -13
  18. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownInternalText.kt +17 -0
  19. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownManager.kt +50 -0
  20. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownText.kt +48 -1
  21. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextLayoutManager.kt +10 -1
  22. package/android/src/main/java/com/swmansion/enriched/markdown/EnrichedMarkdownTextManager.kt +42 -0
  23. package/android/src/main/java/com/swmansion/enriched/markdown/MeasurementStore.kt +82 -4
  24. package/android/src/main/java/com/swmansion/enriched/markdown/events/CopyPressEvent.kt +24 -0
  25. package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputManager.kt +54 -4
  26. package/android/src/main/java/com/swmansion/enriched/markdown/input/EnrichedMarkdownTextInputView.kt +901 -462
  27. package/android/src/main/java/com/swmansion/enriched/markdown/input/MarkdownClipboard.kt +42 -0
  28. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/BlockEditCoordinator.kt +196 -0
  29. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/ClipboardCoordinator.kt +73 -0
  30. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditContext.kt +19 -0
  31. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditPipeline.kt +248 -0
  32. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/EditSession.kt +52 -0
  33. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/InputConnectionWrapper.kt +101 -7
  34. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/LinkCoordinator.kt +69 -0
  35. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/MarkdownTextWatcher.kt +3 -3
  36. package/android/src/main/java/com/swmansion/enriched/markdown/input/editing/MentionCoordinator.kt +118 -0
  37. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnChangeStateEvent.kt +26 -0
  38. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnContextMenuItemPressEvent.kt +26 -0
  39. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnInputKeyPressEvent.kt +24 -0
  40. package/android/src/main/java/com/swmansion/enriched/markdown/input/events/OnPasteEvent.kt +24 -0
  41. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/BlockStore.kt +254 -0
  42. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/FormattingStore.kt +80 -87
  43. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputFormatter.kt +109 -1
  44. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/InputParser.kt +116 -22
  45. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/MarkdownSerializer.kt +167 -38
  46. package/android/src/main/java/com/swmansion/enriched/markdown/input/formatting/RangeEditAdjustment.kt +149 -0
  47. package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputEventEmitter.kt +66 -5
  48. package/android/src/main/java/com/swmansion/enriched/markdown/input/layout/InputMeasurementStore.kt +4 -2
  49. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/BlockRange.kt +27 -0
  50. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/BlockType.kt +48 -0
  51. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/FormattingRange.kt +9 -4
  52. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/InputFormatterStyle.kt +39 -2
  53. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathAtom.kt +20 -0
  54. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MathChipStyle.kt +1 -1
  55. package/android/src/main/java/com/swmansion/enriched/markdown/input/model/MutableRangeBounds.kt +11 -0
  56. package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputBulletSpan.kt +82 -0
  57. package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputHeadingSpan.kt +58 -0
  58. package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputListItemSpacingSpan.kt +37 -0
  59. package/android/src/main/java/com/swmansion/enriched/markdown/input/spans/InputOrderedListMarkerSpan.kt +63 -0
  60. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/BlockHandler.kt +54 -0
  61. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/HeadingBlockHandler.kt +27 -0
  62. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/OrderedListBlockHandler.kt +38 -0
  63. package/android/src/main/java/com/swmansion/enriched/markdown/input/styles/UnorderedListBlockHandler.kt +37 -0
  64. package/android/src/main/java/com/swmansion/enriched/markdown/input/toolbar/InputContextMenu.kt +8 -26
  65. package/android/src/main/java/com/swmansion/enriched/markdown/parser/MarkdownASTNode.kt +1 -0
  66. package/android/src/main/java/com/swmansion/enriched/markdown/parser/Parser.kt +1 -0
  67. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BlockStyleContext.kt +9 -2
  68. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/BlockquoteRenderer.kt +100 -12
  69. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/CodeBlockRenderer.kt +16 -1
  70. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/HeadingRenderer.kt +4 -0
  71. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListContextManager.kt +2 -1
  72. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListItemRenderer.kt +74 -18
  73. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/ListRenderer.kt +43 -4
  74. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/NodeRenderer.kt +9 -1
  75. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SoftBreakRenderer.kt +16 -0
  76. package/android/src/main/java/com/swmansion/enriched/markdown/renderer/SpanStyleCache.kt +30 -27
  77. package/android/src/main/java/com/swmansion/enriched/markdown/spans/BaseListSpan.kt +24 -0
  78. package/android/src/main/java/com/swmansion/enriched/markdown/spans/BlockquoteSpan.kt +174 -24
  79. package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBackgroundSpan.kt +27 -3
  80. package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeBlockSpan.kt +13 -16
  81. package/android/src/main/java/com/swmansion/enriched/markdown/spans/CodeSpan.kt +1 -1
  82. package/android/src/main/java/com/swmansion/enriched/markdown/spans/EmphasisSpan.kt +1 -1
  83. package/android/src/main/java/com/swmansion/enriched/markdown/spans/ImageSpan.kt +182 -46
  84. package/android/src/main/java/com/swmansion/enriched/markdown/spans/ListItemSpacingSpan.kt +33 -0
  85. package/android/src/main/java/com/swmansion/enriched/markdown/spans/ListMarkerAnchorSpan.kt +38 -0
  86. package/android/src/main/java/com/swmansion/enriched/markdown/spans/OrderedListSpan.kt +2 -0
  87. package/android/src/main/java/com/swmansion/enriched/markdown/spans/StrongSpan.kt +1 -1
  88. package/android/src/main/java/com/swmansion/enriched/markdown/spans/TaskListSpan.kt +3 -2
  89. package/android/src/main/java/com/swmansion/enriched/markdown/spans/UnorderedListSpan.kt +3 -2
  90. package/android/src/main/java/com/swmansion/enriched/markdown/styles/BlockquoteStyle.kt +6 -0
  91. package/android/src/main/java/com/swmansion/enriched/markdown/styles/CodeBlockStyle.kt +26 -0
  92. package/android/src/main/java/com/swmansion/enriched/markdown/styles/ImageStyle.kt +7 -1
  93. package/android/src/main/java/com/swmansion/enriched/markdown/styles/ListStyle.kt +4 -1
  94. package/android/src/main/java/com/swmansion/enriched/markdown/styles/StyleConfig.kt +13 -4
  95. package/android/src/main/java/com/swmansion/enriched/markdown/styles/TableStyle.kt +6 -0
  96. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/CodeBlockHighlighter.kt +90 -0
  97. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/CodeBlockNode.kt +57 -0
  98. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/FeatureFlags.kt +1 -0
  99. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownSegment.kt +9 -0
  100. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/MarkdownViewManagerUtils.kt +37 -7
  101. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/ReadableMapExtensions.kt +3 -0
  102. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/RenderedSegment.kt +10 -0
  103. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/SegmentSignature.kt +1 -0
  104. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/StreamingMarkdownFilter.kt +83 -5
  105. package/android/src/main/java/com/swmansion/enriched/markdown/utils/common/serialization/MarkdownASTSerializer.kt +4 -0
  106. package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/MarkdownStyleParser.kt +74 -44
  107. package/android/src/main/java/com/swmansion/enriched/markdown/utils/input/PasteTextUtils.kt +20 -0
  108. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/ImageCache.kt +26 -3
  109. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/ImageDownloader.kt +22 -9
  110. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/LocalImageLoader.kt +161 -0
  111. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/extensions/TextPaintExtensions.kt +23 -0
  112. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/interaction/CheckboxTouchHelper.kt +7 -0
  113. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/interaction/TaskListTapUtils.kt +41 -21
  114. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/span/BlockSpacing.kt +15 -8
  115. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/LinkLongPressMovementMethod.kt +58 -27
  116. package/android/src/main/java/com/swmansion/enriched/markdown/utils/text/view/SelectionActionMode.kt +49 -15
  117. package/android/src/main/java/com/swmansion/enriched/markdown/views/BlockMenuOptions.kt +45 -0
  118. package/android/src/main/java/com/swmansion/enriched/markdown/views/CodeBlockContainerView.kt +396 -0
  119. package/android/src/main/java/com/swmansion/enriched/markdown/views/ContextMenuPopup.kt +9 -6
  120. package/android/src/main/java/com/swmansion/enriched/markdown/views/CopyGlyph.kt +101 -0
  121. package/android/src/main/java/com/swmansion/enriched/markdown/views/TableContainerView.kt +36 -9
  122. package/android/src/main/jni/CMakeLists.txt +53 -0
  123. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerShadowNode.cpp +10 -0
  124. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownContainerShadowNode.h +11 -2
  125. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextShadowNode.cpp +10 -0
  126. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextShadowNode.h +12 -2
  127. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextState.cpp +9 -0
  128. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/MarkdownTextState.h +24 -0
  129. package/android/src/main/jni/react/renderer/components/EnrichedMarkdownTextSpec/conversions.h +16 -0
  130. package/android/src/math/java/com/swmansion/enriched/markdown/input/math/MathChipControllerImpl.kt +21 -4
  131. package/android/src/math/java/com/swmansion/enriched/markdown/renderer/MathInlineRenderer.kt +7 -2
  132. package/android/src/math/java/com/swmansion/enriched/markdown/spans/MathChipSpan.kt +1 -1
  133. package/android/src/math/java/com/swmansion/enriched/markdown/views/MathContainerView.kt +6 -4
  134. package/cpp/highlight/CodeBlockHighlighter.cpp +284 -0
  135. package/cpp/highlight/CodeBlockHighlighter.hpp +66 -0
  136. package/cpp/highlight/CodeBlockLanguages.cpp +138 -0
  137. package/cpp/highlight/CodeBlockLanguages.hpp +25 -0
  138. package/cpp/highlight/HighlightGrammars.hpp +28 -0
  139. package/cpp/highlight/code_highlight_podspec.rb +211 -0
  140. package/cpp/highlight/gen-registry.mjs +155 -0
  141. package/cpp/highlight/grammar-versions.json +159 -0
  142. package/cpp/highlight/vendor/generated/generated_queries.h +1665 -0
  143. package/cpp/highlight/vendor/generated/generated_registry.cpp +59 -0
  144. package/cpp/parser/MD4CParser.cpp +173 -61
  145. package/cpp/parser/MD4CParser.hpp +1 -0
  146. package/cpp/parser/MarkdownASTNode.hpp +2 -1
  147. package/cpp/wasm/ASTSerializer.cpp +2 -0
  148. package/cpp/wasm/build.sh +1 -0
  149. package/cpp/wasm/md4c_wasm.cpp +3 -1
  150. package/docs/ACCESSIBILITY.md +14 -2
  151. package/docs/API_REFERENCE.md +234 -12
  152. package/docs/BREAKING_CHANGES.md +129 -0
  153. package/docs/CODE_HIGHLIGHT.md +133 -0
  154. package/docs/COPY_OPTIONS.md +47 -3
  155. package/docs/ELEMENTS_STRUCTURE.md +52 -4
  156. package/docs/IMAGE_CACHING.md +30 -0
  157. package/docs/INPUT.md +108 -11
  158. package/docs/LATEX_MATH.md +87 -45
  159. package/docs/MACOS.md +1 -1
  160. package/docs/MARKDOWN_STREAMING.md +27 -1
  161. package/docs/NATIVE_ASSETS.md +127 -0
  162. package/docs/RTL.md +1 -1
  163. package/docs/STYLES.md +46 -6
  164. package/docs/TESTING.md +112 -0
  165. package/docs/TEXT.md +16 -6
  166. package/docs/WEB.md +3 -1
  167. package/ios/EnrichedMarkdown.h +7 -0
  168. package/ios/EnrichedMarkdown.mm +284 -75
  169. package/ios/EnrichedMarkdownText.h +7 -0
  170. package/ios/EnrichedMarkdownText.mm +101 -73
  171. package/ios/attachments/ENRMImageAttachment.h +9 -0
  172. package/ios/attachments/ENRMImageAttachment.m +143 -40
  173. package/ios/attachments/ENRMMathInlineAttachment.h +2 -0
  174. package/ios/attachments/ENRMMathInlineAttachment.m +48 -81
  175. package/ios/attachments/ENRMMathInlineAttachmentShared.h +2 -0
  176. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.cpp +75 -0
  177. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/EventEmitters.h +63 -0
  178. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.cpp +35 -0
  179. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/Props.h +886 -23
  180. package/ios/generated/ReactCodegen/EnrichedMarkdownTextSpec/RCTComponentViewHelpers.h +131 -0
  181. package/ios/input/ENRMAutoLinkDetector.h +2 -1
  182. package/ios/input/ENRMAutoLinkDetector.mm +79 -41
  183. package/ios/input/ENRMBlockEditCoordinator.h +71 -0
  184. package/ios/input/ENRMBlockEditCoordinator.mm +195 -0
  185. package/ios/input/ENRMBlockRange.h +28 -0
  186. package/ios/input/ENRMBlockRange.mm +30 -0
  187. package/ios/input/ENRMBlockStore.h +56 -0
  188. package/ios/input/ENRMBlockStore.mm +275 -0
  189. package/ios/input/ENRMClipboardCoordinator.h +45 -0
  190. package/ios/input/ENRMClipboardCoordinator.mm +120 -0
  191. package/ios/input/ENRMDetectorPipeline.h +2 -1
  192. package/ios/input/ENRMEditPipeline.h +76 -0
  193. package/ios/input/ENRMEditPipeline.mm +228 -0
  194. package/ios/input/ENRMEditSession.h +36 -0
  195. package/ios/input/ENRMEditSession.mm +63 -0
  196. package/ios/input/ENRMFormattingStore.h +17 -0
  197. package/ios/input/ENRMFormattingStore.mm +95 -105
  198. package/ios/input/ENRMInputBlockType.h +91 -0
  199. package/ios/input/ENRMInputBlockType.mm +5 -0
  200. package/ios/input/ENRMInputDecorationDrawer.h +18 -0
  201. package/ios/input/ENRMInputEventEmitter.h +56 -0
  202. package/ios/input/ENRMInputEventEmitter.mm +308 -0
  203. package/ios/input/ENRMInputFormatter.h +29 -69
  204. package/ios/input/ENRMInputFormatter.mm +216 -124
  205. package/ios/input/ENRMInputFormatterStyle.h +99 -0
  206. package/ios/input/ENRMInputFormatterStyle.mm +188 -0
  207. package/ios/input/ENRMInputLayoutManager.h +9 -0
  208. package/ios/input/ENRMInputLayoutManager.mm +30 -0
  209. package/ios/input/ENRMInputListMarkerDrawer.h +32 -0
  210. package/ios/input/ENRMInputListMarkerDrawer.mm +426 -0
  211. package/ios/input/ENRMInputParser.h +5 -6
  212. package/ios/input/ENRMInputParser.mm +461 -178
  213. package/ios/input/ENRMInputRemend.mm +2 -2
  214. package/ios/input/ENRMInputStyleStateBuilder.h +40 -0
  215. package/ios/input/ENRMInputStyleStateBuilder.mm +60 -0
  216. package/ios/input/ENRMInputTextView.mm +103 -8
  217. package/ios/input/ENRMInputTypingAttributesController.h +42 -0
  218. package/ios/input/ENRMInputTypingAttributesController.mm +203 -0
  219. package/ios/input/ENRMLinkCoordinator.h +41 -0
  220. package/ios/input/ENRMLinkCoordinator.mm +89 -0
  221. package/ios/input/ENRMMarkdownSerializer.h +29 -5
  222. package/ios/input/ENRMMarkdownSerializer.mm +170 -48
  223. package/ios/input/ENRMMathAtom.h +26 -0
  224. package/ios/input/ENRMMathAtom.mm +12 -0
  225. package/ios/input/ENRMMentionCoordinator.h +45 -0
  226. package/ios/input/ENRMMentionCoordinator.mm +167 -0
  227. package/ios/input/ENRMRangeEditAdjustment.h +38 -0
  228. package/ios/input/ENRMRangeEditAdjustment.mm +91 -0
  229. package/ios/input/ENRMRangeStoreUtils.h +39 -0
  230. package/ios/input/EnrichedMarkdownTextInput+ContextMenu.mm +6 -6
  231. package/ios/input/EnrichedMarkdownTextInput+Internal.h +11 -3
  232. package/ios/input/EnrichedMarkdownTextInput.h +7 -1
  233. package/ios/input/EnrichedMarkdownTextInput.mm +1089 -1023
  234. package/ios/input/InputStylePropsUtils.h +109 -68
  235. package/ios/input/internals/EnrichedMarkdownTextInputShadowNode.mm +2 -1
  236. package/ios/input/styles/ENRMBlockHandler.h +46 -0
  237. package/ios/input/styles/ENRMHeadingBlockHandler.h +15 -0
  238. package/ios/input/styles/ENRMHeadingBlockHandler.mm +38 -0
  239. package/ios/input/styles/ENRMOrderedListBlockHandler.h +14 -0
  240. package/ios/input/styles/ENRMOrderedListBlockHandler.mm +48 -0
  241. package/ios/input/styles/ENRMUnorderedListBlockHandler.h +15 -0
  242. package/ios/input/styles/ENRMUnorderedListBlockHandler.mm +51 -0
  243. package/ios/internals/ENRMViewFreeMeasurement.h +331 -0
  244. package/ios/internals/EnrichedMarkdownShadowNode.h +1 -3
  245. package/ios/internals/EnrichedMarkdownShadowNode.mm +16 -20
  246. package/ios/internals/EnrichedMarkdownTextShadowNode.h +1 -3
  247. package/ios/internals/EnrichedMarkdownTextShadowNode.mm +15 -20
  248. package/ios/internals/MeasurementCache.h +33 -7
  249. package/ios/internals/ShadowMeasurementUtils.h +63 -58
  250. package/ios/math/ENRMMathChipController.h +74 -0
  251. package/ios/math/ENRMMathChipController.mm +476 -0
  252. package/ios/math/ENRMRaTeXBridge.swift +4 -1
  253. package/ios/parser/ENRMMarkdownParser.h +1 -8
  254. package/ios/parser/ENRMMarkdownParser.mm +2 -11
  255. package/ios/parser/MarkdownASTNode.h +2 -1
  256. package/ios/parser/MarkdownParserBridge.mm +4 -0
  257. package/ios/renderer/AttributedRenderer.m +20 -2
  258. package/ios/renderer/BaseRenderer.h +17 -2
  259. package/ios/renderer/BaseRenderer.m +30 -0
  260. package/ios/renderer/BlockquoteRenderer.h +1 -1
  261. package/ios/renderer/BlockquoteRenderer.m +144 -35
  262. package/ios/renderer/CodeBlockRenderer.h +1 -1
  263. package/ios/renderer/CodeBlockRenderer.m +27 -23
  264. package/ios/renderer/CodeRenderer.h +1 -1
  265. package/ios/renderer/CodeRenderer.m +3 -1
  266. package/ios/renderer/ENRMImageRenderer.h +1 -1
  267. package/ios/renderer/ENRMImageRenderer.m +5 -1
  268. package/ios/renderer/ENRMMathInlineRenderer.h +1 -1
  269. package/ios/renderer/ENRMMathInlineRenderer.m +5 -1
  270. package/ios/renderer/ENRMSpoilerRenderer.h +1 -1
  271. package/ios/renderer/ENRMSpoilerRenderer.m +3 -1
  272. package/ios/renderer/EmphasisRenderer.h +1 -1
  273. package/ios/renderer/EmphasisRenderer.m +3 -1
  274. package/ios/renderer/HeadingRenderer.h +1 -1
  275. package/ios/renderer/HeadingRenderer.m +13 -6
  276. package/ios/renderer/HighlightRenderer.h +1 -1
  277. package/ios/renderer/HighlightRenderer.m +3 -1
  278. package/ios/renderer/LinkRenderer.h +1 -1
  279. package/ios/renderer/LinkRenderer.m +3 -1
  280. package/ios/renderer/ListItemRenderer.h +13 -1
  281. package/ios/renderer/ListItemRenderer.m +102 -44
  282. package/ios/renderer/ListRenderer.h +2 -2
  283. package/ios/renderer/ListRenderer.m +63 -25
  284. package/ios/renderer/ParagraphRenderer.h +1 -1
  285. package/ios/renderer/ParagraphRenderer.m +16 -8
  286. package/ios/renderer/RenderContext.h +10 -0
  287. package/ios/renderer/RenderContext.m +44 -0
  288. package/ios/renderer/RendererFactory.m +14 -0
  289. package/ios/renderer/StrikethroughRenderer.h +1 -1
  290. package/ios/renderer/StrikethroughRenderer.m +3 -1
  291. package/ios/renderer/StrongRenderer.h +1 -1
  292. package/ios/renderer/StrongRenderer.m +3 -1
  293. package/ios/renderer/SubscriptRenderer.h +1 -1
  294. package/ios/renderer/SubscriptRenderer.m +3 -1
  295. package/ios/renderer/SuperscriptRenderer.h +1 -1
  296. package/ios/renderer/SuperscriptRenderer.m +3 -1
  297. package/ios/renderer/TextRenderer.h +2 -2
  298. package/ios/renderer/TextRenderer.m +3 -1
  299. package/ios/renderer/ThematicBreakRenderer.h +1 -1
  300. package/ios/renderer/ThematicBreakRenderer.m +3 -1
  301. package/ios/renderer/UnderlineRenderer.h +1 -1
  302. package/ios/renderer/UnderlineRenderer.m +3 -1
  303. package/ios/styles/StyleConfig.h +22 -0
  304. package/ios/styles/StyleConfig.mm +132 -0
  305. package/ios/utils/BlockquoteBorder.h +6 -0
  306. package/ios/utils/BlockquoteBorder.m +249 -52
  307. package/ios/utils/CodeBlockBackground.m +16 -2
  308. package/ios/utils/ENRMAtomicSize.h +65 -0
  309. package/ios/utils/ENRMBlockMenu.h +57 -0
  310. package/ios/utils/ENRMCodeBlockContent.h +37 -0
  311. package/ios/utils/ENRMCodeBlockContent.mm +79 -0
  312. package/ios/utils/ENRMCodeBlockHighlighter.h +37 -0
  313. package/ios/utils/ENRMCodeBlockHighlighter.mm +51 -0
  314. package/ios/utils/ENRMFeatureFlags.h +7 -0
  315. package/ios/utils/ENRMImageDownloader.h +11 -1
  316. package/ios/utils/ENRMImageDownloader.m +60 -16
  317. package/ios/utils/ENRMLocalImageLoader.h +31 -0
  318. package/ios/utils/ENRMLocalImageLoader.m +68 -0
  319. package/ios/utils/ENRMMathFallback.h +26 -0
  320. package/ios/utils/ENRMMathFallback.m +18 -0
  321. package/ios/utils/ENRMTextViewSetup.h +35 -17
  322. package/ios/utils/EditMenuUtils.h +22 -5
  323. package/ios/utils/EditMenuUtils.m +53 -9
  324. package/ios/utils/ImageRequestHeaderUtils.h +35 -0
  325. package/ios/utils/LastElementUtils.h +1 -0
  326. package/ios/utils/ListMarkerDrawer.m +29 -42
  327. package/ios/utils/MarkdownASTSerializer.m +4 -0
  328. package/ios/utils/ParagraphStyleUtils.h +5 -0
  329. package/ios/utils/ParagraphStyleUtils.m +77 -17
  330. package/ios/utils/RenderedMarkdownSegment.h +13 -1
  331. package/ios/utils/RenderedMarkdownSegment.m +20 -0
  332. package/ios/utils/SegmentRenderer.m +17 -4
  333. package/ios/utils/StreamingMarkdownFilter.h +11 -1
  334. package/ios/utils/StreamingMarkdownFilter.m +98 -2
  335. package/ios/utils/StylePropsUtils.h +63 -0
  336. package/ios/utils/TaskListTapUtils.m +24 -0
  337. package/ios/views/ENRMCodeBlockContainerView.h +53 -0
  338. package/ios/views/ENRMCodeBlockContainerView.m +559 -0
  339. package/ios/views/ENRMMathContainerView.h +16 -0
  340. package/ios/views/ENRMMathContainerView.m +74 -19
  341. package/ios/views/TableContainerView.h +22 -0
  342. package/ios/views/TableContainerView.m +261 -175
  343. package/jest.d.ts +1 -0
  344. package/jest.js +5 -0
  345. package/lib/module/EnrichedMarkdownNativeComponent.ts +73 -0
  346. package/lib/module/EnrichedMarkdownTextInput.js +84 -5
  347. package/lib/module/EnrichedMarkdownTextInput.js.map +1 -1
  348. package/lib/module/EnrichedMarkdownTextInputNativeComponent.ts +78 -5
  349. package/lib/module/EnrichedMarkdownTextNativeComponent.ts +74 -0
  350. package/lib/module/headingDefaults.js +34 -0
  351. package/lib/module/headingDefaults.js.map +1 -0
  352. package/lib/module/index.js.map +1 -1
  353. package/lib/module/jest/index.js +191 -0
  354. package/lib/module/jest/index.js.map +1 -0
  355. package/lib/module/native/EnrichedMarkdownText.js +37 -5
  356. package/lib/module/native/EnrichedMarkdownText.js.map +1 -1
  357. package/lib/module/normalizeMarkdownStyle.js +81 -19
  358. package/lib/module/normalizeMarkdownStyle.js.map +1 -1
  359. package/lib/module/normalizeMarkdownStyle.web.js +56 -18
  360. package/lib/module/normalizeMarkdownStyle.web.js.map +1 -1
  361. package/lib/module/normalizeMarkdownTextInputStyle.js +62 -15
  362. package/lib/module/normalizeMarkdownTextInputStyle.js.map +1 -1
  363. package/lib/module/normalizeMenuItem.js +1 -1
  364. package/lib/module/utils/textInputState.js +26 -0
  365. package/lib/module/utils/textInputState.js.map +1 -0
  366. package/lib/module/web/EnrichedMarkdownText.js +9 -5
  367. package/lib/module/web/EnrichedMarkdownText.js.map +1 -1
  368. package/lib/module/web/parseMarkdown.js +4 -3
  369. package/lib/module/web/parseMarkdown.js.map +1 -1
  370. package/lib/module/web/renderers/InlineRenderers.js +6 -0
  371. package/lib/module/web/renderers/InlineRenderers.js.map +1 -1
  372. package/lib/module/web/renderers/ListRenderers.js +7 -2
  373. package/lib/module/web/renderers/ListRenderers.js.map +1 -1
  374. package/lib/module/web/renderers/index.js +7 -4
  375. package/lib/module/web/renderers/index.js.map +1 -1
  376. package/lib/module/web/styles.js +83 -6
  377. package/lib/module/web/styles.js.map +1 -1
  378. package/lib/module/web/utils.js +1 -0
  379. package/lib/module/web/utils.js.map +1 -1
  380. package/lib/module/web/wasm/md4c.js +0 -0
  381. package/lib/module/web/wasm/md4c.js.map +1 -1
  382. package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts +66 -0
  383. package/lib/typescript/src/EnrichedMarkdownNativeComponent.d.ts.map +1 -1
  384. package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts +94 -9
  385. package/lib/typescript/src/EnrichedMarkdownTextInput.d.ts.map +1 -1
  386. package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts +69 -5
  387. package/lib/typescript/src/EnrichedMarkdownTextInputNativeComponent.d.ts.map +1 -1
  388. package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts +66 -0
  389. package/lib/typescript/src/EnrichedMarkdownTextNativeComponent.d.ts.map +1 -1
  390. package/lib/typescript/src/headingDefaults.d.ts +9 -0
  391. package/lib/typescript/src/headingDefaults.d.ts.map +1 -0
  392. package/lib/typescript/src/index.d.ts +2 -2
  393. package/lib/typescript/src/index.d.ts.map +1 -1
  394. package/lib/typescript/src/index.web.d.ts +1 -1
  395. package/lib/typescript/src/index.web.d.ts.map +1 -1
  396. package/lib/typescript/src/jest/index.d.ts +6 -0
  397. package/lib/typescript/src/jest/index.d.ts.map +1 -0
  398. package/lib/typescript/src/native/EnrichedMarkdownText.d.ts +3 -3
  399. package/lib/typescript/src/native/EnrichedMarkdownText.d.ts.map +1 -1
  400. package/lib/typescript/src/normalizeMarkdownStyle.d.ts.map +1 -1
  401. package/lib/typescript/src/normalizeMarkdownStyle.web.d.ts.map +1 -1
  402. package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts +19 -5
  403. package/lib/typescript/src/normalizeMarkdownTextInputStyle.d.ts.map +1 -1
  404. package/lib/typescript/src/types/MarkdownStyle.d.ts +72 -0
  405. package/lib/typescript/src/types/MarkdownStyle.d.ts.map +1 -1
  406. package/lib/typescript/src/types/MarkdownStyleInternal.d.ts +27 -0
  407. package/lib/typescript/src/types/MarkdownStyleInternal.d.ts.map +1 -1
  408. package/lib/typescript/src/types/MarkdownTextProps.d.ts +104 -9
  409. package/lib/typescript/src/types/MarkdownTextProps.d.ts.map +1 -1
  410. package/lib/typescript/src/types/MarkdownTextProps.web.d.ts +19 -0
  411. package/lib/typescript/src/types/MarkdownTextProps.web.d.ts.map +1 -1
  412. package/lib/typescript/src/types/events.d.ts +19 -0
  413. package/lib/typescript/src/types/events.d.ts.map +1 -1
  414. package/lib/typescript/src/utils/textInputState.d.ts +24 -0
  415. package/lib/typescript/src/utils/textInputState.d.ts.map +1 -0
  416. package/lib/typescript/src/web/EnrichedMarkdownText.d.ts +1 -1
  417. package/lib/typescript/src/web/EnrichedMarkdownText.d.ts.map +1 -1
  418. package/lib/typescript/src/web/parseMarkdown.d.ts +1 -1
  419. package/lib/typescript/src/web/parseMarkdown.d.ts.map +1 -1
  420. package/lib/typescript/src/web/renderers/InlineRenderers.d.ts.map +1 -1
  421. package/lib/typescript/src/web/renderers/ListRenderers.d.ts.map +1 -1
  422. package/lib/typescript/src/web/renderers/index.d.ts +2 -1
  423. package/lib/typescript/src/web/renderers/index.d.ts.map +1 -1
  424. package/lib/typescript/src/web/styles.d.ts +2 -1
  425. package/lib/typescript/src/web/styles.d.ts.map +1 -1
  426. package/lib/typescript/src/web/types.d.ts +6 -2
  427. package/lib/typescript/src/web/types.d.ts.map +1 -1
  428. package/lib/typescript/src/web/utils.d.ts.map +1 -1
  429. package/package.json +36 -9
  430. package/postinstall.mjs +131 -0
  431. package/ratex-version.json +21 -0
  432. package/src/EnrichedMarkdownNativeComponent.ts +73 -0
  433. package/src/EnrichedMarkdownTextInput.tsx +159 -8
  434. package/src/EnrichedMarkdownTextInputNativeComponent.ts +78 -5
  435. package/src/EnrichedMarkdownTextNativeComponent.ts +74 -0
  436. package/src/headingDefaults.ts +21 -0
  437. package/src/index.tsx +9 -0
  438. package/src/index.web.tsx +1 -0
  439. package/src/jest/index.tsx +215 -0
  440. package/src/native/EnrichedMarkdownText.tsx +53 -2
  441. package/src/normalizeMarkdownStyle.ts +102 -16
  442. package/src/normalizeMarkdownStyle.web.ts +63 -15
  443. package/src/normalizeMarkdownTextInputStyle.ts +110 -35
  444. package/src/normalizeMenuItem.ts +1 -1
  445. package/src/types/MarkdownStyle.ts +74 -0
  446. package/src/types/MarkdownStyleInternal.ts +39 -0
  447. package/src/types/MarkdownTextProps.ts +101 -9
  448. package/src/types/MarkdownTextProps.web.ts +19 -0
  449. package/src/types/events.ts +21 -0
  450. package/src/utils/textInputState.ts +35 -0
  451. package/src/web/EnrichedMarkdownText.tsx +16 -2
  452. package/src/web/parseMarkdown.ts +6 -2
  453. package/src/web/renderers/InlineRenderers.tsx +5 -0
  454. package/src/web/renderers/ListRenderers.tsx +14 -2
  455. package/src/web/renderers/index.tsx +6 -2
  456. package/src/web/styles.ts +89 -5
  457. package/src/web/types.ts +6 -1
  458. package/src/web/utils.ts +1 -0
  459. package/src/web/wasm/md4c.js +0 -0
  460. package/vendor-grammars.mjs +511 -0
  461. package/vendor-ratex.mjs +173 -0
  462. package/app.plugin.js +0 -2
  463. package/plugin/build/withAndroidMath.js +0 -19
  464. package/plugin/build/withIosMath.js +0 -28
  465. package/plugin/build/withReactNativeEnrichedMarkdown.js +0 -11
  466. package/plugin/src/withAndroidMath.ts +0 -24
  467. package/plugin/src/withIosMath.ts +0 -35
  468. package/plugin/src/withReactNativeEnrichedMarkdown.ts +0 -17
  469. package/plugin/tsconfig.build.json +0 -16
@@ -0,0 +1,1665 @@
1
+ #pragma once
2
+ // Generated by vendor/gen-registry.mjs. Do not edit.
3
+
4
+ namespace Markdown {
5
+
6
+ static const char kHighlightsQuery_json[] =
7
+ "(pair\n"
8
+ " key: (_) @string.special.key)\n"
9
+ "\n"
10
+ "(string) @string\n"
11
+ "\n"
12
+ "(number) @number\n"
13
+ "\n"
14
+ "[\n"
15
+ " (null)\n"
16
+ " (true)\n"
17
+ " (false)\n"
18
+ "] @constant.builtin\n"
19
+ "\n"
20
+ "(escape_sequence) @escape\n"
21
+ "\n"
22
+ "(comment) @comment\n"
23
+ "";
24
+
25
+ static const char kHighlightsQuery_html[] =
26
+ "(tag_name) @tag\n"
27
+ "(erroneous_end_tag_name) @tag.error\n"
28
+ "(doctype) @constant\n"
29
+ "(attribute_name) @attribute\n"
30
+ "(attribute_value) @string\n"
31
+ "(comment) @comment\n"
32
+ "\n"
33
+ "[\n"
34
+ " \"<\"\n"
35
+ " \">\"\n"
36
+ " \"</\"\n"
37
+ " \"/>\"\n"
38
+ "] @punctuation.bracket\n"
39
+ "";
40
+
41
+ static const char kHighlightsQuery_css[] =
42
+ "(comment) @comment\n"
43
+ "\n"
44
+ "(tag_name) @tag\n"
45
+ "(nesting_selector) @tag\n"
46
+ "(universal_selector) @tag\n"
47
+ "\n"
48
+ "\"~\" @operator\n"
49
+ "\">\" @operator\n"
50
+ "\"+\" @operator\n"
51
+ "\"-\" @operator\n"
52
+ "\"*\" @operator\n"
53
+ "\"/\" @operator\n"
54
+ "\"=\" @operator\n"
55
+ "\"^=\" @operator\n"
56
+ "\"|=\" @operator\n"
57
+ "\"~=\" @operator\n"
58
+ "\"$=\" @operator\n"
59
+ "\"*=\" @operator\n"
60
+ "\n"
61
+ "\"and\" @operator\n"
62
+ "\"or\" @operator\n"
63
+ "\"not\" @operator\n"
64
+ "\"only\" @operator\n"
65
+ "\n"
66
+ "(attribute_selector (plain_value) @string)\n"
67
+ "(pseudo_element_selector (tag_name) @attribute)\n"
68
+ "(pseudo_class_selector (class_name) @attribute)\n"
69
+ "\n"
70
+ "(class_name) @property\n"
71
+ "(id_name) @property\n"
72
+ "(namespace_name) @property\n"
73
+ "(property_name) @property\n"
74
+ "(feature_name) @property\n"
75
+ "\n"
76
+ "(attribute_name) @attribute\n"
77
+ "\n"
78
+ "(function_name) @function\n"
79
+ "\n"
80
+ "((property_name) @variable\n"
81
+ " (#match\? @variable \"^--\"))\n"
82
+ "((plain_value) @variable\n"
83
+ " (#match\? @variable \"^--\"))\n"
84
+ "\n"
85
+ "\"@media\" @keyword\n"
86
+ "\"@import\" @keyword\n"
87
+ "\"@charset\" @keyword\n"
88
+ "\"@namespace\" @keyword\n"
89
+ "\"@supports\" @keyword\n"
90
+ "\"@keyframes\" @keyword\n"
91
+ "(at_keyword) @keyword\n"
92
+ "(to) @keyword\n"
93
+ "(from) @keyword\n"
94
+ "(important) @keyword\n"
95
+ "\n"
96
+ "(string_value) @string\n"
97
+ "(color_value) @string.special\n"
98
+ "\n"
99
+ "(integer_value) @number\n"
100
+ "(float_value) @number\n"
101
+ "(unit) @type\n"
102
+ "\n"
103
+ "\"#\" @punctuation.delimiter\n"
104
+ "\",\" @punctuation.delimiter\n"
105
+ "\":\" @punctuation.delimiter\n"
106
+ "";
107
+
108
+ static const char kHighlightsQuery_markdown[] =
109
+ ";From nvim-treesitter/nvim-treesitter\n"
110
+ "(atx_heading (inline) @text.title)\n"
111
+ "(setext_heading (paragraph) @text.title)\n"
112
+ "\n"
113
+ "[\n"
114
+ " (atx_h1_marker)\n"
115
+ " (atx_h2_marker)\n"
116
+ " (atx_h3_marker)\n"
117
+ " (atx_h4_marker)\n"
118
+ " (atx_h5_marker)\n"
119
+ " (atx_h6_marker)\n"
120
+ " (setext_h1_underline)\n"
121
+ " (setext_h2_underline)\n"
122
+ "] @punctuation.special\n"
123
+ "\n"
124
+ "[\n"
125
+ " (link_title)\n"
126
+ " (indented_code_block)\n"
127
+ " (fenced_code_block)\n"
128
+ "] @text.literal\n"
129
+ "\n"
130
+ "[\n"
131
+ " (fenced_code_block_delimiter)\n"
132
+ "] @punctuation.delimiter\n"
133
+ "\n"
134
+ "(code_fence_content) @none\n"
135
+ "\n"
136
+ "[\n"
137
+ " (link_destination)\n"
138
+ "] @text.uri\n"
139
+ "\n"
140
+ "[\n"
141
+ " (link_label)\n"
142
+ "] @text.reference\n"
143
+ "\n"
144
+ "[\n"
145
+ " (list_marker_plus)\n"
146
+ " (list_marker_minus)\n"
147
+ " (list_marker_star)\n"
148
+ " (list_marker_dot)\n"
149
+ " (list_marker_parenthesis)\n"
150
+ " (thematic_break)\n"
151
+ "] @punctuation.special\n"
152
+ "\n"
153
+ "[\n"
154
+ " (block_continuation)\n"
155
+ " (block_quote_marker)\n"
156
+ "] @punctuation.special\n"
157
+ "\n"
158
+ "[\n"
159
+ " (backslash_escape)\n"
160
+ "] @string.escape\n"
161
+ "";
162
+
163
+ static const char kHighlightsQuery_yaml[] =
164
+ "(boolean_scalar) @boolean\n"
165
+ "\n"
166
+ "(null_scalar) @constant.builtin\n"
167
+ "\n"
168
+ "[\n"
169
+ " (double_quote_scalar)\n"
170
+ " (single_quote_scalar)\n"
171
+ " (block_scalar)\n"
172
+ " (string_scalar)\n"
173
+ "] @string\n"
174
+ "\n"
175
+ "[\n"
176
+ " (integer_scalar)\n"
177
+ " (float_scalar)\n"
178
+ "] @number\n"
179
+ "\n"
180
+ "(comment) @comment\n"
181
+ "\n"
182
+ "[\n"
183
+ " (anchor_name)\n"
184
+ " (alias_name)\n"
185
+ "] @label\n"
186
+ "\n"
187
+ "(tag) @type\n"
188
+ "\n"
189
+ "[\n"
190
+ " (yaml_directive)\n"
191
+ " (tag_directive)\n"
192
+ " (reserved_directive)\n"
193
+ "] @attribute\n"
194
+ "\n"
195
+ "(block_mapping_pair\n"
196
+ " key: (flow_node\n"
197
+ " [\n"
198
+ " (double_quote_scalar)\n"
199
+ " (single_quote_scalar)\n"
200
+ " ] @property))\n"
201
+ "\n"
202
+ "(block_mapping_pair\n"
203
+ " key: (flow_node\n"
204
+ " (plain_scalar\n"
205
+ " (string_scalar) @property)))\n"
206
+ "\n"
207
+ "(flow_mapping\n"
208
+ " (_\n"
209
+ " key: (flow_node\n"
210
+ " [\n"
211
+ " (double_quote_scalar)\n"
212
+ " (single_quote_scalar)\n"
213
+ " ] @property)))\n"
214
+ "\n"
215
+ "(flow_mapping\n"
216
+ " (_\n"
217
+ " key: (flow_node\n"
218
+ " (plain_scalar\n"
219
+ " (string_scalar) @property))))\n"
220
+ "\n"
221
+ "[\n"
222
+ " \",\"\n"
223
+ " \"-\"\n"
224
+ " \":\"\n"
225
+ " \">\"\n"
226
+ " \"\?\"\n"
227
+ " \"|\"\n"
228
+ "] @punctuation.delimiter\n"
229
+ "\n"
230
+ "[\n"
231
+ " \"[\"\n"
232
+ " \"]\"\n"
233
+ " \"{\"\n"
234
+ " \"}\"\n"
235
+ "] @punctuation.bracket\n"
236
+ "\n"
237
+ "[\n"
238
+ " \"*\"\n"
239
+ " \"&\"\n"
240
+ " \"---\"\n"
241
+ " \"...\"\n"
242
+ "] @punctuation.special\n"
243
+ "";
244
+
245
+ static const char kHighlightsQuery_go[] =
246
+ "; Function calls\n"
247
+ "\n"
248
+ "(call_expression\n"
249
+ " function: (identifier) @function)\n"
250
+ "\n"
251
+ "(call_expression\n"
252
+ " function: (identifier) @function.builtin\n"
253
+ " (#match\? @function.builtin \"^(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)$\"))\n"
254
+ "\n"
255
+ "(call_expression\n"
256
+ " function: (selector_expression\n"
257
+ " field: (field_identifier) @function.method))\n"
258
+ "\n"
259
+ "; Function definitions\n"
260
+ "\n"
261
+ "(function_declaration\n"
262
+ " name: (identifier) @function)\n"
263
+ "\n"
264
+ "(method_declaration\n"
265
+ " name: (field_identifier) @function.method)\n"
266
+ "\n"
267
+ "; Identifiers\n"
268
+ "\n"
269
+ "(type_identifier) @type\n"
270
+ "(field_identifier) @property\n"
271
+ "(identifier) @variable\n"
272
+ "\n"
273
+ "; Operators\n"
274
+ "\n"
275
+ "[\n"
276
+ " \"--\"\n"
277
+ " \"-\"\n"
278
+ " \"-=\"\n"
279
+ " \":=\"\n"
280
+ " \"!\"\n"
281
+ " \"!=\"\n"
282
+ " \"...\"\n"
283
+ " \"*\"\n"
284
+ " \"*\"\n"
285
+ " \"*=\"\n"
286
+ " \"/\"\n"
287
+ " \"/=\"\n"
288
+ " \"&\"\n"
289
+ " \"&&\"\n"
290
+ " \"&=\"\n"
291
+ " \"%\"\n"
292
+ " \"%=\"\n"
293
+ " \"^\"\n"
294
+ " \"^=\"\n"
295
+ " \"+\"\n"
296
+ " \"++\"\n"
297
+ " \"+=\"\n"
298
+ " \"<-\"\n"
299
+ " \"<\"\n"
300
+ " \"<<\"\n"
301
+ " \"<<=\"\n"
302
+ " \"<=\"\n"
303
+ " \"=\"\n"
304
+ " \"==\"\n"
305
+ " \">\"\n"
306
+ " \">=\"\n"
307
+ " \">>\"\n"
308
+ " \">>=\"\n"
309
+ " \"|\"\n"
310
+ " \"|=\"\n"
311
+ " \"||\"\n"
312
+ " \"~\"\n"
313
+ "] @operator\n"
314
+ "\n"
315
+ "; Keywords\n"
316
+ "\n"
317
+ "[\n"
318
+ " \"break\"\n"
319
+ " \"case\"\n"
320
+ " \"chan\"\n"
321
+ " \"const\"\n"
322
+ " \"continue\"\n"
323
+ " \"default\"\n"
324
+ " \"defer\"\n"
325
+ " \"else\"\n"
326
+ " \"fallthrough\"\n"
327
+ " \"for\"\n"
328
+ " \"func\"\n"
329
+ " \"go\"\n"
330
+ " \"goto\"\n"
331
+ " \"if\"\n"
332
+ " \"import\"\n"
333
+ " \"interface\"\n"
334
+ " \"map\"\n"
335
+ " \"package\"\n"
336
+ " \"range\"\n"
337
+ " \"return\"\n"
338
+ " \"select\"\n"
339
+ " \"struct\"\n"
340
+ " \"switch\"\n"
341
+ " \"type\"\n"
342
+ " \"var\"\n"
343
+ "] @keyword\n"
344
+ "\n"
345
+ "; Literals\n"
346
+ "\n"
347
+ "[\n"
348
+ " (interpreted_string_literal)\n"
349
+ " (raw_string_literal)\n"
350
+ " (rune_literal)\n"
351
+ "] @string\n"
352
+ "\n"
353
+ "(escape_sequence) @escape\n"
354
+ "\n"
355
+ "[\n"
356
+ " (int_literal)\n"
357
+ " (float_literal)\n"
358
+ " (imaginary_literal)\n"
359
+ "] @number\n"
360
+ "\n"
361
+ "[\n"
362
+ " (true)\n"
363
+ " (false)\n"
364
+ " (nil)\n"
365
+ " (iota)\n"
366
+ "] @constant.builtin\n"
367
+ "\n"
368
+ "(comment) @comment\n"
369
+ "";
370
+
371
+ static const char kHighlightsQuery_java[] =
372
+ "; Variables\n"
373
+ "\n"
374
+ "(identifier) @variable\n"
375
+ "\n"
376
+ "; Methods\n"
377
+ "\n"
378
+ "(method_declaration\n"
379
+ " name: (identifier) @function.method)\n"
380
+ "(method_invocation\n"
381
+ " name: (identifier) @function.method)\n"
382
+ "(super) @function.builtin\n"
383
+ "\n"
384
+ "; Annotations\n"
385
+ "\n"
386
+ "(annotation\n"
387
+ " name: (identifier) @attribute)\n"
388
+ "(marker_annotation\n"
389
+ " name: (identifier) @attribute)\n"
390
+ "\n"
391
+ "\"@\" @operator\n"
392
+ "\n"
393
+ "; Types\n"
394
+ "\n"
395
+ "(type_identifier) @type\n"
396
+ "\n"
397
+ "(interface_declaration\n"
398
+ " name: (identifier) @type)\n"
399
+ "(class_declaration\n"
400
+ " name: (identifier) @type)\n"
401
+ "(enum_declaration\n"
402
+ " name: (identifier) @type)\n"
403
+ "\n"
404
+ "((field_access\n"
405
+ " object: (identifier) @type)\n"
406
+ " (#match\? @type \"^[A-Z]\"))\n"
407
+ "((scoped_identifier\n"
408
+ " scope: (identifier) @type)\n"
409
+ " (#match\? @type \"^[A-Z]\"))\n"
410
+ "((method_invocation\n"
411
+ " object: (identifier) @type)\n"
412
+ " (#match\? @type \"^[A-Z]\"))\n"
413
+ "((method_reference\n"
414
+ " . (identifier) @type)\n"
415
+ " (#match\? @type \"^[A-Z]\"))\n"
416
+ "\n"
417
+ "(constructor_declaration\n"
418
+ " name: (identifier) @type)\n"
419
+ "\n"
420
+ "[\n"
421
+ " (boolean_type)\n"
422
+ " (integral_type)\n"
423
+ " (floating_point_type)\n"
424
+ " (floating_point_type)\n"
425
+ " (void_type)\n"
426
+ "] @type.builtin\n"
427
+ "\n"
428
+ "; Constants\n"
429
+ "\n"
430
+ "((identifier) @constant\n"
431
+ " (#match\? @constant \"^_*[A-Z][A-Z\\\\d_]+$\"))\n"
432
+ "\n"
433
+ "; Builtins\n"
434
+ "\n"
435
+ "(this) @variable.builtin\n"
436
+ "\n"
437
+ "; Literals\n"
438
+ "\n"
439
+ "[\n"
440
+ " (hex_integer_literal)\n"
441
+ " (decimal_integer_literal)\n"
442
+ " (octal_integer_literal)\n"
443
+ " (decimal_floating_point_literal)\n"
444
+ " (hex_floating_point_literal)\n"
445
+ "] @number\n"
446
+ "\n"
447
+ "[\n"
448
+ " (character_literal)\n"
449
+ " (string_literal)\n"
450
+ "] @string\n"
451
+ "(escape_sequence) @string.escape\n"
452
+ "\n"
453
+ "[\n"
454
+ " (true)\n"
455
+ " (false)\n"
456
+ " (null_literal)\n"
457
+ "] @constant.builtin\n"
458
+ "\n"
459
+ "[\n"
460
+ " (line_comment)\n"
461
+ " (block_comment)\n"
462
+ "] @comment\n"
463
+ "\n"
464
+ "; Keywords\n"
465
+ "\n"
466
+ "[\n"
467
+ " \"abstract\"\n"
468
+ " \"assert\"\n"
469
+ " \"break\"\n"
470
+ " \"case\"\n"
471
+ " \"catch\"\n"
472
+ " \"class\"\n"
473
+ " \"continue\"\n"
474
+ " \"default\"\n"
475
+ " \"do\"\n"
476
+ " \"else\"\n"
477
+ " \"enum\"\n"
478
+ " \"exports\"\n"
479
+ " \"extends\"\n"
480
+ " \"final\"\n"
481
+ " \"finally\"\n"
482
+ " \"for\"\n"
483
+ " \"if\"\n"
484
+ " \"implements\"\n"
485
+ " \"import\"\n"
486
+ " \"instanceof\"\n"
487
+ " \"interface\"\n"
488
+ " \"module\"\n"
489
+ " \"native\"\n"
490
+ " \"new\"\n"
491
+ " \"non-sealed\"\n"
492
+ " \"open\"\n"
493
+ " \"opens\"\n"
494
+ " \"package\"\n"
495
+ " \"permits\"\n"
496
+ " \"private\"\n"
497
+ " \"protected\"\n"
498
+ " \"provides\"\n"
499
+ " \"public\"\n"
500
+ " \"requires\"\n"
501
+ " \"record\"\n"
502
+ " \"return\"\n"
503
+ " \"sealed\"\n"
504
+ " \"static\"\n"
505
+ " \"strictfp\"\n"
506
+ " \"switch\"\n"
507
+ " \"synchronized\"\n"
508
+ " \"throw\"\n"
509
+ " \"throws\"\n"
510
+ " \"to\"\n"
511
+ " \"transient\"\n"
512
+ " \"transitive\"\n"
513
+ " \"try\"\n"
514
+ " \"uses\"\n"
515
+ " \"volatile\"\n"
516
+ " \"when\"\n"
517
+ " \"while\"\n"
518
+ " \"with\"\n"
519
+ " \"yield\"\n"
520
+ "] @keyword\n"
521
+ "";
522
+
523
+ static const char kHighlightsQuery_javascript[] =
524
+ "; Variables\n"
525
+ ";----------\n"
526
+ "\n"
527
+ "(identifier) @variable\n"
528
+ "\n"
529
+ "; Properties\n"
530
+ ";-----------\n"
531
+ "\n"
532
+ "(property_identifier) @property\n"
533
+ "\n"
534
+ "; Function and method definitions\n"
535
+ ";--------------------------------\n"
536
+ "\n"
537
+ "(function_expression\n"
538
+ " name: (identifier) @function)\n"
539
+ "(function_declaration\n"
540
+ " name: (identifier) @function)\n"
541
+ "(method_definition\n"
542
+ " name: (property_identifier) @function.method)\n"
543
+ "\n"
544
+ "(pair\n"
545
+ " key: (property_identifier) @function.method\n"
546
+ " value: [(function_expression) (arrow_function)])\n"
547
+ "\n"
548
+ "(assignment_expression\n"
549
+ " left: (member_expression\n"
550
+ " property: (property_identifier) @function.method)\n"
551
+ " right: [(function_expression) (arrow_function)])\n"
552
+ "\n"
553
+ "(variable_declarator\n"
554
+ " name: (identifier) @function\n"
555
+ " value: [(function_expression) (arrow_function)])\n"
556
+ "\n"
557
+ "(assignment_expression\n"
558
+ " left: (identifier) @function\n"
559
+ " right: [(function_expression) (arrow_function)])\n"
560
+ "\n"
561
+ "; Function and method calls\n"
562
+ ";--------------------------\n"
563
+ "\n"
564
+ "(call_expression\n"
565
+ " function: (identifier) @function)\n"
566
+ "\n"
567
+ "(call_expression\n"
568
+ " function: (member_expression\n"
569
+ " property: (property_identifier) @function.method))\n"
570
+ "\n"
571
+ "; Special identifiers\n"
572
+ ";--------------------\n"
573
+ "\n"
574
+ "((identifier) @constructor\n"
575
+ " (#match\? @constructor \"^[A-Z]\"))\n"
576
+ "\n"
577
+ "([\n"
578
+ " (identifier)\n"
579
+ " (shorthand_property_identifier)\n"
580
+ " (shorthand_property_identifier_pattern)\n"
581
+ " ] @constant\n"
582
+ " (#match\? @constant \"^[A-Z_][A-Z\\\\d_]+$\"))\n"
583
+ "\n"
584
+ "((identifier) @variable.builtin\n"
585
+ " (#match\? @variable.builtin \"^(arguments|module|console|window|document)$\")\n"
586
+ " (#is-not\? local))\n"
587
+ "\n"
588
+ "((identifier) @function.builtin\n"
589
+ " (#eq\? @function.builtin \"require\")\n"
590
+ " (#is-not\? local))\n"
591
+ "\n"
592
+ "; Literals\n"
593
+ ";---------\n"
594
+ "\n"
595
+ "(this) @variable.builtin\n"
596
+ "(super) @variable.builtin\n"
597
+ "\n"
598
+ "[\n"
599
+ " (true)\n"
600
+ " (false)\n"
601
+ " (null)\n"
602
+ " (undefined)\n"
603
+ "] @constant.builtin\n"
604
+ "\n"
605
+ "(comment) @comment\n"
606
+ "\n"
607
+ "[\n"
608
+ " (string)\n"
609
+ " (template_string)\n"
610
+ "] @string\n"
611
+ "\n"
612
+ "(regex) @string.special\n"
613
+ "(number) @number\n"
614
+ "\n"
615
+ "; Tokens\n"
616
+ ";-------\n"
617
+ "\n"
618
+ "[\n"
619
+ " \";\"\n"
620
+ " (optional_chain)\n"
621
+ " \".\"\n"
622
+ " \",\"\n"
623
+ "] @punctuation.delimiter\n"
624
+ "\n"
625
+ "[\n"
626
+ " \"-\"\n"
627
+ " \"--\"\n"
628
+ " \"-=\"\n"
629
+ " \"+\"\n"
630
+ " \"++\"\n"
631
+ " \"+=\"\n"
632
+ " \"*\"\n"
633
+ " \"*=\"\n"
634
+ " \"**\"\n"
635
+ " \"**=\"\n"
636
+ " \"/\"\n"
637
+ " \"/=\"\n"
638
+ " \"%\"\n"
639
+ " \"%=\"\n"
640
+ " \"<\"\n"
641
+ " \"<=\"\n"
642
+ " \"<<\"\n"
643
+ " \"<<=\"\n"
644
+ " \"=\"\n"
645
+ " \"==\"\n"
646
+ " \"===\"\n"
647
+ " \"!\"\n"
648
+ " \"!=\"\n"
649
+ " \"!==\"\n"
650
+ " \"=>\"\n"
651
+ " \">\"\n"
652
+ " \">=\"\n"
653
+ " \">>\"\n"
654
+ " \">>=\"\n"
655
+ " \">>>\"\n"
656
+ " \">>>=\"\n"
657
+ " \"~\"\n"
658
+ " \"^\"\n"
659
+ " \"&\"\n"
660
+ " \"|\"\n"
661
+ " \"^=\"\n"
662
+ " \"&=\"\n"
663
+ " \"|=\"\n"
664
+ " \"&&\"\n"
665
+ " \"||\"\n"
666
+ " \"\?\?\"\n"
667
+ " \"&&=\"\n"
668
+ " \"||=\"\n"
669
+ " \"\?\?=\"\n"
670
+ "] @operator\n"
671
+ "\n"
672
+ "[\n"
673
+ " \"(\"\n"
674
+ " \")\"\n"
675
+ " \"[\"\n"
676
+ " \"]\"\n"
677
+ " \"{\"\n"
678
+ " \"}\"\n"
679
+ "] @punctuation.bracket\n"
680
+ "\n"
681
+ "(template_substitution\n"
682
+ " \"${\" @punctuation.special\n"
683
+ " \"}\" @punctuation.special) @embedded\n"
684
+ "\n"
685
+ "[\n"
686
+ " \"as\"\n"
687
+ " \"async\"\n"
688
+ " \"await\"\n"
689
+ " \"break\"\n"
690
+ " \"case\"\n"
691
+ " \"catch\"\n"
692
+ " \"class\"\n"
693
+ " \"const\"\n"
694
+ " \"continue\"\n"
695
+ " \"debugger\"\n"
696
+ " \"default\"\n"
697
+ " \"delete\"\n"
698
+ " \"do\"\n"
699
+ " \"else\"\n"
700
+ " \"export\"\n"
701
+ " \"extends\"\n"
702
+ " \"finally\"\n"
703
+ " \"for\"\n"
704
+ " \"from\"\n"
705
+ " \"function\"\n"
706
+ " \"get\"\n"
707
+ " \"if\"\n"
708
+ " \"import\"\n"
709
+ " \"in\"\n"
710
+ " \"instanceof\"\n"
711
+ " \"let\"\n"
712
+ " \"new\"\n"
713
+ " \"of\"\n"
714
+ " \"return\"\n"
715
+ " \"set\"\n"
716
+ " \"static\"\n"
717
+ " \"switch\"\n"
718
+ " \"target\"\n"
719
+ " \"throw\"\n"
720
+ " \"try\"\n"
721
+ " \"typeof\"\n"
722
+ " \"var\"\n"
723
+ " \"void\"\n"
724
+ " \"while\"\n"
725
+ " \"with\"\n"
726
+ " \"yield\"\n"
727
+ "] @keyword\n"
728
+ "";
729
+
730
+ static const char kHighlightsQuery_python[] =
731
+ "; Identifier naming conventions\n"
732
+ "\n"
733
+ "(identifier) @variable\n"
734
+ "\n"
735
+ "((identifier) @constructor\n"
736
+ " (#match\? @constructor \"^[A-Z]\"))\n"
737
+ "\n"
738
+ "((identifier) @constant\n"
739
+ " (#match\? @constant \"^[A-Z][A-Z_]*$\"))\n"
740
+ "\n"
741
+ "; Function calls\n"
742
+ "\n"
743
+ "(decorator) @function\n"
744
+ "(decorator\n"
745
+ " (identifier) @function)\n"
746
+ "\n"
747
+ "(call\n"
748
+ " function: (attribute attribute: (identifier) @function.method))\n"
749
+ "(call\n"
750
+ " function: (identifier) @function)\n"
751
+ "\n"
752
+ "; Builtin functions\n"
753
+ "\n"
754
+ "((call\n"
755
+ " function: (identifier) @function.builtin)\n"
756
+ " (#match\?\n"
757
+ " @function.builtin\n"
758
+ " \"^(abs|all|any|ascii|bin|bool|breakpoint|bytearray|bytes|callable|chr|classmethod|compile|complex|delattr|dict|dir|divmod|enumerate|eval|exec|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|map|max|memoryview|min|next|object|oct|open|ord|pow|print|property|range|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|vars|zip|__import__)$\"))\n"
759
+ "\n"
760
+ "; Function definitions\n"
761
+ "\n"
762
+ "(function_definition\n"
763
+ " name: (identifier) @function)\n"
764
+ "\n"
765
+ "(attribute attribute: (identifier) @property)\n"
766
+ "(type (identifier) @type)\n"
767
+ "\n"
768
+ "; Literals\n"
769
+ "\n"
770
+ "[\n"
771
+ " (none)\n"
772
+ " (true)\n"
773
+ " (false)\n"
774
+ "] @constant.builtin\n"
775
+ "\n"
776
+ "[\n"
777
+ " (integer)\n"
778
+ " (float)\n"
779
+ "] @number\n"
780
+ "\n"
781
+ "(comment) @comment\n"
782
+ "(string) @string\n"
783
+ "(escape_sequence) @escape\n"
784
+ "\n"
785
+ "(interpolation\n"
786
+ " \"{\" @punctuation.special\n"
787
+ " \"}\" @punctuation.special) @embedded\n"
788
+ "\n"
789
+ "[\n"
790
+ " \"-\"\n"
791
+ " \"-=\"\n"
792
+ " \"!=\"\n"
793
+ " \"*\"\n"
794
+ " \"**\"\n"
795
+ " \"**=\"\n"
796
+ " \"*=\"\n"
797
+ " \"/\"\n"
798
+ " \"//\"\n"
799
+ " \"//=\"\n"
800
+ " \"/=\"\n"
801
+ " \"&\"\n"
802
+ " \"&=\"\n"
803
+ " \"%\"\n"
804
+ " \"%=\"\n"
805
+ " \"^\"\n"
806
+ " \"^=\"\n"
807
+ " \"+\"\n"
808
+ " \"->\"\n"
809
+ " \"+=\"\n"
810
+ " \"<\"\n"
811
+ " \"<<\"\n"
812
+ " \"<<=\"\n"
813
+ " \"<=\"\n"
814
+ " \"<>\"\n"
815
+ " \"=\"\n"
816
+ " \":=\"\n"
817
+ " \"==\"\n"
818
+ " \">\"\n"
819
+ " \">=\"\n"
820
+ " \">>\"\n"
821
+ " \">>=\"\n"
822
+ " \"|\"\n"
823
+ " \"|=\"\n"
824
+ " \"~\"\n"
825
+ " \"@=\"\n"
826
+ " \"and\"\n"
827
+ " \"in\"\n"
828
+ " \"is\"\n"
829
+ " \"not\"\n"
830
+ " \"or\"\n"
831
+ " \"is not\"\n"
832
+ " \"not in\"\n"
833
+ "] @operator\n"
834
+ "\n"
835
+ "[\n"
836
+ " \"as\"\n"
837
+ " \"assert\"\n"
838
+ " \"async\"\n"
839
+ " \"await\"\n"
840
+ " \"break\"\n"
841
+ " \"class\"\n"
842
+ " \"continue\"\n"
843
+ " \"def\"\n"
844
+ " \"del\"\n"
845
+ " \"elif\"\n"
846
+ " \"else\"\n"
847
+ " \"except\"\n"
848
+ " \"exec\"\n"
849
+ " \"finally\"\n"
850
+ " \"for\"\n"
851
+ " \"from\"\n"
852
+ " \"global\"\n"
853
+ " \"if\"\n"
854
+ " \"import\"\n"
855
+ " \"lambda\"\n"
856
+ " \"nonlocal\"\n"
857
+ " \"pass\"\n"
858
+ " \"print\"\n"
859
+ " \"raise\"\n"
860
+ " \"return\"\n"
861
+ " \"try\"\n"
862
+ " \"while\"\n"
863
+ " \"with\"\n"
864
+ " \"yield\"\n"
865
+ " \"match\"\n"
866
+ " \"case\"\n"
867
+ "] @keyword\n"
868
+ "";
869
+
870
+ static const char kHighlightsQuery_c[] =
871
+ "(identifier) @variable\n"
872
+ "\n"
873
+ "((identifier) @constant\n"
874
+ " (#match\? @constant \"^[A-Z][A-Z\\\\d_]*$\"))\n"
875
+ "\n"
876
+ "\"break\" @keyword\n"
877
+ "\"case\" @keyword\n"
878
+ "\"const\" @keyword\n"
879
+ "\"continue\" @keyword\n"
880
+ "\"default\" @keyword\n"
881
+ "\"do\" @keyword\n"
882
+ "\"else\" @keyword\n"
883
+ "\"enum\" @keyword\n"
884
+ "\"extern\" @keyword\n"
885
+ "\"for\" @keyword\n"
886
+ "\"if\" @keyword\n"
887
+ "\"inline\" @keyword\n"
888
+ "\"return\" @keyword\n"
889
+ "\"sizeof\" @keyword\n"
890
+ "\"static\" @keyword\n"
891
+ "\"struct\" @keyword\n"
892
+ "\"switch\" @keyword\n"
893
+ "\"typedef\" @keyword\n"
894
+ "\"union\" @keyword\n"
895
+ "\"volatile\" @keyword\n"
896
+ "\"while\" @keyword\n"
897
+ "\n"
898
+ "\"#define\" @keyword\n"
899
+ "\"#elif\" @keyword\n"
900
+ "\"#else\" @keyword\n"
901
+ "\"#endif\" @keyword\n"
902
+ "\"#if\" @keyword\n"
903
+ "\"#ifdef\" @keyword\n"
904
+ "\"#ifndef\" @keyword\n"
905
+ "\"#include\" @keyword\n"
906
+ "(preproc_directive) @keyword\n"
907
+ "\n"
908
+ "\"--\" @operator\n"
909
+ "\"-\" @operator\n"
910
+ "\"-=\" @operator\n"
911
+ "\"->\" @operator\n"
912
+ "\"=\" @operator\n"
913
+ "\"!=\" @operator\n"
914
+ "\"*\" @operator\n"
915
+ "\"&\" @operator\n"
916
+ "\"&&\" @operator\n"
917
+ "\"+\" @operator\n"
918
+ "\"++\" @operator\n"
919
+ "\"+=\" @operator\n"
920
+ "\"<\" @operator\n"
921
+ "\"==\" @operator\n"
922
+ "\">\" @operator\n"
923
+ "\"||\" @operator\n"
924
+ "\n"
925
+ "\".\" @delimiter\n"
926
+ "\";\" @delimiter\n"
927
+ "\n"
928
+ "(string_literal) @string\n"
929
+ "(system_lib_string) @string\n"
930
+ "\n"
931
+ "(null) @constant\n"
932
+ "(number_literal) @number\n"
933
+ "(char_literal) @number\n"
934
+ "\n"
935
+ "(field_identifier) @property\n"
936
+ "(statement_identifier) @label\n"
937
+ "(type_identifier) @type\n"
938
+ "(primitive_type) @type\n"
939
+ "(sized_type_specifier) @type\n"
940
+ "\n"
941
+ "(call_expression\n"
942
+ " function: (identifier) @function)\n"
943
+ "(call_expression\n"
944
+ " function: (field_expression\n"
945
+ " field: (field_identifier) @function))\n"
946
+ "(function_declarator\n"
947
+ " declarator: (identifier) @function)\n"
948
+ "(preproc_function_def\n"
949
+ " name: (identifier) @function.special)\n"
950
+ "\n"
951
+ "(comment) @comment\n"
952
+ "";
953
+
954
+ static const char kHighlightsQuery_rust[] =
955
+ "; Identifiers\n"
956
+ "\n"
957
+ "(type_identifier) @type\n"
958
+ "(primitive_type) @type.builtin\n"
959
+ "(field_identifier) @property\n"
960
+ "\n"
961
+ "; Identifier conventions\n"
962
+ "\n"
963
+ "; Assume all-caps names are constants\n"
964
+ "((identifier) @constant\n"
965
+ " (#match\? @constant \"^[A-Z][A-Z\\\\d_]+$'\"))\n"
966
+ "\n"
967
+ "; Assume uppercase names are enum constructors\n"
968
+ "((identifier) @constructor\n"
969
+ " (#match\? @constructor \"^[A-Z]\"))\n"
970
+ "\n"
971
+ "; Assume that uppercase names in paths are types\n"
972
+ "((scoped_identifier\n"
973
+ " path: (identifier) @type)\n"
974
+ " (#match\? @type \"^[A-Z]\"))\n"
975
+ "((scoped_identifier\n"
976
+ " path: (scoped_identifier\n"
977
+ " name: (identifier) @type))\n"
978
+ " (#match\? @type \"^[A-Z]\"))\n"
979
+ "((scoped_type_identifier\n"
980
+ " path: (identifier) @type)\n"
981
+ " (#match\? @type \"^[A-Z]\"))\n"
982
+ "((scoped_type_identifier\n"
983
+ " path: (scoped_identifier\n"
984
+ " name: (identifier) @type))\n"
985
+ " (#match\? @type \"^[A-Z]\"))\n"
986
+ "\n"
987
+ "; Assume all qualified names in struct patterns are enum constructors. (They're\n"
988
+ "; either that, or struct names; highlighting both as constructors seems to be\n"
989
+ "; the less glaring choice of error, visually.)\n"
990
+ "(struct_pattern\n"
991
+ " type: (scoped_type_identifier\n"
992
+ " name: (type_identifier) @constructor))\n"
993
+ "\n"
994
+ "; Function calls\n"
995
+ "\n"
996
+ "(call_expression\n"
997
+ " function: (identifier) @function)\n"
998
+ "(call_expression\n"
999
+ " function: (field_expression\n"
1000
+ " field: (field_identifier) @function.method))\n"
1001
+ "(call_expression\n"
1002
+ " function: (scoped_identifier\n"
1003
+ " \"::\"\n"
1004
+ " name: (identifier) @function))\n"
1005
+ "\n"
1006
+ "(generic_function\n"
1007
+ " function: (identifier) @function)\n"
1008
+ "(generic_function\n"
1009
+ " function: (scoped_identifier\n"
1010
+ " name: (identifier) @function))\n"
1011
+ "(generic_function\n"
1012
+ " function: (field_expression\n"
1013
+ " field: (field_identifier) @function.method))\n"
1014
+ "\n"
1015
+ "(macro_invocation\n"
1016
+ " macro: (identifier) @function.macro\n"
1017
+ " \"!\" @function.macro)\n"
1018
+ "\n"
1019
+ "; Function definitions\n"
1020
+ "\n"
1021
+ "(function_item (identifier) @function)\n"
1022
+ "(function_signature_item (identifier) @function)\n"
1023
+ "\n"
1024
+ "(line_comment) @comment\n"
1025
+ "(block_comment) @comment\n"
1026
+ "\n"
1027
+ "(line_comment (doc_comment)) @comment.documentation\n"
1028
+ "(block_comment (doc_comment)) @comment.documentation\n"
1029
+ "\n"
1030
+ "\"(\" @punctuation.bracket\n"
1031
+ "\")\" @punctuation.bracket\n"
1032
+ "\"[\" @punctuation.bracket\n"
1033
+ "\"]\" @punctuation.bracket\n"
1034
+ "\"{\" @punctuation.bracket\n"
1035
+ "\"}\" @punctuation.bracket\n"
1036
+ "\n"
1037
+ "(type_arguments\n"
1038
+ " \"<\" @punctuation.bracket\n"
1039
+ " \">\" @punctuation.bracket)\n"
1040
+ "(type_parameters\n"
1041
+ " \"<\" @punctuation.bracket\n"
1042
+ " \">\" @punctuation.bracket)\n"
1043
+ "\n"
1044
+ "\"::\" @punctuation.delimiter\n"
1045
+ "\":\" @punctuation.delimiter\n"
1046
+ "\".\" @punctuation.delimiter\n"
1047
+ "\",\" @punctuation.delimiter\n"
1048
+ "\";\" @punctuation.delimiter\n"
1049
+ "\n"
1050
+ "(parameter (identifier) @variable.parameter)\n"
1051
+ "\n"
1052
+ "(lifetime (identifier) @label)\n"
1053
+ "\n"
1054
+ "\"as\" @keyword\n"
1055
+ "\"async\" @keyword\n"
1056
+ "\"await\" @keyword\n"
1057
+ "\"break\" @keyword\n"
1058
+ "\"const\" @keyword\n"
1059
+ "\"continue\" @keyword\n"
1060
+ "\"default\" @keyword\n"
1061
+ "\"dyn\" @keyword\n"
1062
+ "\"else\" @keyword\n"
1063
+ "\"enum\" @keyword\n"
1064
+ "\"extern\" @keyword\n"
1065
+ "\"fn\" @keyword\n"
1066
+ "\"for\" @keyword\n"
1067
+ "\"gen\" @keyword\n"
1068
+ "\"if\" @keyword\n"
1069
+ "\"impl\" @keyword\n"
1070
+ "\"in\" @keyword\n"
1071
+ "\"let\" @keyword\n"
1072
+ "\"loop\" @keyword\n"
1073
+ "\"macro_rules!\" @keyword\n"
1074
+ "\"match\" @keyword\n"
1075
+ "\"mod\" @keyword\n"
1076
+ "\"move\" @keyword\n"
1077
+ "\"pub\" @keyword\n"
1078
+ "\"raw\" @keyword\n"
1079
+ "\"ref\" @keyword\n"
1080
+ "\"return\" @keyword\n"
1081
+ "\"static\" @keyword\n"
1082
+ "\"struct\" @keyword\n"
1083
+ "\"trait\" @keyword\n"
1084
+ "\"type\" @keyword\n"
1085
+ "\"union\" @keyword\n"
1086
+ "\"unsafe\" @keyword\n"
1087
+ "\"use\" @keyword\n"
1088
+ "\"where\" @keyword\n"
1089
+ "\"while\" @keyword\n"
1090
+ "\"yield\" @keyword\n"
1091
+ "(crate) @keyword\n"
1092
+ "(mutable_specifier) @keyword\n"
1093
+ "(use_list (self) @keyword)\n"
1094
+ "(scoped_use_list (self) @keyword)\n"
1095
+ "(scoped_identifier (self) @keyword)\n"
1096
+ "(super) @keyword\n"
1097
+ "\n"
1098
+ "(self) @variable.builtin\n"
1099
+ "\n"
1100
+ "(char_literal) @string\n"
1101
+ "(string_literal) @string\n"
1102
+ "(raw_string_literal) @string\n"
1103
+ "\n"
1104
+ "(boolean_literal) @constant.builtin\n"
1105
+ "(integer_literal) @constant.builtin\n"
1106
+ "(float_literal) @constant.builtin\n"
1107
+ "\n"
1108
+ "(escape_sequence) @escape\n"
1109
+ "\n"
1110
+ "(attribute_item) @attribute\n"
1111
+ "(inner_attribute_item) @attribute\n"
1112
+ "\n"
1113
+ "\"*\" @operator\n"
1114
+ "\"&\" @operator\n"
1115
+ "\"'\" @operator\n"
1116
+ "";
1117
+
1118
+ static const char kHighlightsQuery_bash[] =
1119
+ "[\n"
1120
+ " (string)\n"
1121
+ " (raw_string)\n"
1122
+ " (heredoc_body)\n"
1123
+ " (heredoc_start)\n"
1124
+ "] @string\n"
1125
+ "\n"
1126
+ "(command_name) @function\n"
1127
+ "\n"
1128
+ "(variable_name) @property\n"
1129
+ "\n"
1130
+ "[\n"
1131
+ " \"case\"\n"
1132
+ " \"do\"\n"
1133
+ " \"done\"\n"
1134
+ " \"elif\"\n"
1135
+ " \"else\"\n"
1136
+ " \"esac\"\n"
1137
+ " \"export\"\n"
1138
+ " \"fi\"\n"
1139
+ " \"for\"\n"
1140
+ " \"function\"\n"
1141
+ " \"if\"\n"
1142
+ " \"in\"\n"
1143
+ " \"select\"\n"
1144
+ " \"then\"\n"
1145
+ " \"unset\"\n"
1146
+ " \"until\"\n"
1147
+ " \"while\"\n"
1148
+ "] @keyword\n"
1149
+ "\n"
1150
+ "(comment) @comment\n"
1151
+ "\n"
1152
+ "(function_definition name: (word) @function)\n"
1153
+ "\n"
1154
+ "(file_descriptor) @number\n"
1155
+ "\n"
1156
+ "[\n"
1157
+ " (command_substitution)\n"
1158
+ " (process_substitution)\n"
1159
+ " (expansion)\n"
1160
+ "]@embedded\n"
1161
+ "\n"
1162
+ "[\n"
1163
+ " \"$\"\n"
1164
+ " \"&&\"\n"
1165
+ " \">\"\n"
1166
+ " \">>\"\n"
1167
+ " \"<\"\n"
1168
+ " \"|\"\n"
1169
+ "] @operator\n"
1170
+ "\n"
1171
+ "(\n"
1172
+ " (command (_) @constant)\n"
1173
+ " (#match\? @constant \"^-\")\n"
1174
+ ")\n"
1175
+ "";
1176
+
1177
+ static const char kHighlightsQuery_typescript[] =
1178
+ "; Variables\n"
1179
+ ";----------\n"
1180
+ "\n"
1181
+ "(identifier) @variable\n"
1182
+ "\n"
1183
+ "; Properties\n"
1184
+ ";-----------\n"
1185
+ "\n"
1186
+ "(property_identifier) @property\n"
1187
+ "\n"
1188
+ "; Function and method definitions\n"
1189
+ ";--------------------------------\n"
1190
+ "\n"
1191
+ "(function_expression\n"
1192
+ " name: (identifier) @function)\n"
1193
+ "(function_declaration\n"
1194
+ " name: (identifier) @function)\n"
1195
+ "(method_definition\n"
1196
+ " name: (property_identifier) @function.method)\n"
1197
+ "\n"
1198
+ "(pair\n"
1199
+ " key: (property_identifier) @function.method\n"
1200
+ " value: [(function_expression) (arrow_function)])\n"
1201
+ "\n"
1202
+ "(assignment_expression\n"
1203
+ " left: (member_expression\n"
1204
+ " property: (property_identifier) @function.method)\n"
1205
+ " right: [(function_expression) (arrow_function)])\n"
1206
+ "\n"
1207
+ "(variable_declarator\n"
1208
+ " name: (identifier) @function\n"
1209
+ " value: [(function_expression) (arrow_function)])\n"
1210
+ "\n"
1211
+ "(assignment_expression\n"
1212
+ " left: (identifier) @function\n"
1213
+ " right: [(function_expression) (arrow_function)])\n"
1214
+ "\n"
1215
+ "; Function and method calls\n"
1216
+ ";--------------------------\n"
1217
+ "\n"
1218
+ "(call_expression\n"
1219
+ " function: (identifier) @function)\n"
1220
+ "\n"
1221
+ "(call_expression\n"
1222
+ " function: (member_expression\n"
1223
+ " property: (property_identifier) @function.method))\n"
1224
+ "\n"
1225
+ "; Special identifiers\n"
1226
+ ";--------------------\n"
1227
+ "\n"
1228
+ "((identifier) @constructor\n"
1229
+ " (#match\? @constructor \"^[A-Z]\"))\n"
1230
+ "\n"
1231
+ "([\n"
1232
+ " (identifier)\n"
1233
+ " (shorthand_property_identifier)\n"
1234
+ " (shorthand_property_identifier_pattern)\n"
1235
+ " ] @constant\n"
1236
+ " (#match\? @constant \"^[A-Z_][A-Z\\\\d_]+$\"))\n"
1237
+ "\n"
1238
+ "((identifier) @variable.builtin\n"
1239
+ " (#match\? @variable.builtin \"^(arguments|module|console|window|document)$\")\n"
1240
+ " (#is-not\? local))\n"
1241
+ "\n"
1242
+ "((identifier) @function.builtin\n"
1243
+ " (#eq\? @function.builtin \"require\")\n"
1244
+ " (#is-not\? local))\n"
1245
+ "\n"
1246
+ "; Literals\n"
1247
+ ";---------\n"
1248
+ "\n"
1249
+ "(this) @variable.builtin\n"
1250
+ "(super) @variable.builtin\n"
1251
+ "\n"
1252
+ "[\n"
1253
+ " (true)\n"
1254
+ " (false)\n"
1255
+ " (null)\n"
1256
+ " (undefined)\n"
1257
+ "] @constant.builtin\n"
1258
+ "\n"
1259
+ "(comment) @comment\n"
1260
+ "\n"
1261
+ "[\n"
1262
+ " (string)\n"
1263
+ " (template_string)\n"
1264
+ "] @string\n"
1265
+ "\n"
1266
+ "(regex) @string.special\n"
1267
+ "(number) @number\n"
1268
+ "\n"
1269
+ "; Tokens\n"
1270
+ ";-------\n"
1271
+ "\n"
1272
+ "[\n"
1273
+ " \";\"\n"
1274
+ " (optional_chain)\n"
1275
+ " \".\"\n"
1276
+ " \",\"\n"
1277
+ "] @punctuation.delimiter\n"
1278
+ "\n"
1279
+ "[\n"
1280
+ " \"-\"\n"
1281
+ " \"--\"\n"
1282
+ " \"-=\"\n"
1283
+ " \"+\"\n"
1284
+ " \"++\"\n"
1285
+ " \"+=\"\n"
1286
+ " \"*\"\n"
1287
+ " \"*=\"\n"
1288
+ " \"**\"\n"
1289
+ " \"**=\"\n"
1290
+ " \"/\"\n"
1291
+ " \"/=\"\n"
1292
+ " \"%\"\n"
1293
+ " \"%=\"\n"
1294
+ " \"<\"\n"
1295
+ " \"<=\"\n"
1296
+ " \"<<\"\n"
1297
+ " \"<<=\"\n"
1298
+ " \"=\"\n"
1299
+ " \"==\"\n"
1300
+ " \"===\"\n"
1301
+ " \"!\"\n"
1302
+ " \"!=\"\n"
1303
+ " \"!==\"\n"
1304
+ " \"=>\"\n"
1305
+ " \">\"\n"
1306
+ " \">=\"\n"
1307
+ " \">>\"\n"
1308
+ " \">>=\"\n"
1309
+ " \">>>\"\n"
1310
+ " \">>>=\"\n"
1311
+ " \"~\"\n"
1312
+ " \"^\"\n"
1313
+ " \"&\"\n"
1314
+ " \"|\"\n"
1315
+ " \"^=\"\n"
1316
+ " \"&=\"\n"
1317
+ " \"|=\"\n"
1318
+ " \"&&\"\n"
1319
+ " \"||\"\n"
1320
+ " \"\?\?\"\n"
1321
+ " \"&&=\"\n"
1322
+ " \"||=\"\n"
1323
+ " \"\?\?=\"\n"
1324
+ "] @operator\n"
1325
+ "\n"
1326
+ "[\n"
1327
+ " \"(\"\n"
1328
+ " \")\"\n"
1329
+ " \"[\"\n"
1330
+ " \"]\"\n"
1331
+ " \"{\"\n"
1332
+ " \"}\"\n"
1333
+ "] @punctuation.bracket\n"
1334
+ "\n"
1335
+ "(template_substitution\n"
1336
+ " \"${\" @punctuation.special\n"
1337
+ " \"}\" @punctuation.special) @embedded\n"
1338
+ "\n"
1339
+ "[\n"
1340
+ " \"as\"\n"
1341
+ " \"async\"\n"
1342
+ " \"await\"\n"
1343
+ " \"break\"\n"
1344
+ " \"case\"\n"
1345
+ " \"catch\"\n"
1346
+ " \"class\"\n"
1347
+ " \"const\"\n"
1348
+ " \"continue\"\n"
1349
+ " \"debugger\"\n"
1350
+ " \"default\"\n"
1351
+ " \"delete\"\n"
1352
+ " \"do\"\n"
1353
+ " \"else\"\n"
1354
+ " \"export\"\n"
1355
+ " \"extends\"\n"
1356
+ " \"finally\"\n"
1357
+ " \"for\"\n"
1358
+ " \"from\"\n"
1359
+ " \"function\"\n"
1360
+ " \"get\"\n"
1361
+ " \"if\"\n"
1362
+ " \"import\"\n"
1363
+ " \"in\"\n"
1364
+ " \"instanceof\"\n"
1365
+ " \"let\"\n"
1366
+ " \"new\"\n"
1367
+ " \"of\"\n"
1368
+ " \"return\"\n"
1369
+ " \"set\"\n"
1370
+ " \"static\"\n"
1371
+ " \"switch\"\n"
1372
+ " \"target\"\n"
1373
+ " \"throw\"\n"
1374
+ " \"try\"\n"
1375
+ " \"typeof\"\n"
1376
+ " \"var\"\n"
1377
+ " \"void\"\n"
1378
+ " \"while\"\n"
1379
+ " \"with\"\n"
1380
+ " \"yield\"\n"
1381
+ "] @keyword\n"
1382
+ "\n"
1383
+ "\n"
1384
+ "; Types\n"
1385
+ "\n"
1386
+ "(type_identifier) @type\n"
1387
+ "(predefined_type) @type.builtin\n"
1388
+ "\n"
1389
+ "((identifier) @type\n"
1390
+ " (#match\? @type \"^[A-Z]\"))\n"
1391
+ "\n"
1392
+ "(type_arguments\n"
1393
+ " \"<\" @punctuation.bracket\n"
1394
+ " \">\" @punctuation.bracket)\n"
1395
+ "\n"
1396
+ "; Variables\n"
1397
+ "\n"
1398
+ "(required_parameter (identifier) @variable.parameter)\n"
1399
+ "(optional_parameter (identifier) @variable.parameter)\n"
1400
+ "\n"
1401
+ "; Keywords\n"
1402
+ "\n"
1403
+ "[ \"abstract\"\n"
1404
+ " \"declare\"\n"
1405
+ " \"enum\"\n"
1406
+ " \"export\"\n"
1407
+ " \"implements\"\n"
1408
+ " \"interface\"\n"
1409
+ " \"keyof\"\n"
1410
+ " \"namespace\"\n"
1411
+ " \"private\"\n"
1412
+ " \"protected\"\n"
1413
+ " \"public\"\n"
1414
+ " \"type\"\n"
1415
+ " \"readonly\"\n"
1416
+ " \"override\"\n"
1417
+ " \"satisfies\"\n"
1418
+ "] @keyword\n"
1419
+ "";
1420
+
1421
+ static const char kHighlightsQuery_tsx[] =
1422
+ "; Variables\n"
1423
+ ";----------\n"
1424
+ "\n"
1425
+ "(identifier) @variable\n"
1426
+ "\n"
1427
+ "; Properties\n"
1428
+ ";-----------\n"
1429
+ "\n"
1430
+ "(property_identifier) @property\n"
1431
+ "\n"
1432
+ "; Function and method definitions\n"
1433
+ ";--------------------------------\n"
1434
+ "\n"
1435
+ "(function_expression\n"
1436
+ " name: (identifier) @function)\n"
1437
+ "(function_declaration\n"
1438
+ " name: (identifier) @function)\n"
1439
+ "(method_definition\n"
1440
+ " name: (property_identifier) @function.method)\n"
1441
+ "\n"
1442
+ "(pair\n"
1443
+ " key: (property_identifier) @function.method\n"
1444
+ " value: [(function_expression) (arrow_function)])\n"
1445
+ "\n"
1446
+ "(assignment_expression\n"
1447
+ " left: (member_expression\n"
1448
+ " property: (property_identifier) @function.method)\n"
1449
+ " right: [(function_expression) (arrow_function)])\n"
1450
+ "\n"
1451
+ "(variable_declarator\n"
1452
+ " name: (identifier) @function\n"
1453
+ " value: [(function_expression) (arrow_function)])\n"
1454
+ "\n"
1455
+ "(assignment_expression\n"
1456
+ " left: (identifier) @function\n"
1457
+ " right: [(function_expression) (arrow_function)])\n"
1458
+ "\n"
1459
+ "; Function and method calls\n"
1460
+ ";--------------------------\n"
1461
+ "\n"
1462
+ "(call_expression\n"
1463
+ " function: (identifier) @function)\n"
1464
+ "\n"
1465
+ "(call_expression\n"
1466
+ " function: (member_expression\n"
1467
+ " property: (property_identifier) @function.method))\n"
1468
+ "\n"
1469
+ "; Special identifiers\n"
1470
+ ";--------------------\n"
1471
+ "\n"
1472
+ "((identifier) @constructor\n"
1473
+ " (#match\? @constructor \"^[A-Z]\"))\n"
1474
+ "\n"
1475
+ "([\n"
1476
+ " (identifier)\n"
1477
+ " (shorthand_property_identifier)\n"
1478
+ " (shorthand_property_identifier_pattern)\n"
1479
+ " ] @constant\n"
1480
+ " (#match\? @constant \"^[A-Z_][A-Z\\\\d_]+$\"))\n"
1481
+ "\n"
1482
+ "((identifier) @variable.builtin\n"
1483
+ " (#match\? @variable.builtin \"^(arguments|module|console|window|document)$\")\n"
1484
+ " (#is-not\? local))\n"
1485
+ "\n"
1486
+ "((identifier) @function.builtin\n"
1487
+ " (#eq\? @function.builtin \"require\")\n"
1488
+ " (#is-not\? local))\n"
1489
+ "\n"
1490
+ "; Literals\n"
1491
+ ";---------\n"
1492
+ "\n"
1493
+ "(this) @variable.builtin\n"
1494
+ "(super) @variable.builtin\n"
1495
+ "\n"
1496
+ "[\n"
1497
+ " (true)\n"
1498
+ " (false)\n"
1499
+ " (null)\n"
1500
+ " (undefined)\n"
1501
+ "] @constant.builtin\n"
1502
+ "\n"
1503
+ "(comment) @comment\n"
1504
+ "\n"
1505
+ "[\n"
1506
+ " (string)\n"
1507
+ " (template_string)\n"
1508
+ "] @string\n"
1509
+ "\n"
1510
+ "(regex) @string.special\n"
1511
+ "(number) @number\n"
1512
+ "\n"
1513
+ "; Tokens\n"
1514
+ ";-------\n"
1515
+ "\n"
1516
+ "[\n"
1517
+ " \";\"\n"
1518
+ " (optional_chain)\n"
1519
+ " \".\"\n"
1520
+ " \",\"\n"
1521
+ "] @punctuation.delimiter\n"
1522
+ "\n"
1523
+ "[\n"
1524
+ " \"-\"\n"
1525
+ " \"--\"\n"
1526
+ " \"-=\"\n"
1527
+ " \"+\"\n"
1528
+ " \"++\"\n"
1529
+ " \"+=\"\n"
1530
+ " \"*\"\n"
1531
+ " \"*=\"\n"
1532
+ " \"**\"\n"
1533
+ " \"**=\"\n"
1534
+ " \"/\"\n"
1535
+ " \"/=\"\n"
1536
+ " \"%\"\n"
1537
+ " \"%=\"\n"
1538
+ " \"<\"\n"
1539
+ " \"<=\"\n"
1540
+ " \"<<\"\n"
1541
+ " \"<<=\"\n"
1542
+ " \"=\"\n"
1543
+ " \"==\"\n"
1544
+ " \"===\"\n"
1545
+ " \"!\"\n"
1546
+ " \"!=\"\n"
1547
+ " \"!==\"\n"
1548
+ " \"=>\"\n"
1549
+ " \">\"\n"
1550
+ " \">=\"\n"
1551
+ " \">>\"\n"
1552
+ " \">>=\"\n"
1553
+ " \">>>\"\n"
1554
+ " \">>>=\"\n"
1555
+ " \"~\"\n"
1556
+ " \"^\"\n"
1557
+ " \"&\"\n"
1558
+ " \"|\"\n"
1559
+ " \"^=\"\n"
1560
+ " \"&=\"\n"
1561
+ " \"|=\"\n"
1562
+ " \"&&\"\n"
1563
+ " \"||\"\n"
1564
+ " \"\?\?\"\n"
1565
+ " \"&&=\"\n"
1566
+ " \"||=\"\n"
1567
+ " \"\?\?=\"\n"
1568
+ "] @operator\n"
1569
+ "\n"
1570
+ "[\n"
1571
+ " \"(\"\n"
1572
+ " \")\"\n"
1573
+ " \"[\"\n"
1574
+ " \"]\"\n"
1575
+ " \"{\"\n"
1576
+ " \"}\"\n"
1577
+ "] @punctuation.bracket\n"
1578
+ "\n"
1579
+ "(template_substitution\n"
1580
+ " \"${\" @punctuation.special\n"
1581
+ " \"}\" @punctuation.special) @embedded\n"
1582
+ "\n"
1583
+ "[\n"
1584
+ " \"as\"\n"
1585
+ " \"async\"\n"
1586
+ " \"await\"\n"
1587
+ " \"break\"\n"
1588
+ " \"case\"\n"
1589
+ " \"catch\"\n"
1590
+ " \"class\"\n"
1591
+ " \"const\"\n"
1592
+ " \"continue\"\n"
1593
+ " \"debugger\"\n"
1594
+ " \"default\"\n"
1595
+ " \"delete\"\n"
1596
+ " \"do\"\n"
1597
+ " \"else\"\n"
1598
+ " \"export\"\n"
1599
+ " \"extends\"\n"
1600
+ " \"finally\"\n"
1601
+ " \"for\"\n"
1602
+ " \"from\"\n"
1603
+ " \"function\"\n"
1604
+ " \"get\"\n"
1605
+ " \"if\"\n"
1606
+ " \"import\"\n"
1607
+ " \"in\"\n"
1608
+ " \"instanceof\"\n"
1609
+ " \"let\"\n"
1610
+ " \"new\"\n"
1611
+ " \"of\"\n"
1612
+ " \"return\"\n"
1613
+ " \"set\"\n"
1614
+ " \"static\"\n"
1615
+ " \"switch\"\n"
1616
+ " \"target\"\n"
1617
+ " \"throw\"\n"
1618
+ " \"try\"\n"
1619
+ " \"typeof\"\n"
1620
+ " \"var\"\n"
1621
+ " \"void\"\n"
1622
+ " \"while\"\n"
1623
+ " \"with\"\n"
1624
+ " \"yield\"\n"
1625
+ "] @keyword\n"
1626
+ "\n"
1627
+ "\n"
1628
+ "; Types\n"
1629
+ "\n"
1630
+ "(type_identifier) @type\n"
1631
+ "(predefined_type) @type.builtin\n"
1632
+ "\n"
1633
+ "((identifier) @type\n"
1634
+ " (#match\? @type \"^[A-Z]\"))\n"
1635
+ "\n"
1636
+ "(type_arguments\n"
1637
+ " \"<\" @punctuation.bracket\n"
1638
+ " \">\" @punctuation.bracket)\n"
1639
+ "\n"
1640
+ "; Variables\n"
1641
+ "\n"
1642
+ "(required_parameter (identifier) @variable.parameter)\n"
1643
+ "(optional_parameter (identifier) @variable.parameter)\n"
1644
+ "\n"
1645
+ "; Keywords\n"
1646
+ "\n"
1647
+ "[ \"abstract\"\n"
1648
+ " \"declare\"\n"
1649
+ " \"enum\"\n"
1650
+ " \"export\"\n"
1651
+ " \"implements\"\n"
1652
+ " \"interface\"\n"
1653
+ " \"keyof\"\n"
1654
+ " \"namespace\"\n"
1655
+ " \"private\"\n"
1656
+ " \"protected\"\n"
1657
+ " \"public\"\n"
1658
+ " \"type\"\n"
1659
+ " \"readonly\"\n"
1660
+ " \"override\"\n"
1661
+ " \"satisfies\"\n"
1662
+ "] @keyword\n"
1663
+ "";
1664
+
1665
+ } // namespace Markdown