Carbon.plist 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!--
  3. Part of the Carbon Language project, under the Apache License v2.0 with LLVM
  4. Exceptions. See /LICENSE for license information.
  5. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. -->
  7. <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
  8. "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  9. <plist version="1.0">
  10. <dict>
  11. <!-- Section metadata -->
  12. <key>name</key>
  13. <string>carbon</string>
  14. <key>uuid</key>
  15. <string>04F7F7E3-D5EE-40A4-9899-53CD34D28276</string>
  16. <key>scopeName</key>
  17. <string>source.carbon</string>
  18. <key>fileTypes</key>
  19. <array>
  20. <string>carbon</string>
  21. </array>
  22. <!-- Folding markers -->
  23. <key>foldingStartMarker</key>
  24. <string>\{\s*$</string>
  25. <key>foldingStopMarker</key>
  26. <string>^\s*\}</string>
  27. <!-- Active patterns from repository -->
  28. <key>patterns</key>
  29. <array>
  30. <!-- Rule: comments -->
  31. <dict>
  32. <key>begin</key>
  33. <string>(^[ \t]+)?(?=//)</string>
  34. <key>end</key>
  35. <string>(?!\G)</string>
  36. <key>patterns</key>
  37. <array>
  38. <dict>
  39. <key>name</key>
  40. <string>comment.line.carbon</string>
  41. <key>begin</key>
  42. <string>//</string>
  43. <key>end</key>
  44. <string>$</string>
  45. </dict>
  46. </array>
  47. </dict>
  48. <!-- Rule: control flow keywords -->
  49. <dict>
  50. <key>name</key>
  51. <string>keyword.control.carbon</string>
  52. <key>match</key>
  53. <string>\b(break|case|continue|default|else|if|for|match|return|then|while)\b</string>
  54. </dict>
  55. <!-- Rule: other keywords -->
  56. <dict>
  57. <key>name</key>
  58. <string>keyword.other.carbon</string>
  59. <key>match</key>
  60. <string>\b(abstract|addr|alias|and|api|as|auto|base|choice|class|constraint|destructor|extends|external|final|forall|fn|friend|impl|import|interface|let|library|like|namespace|not|observe|or|override|package|partial|private|protected|returned|template|var|virtual|where|while|_)\b</string>
  61. </dict>
  62. <!-- Rule: builtin types -->
  63. <dict>
  64. <key>name</key>
  65. <string>storage.type.carbon</string>
  66. <key>match</key>
  67. <string>\b(As|bool|Carbon\.Int|Carbon\.UInt|f16|f32|f64|f128|i8|i16|i32|i64|i128|i256|Slice|String|StringView|type|u8|u16|u32|u64|u128|u256)\b</string>
  68. </dict>
  69. <!-- Rule: boolean literals - has keyword coloring -->
  70. <dict>
  71. <key>name</key>
  72. <string>keyword.other.carbon</string>
  73. <key>match</key>
  74. <string>\b(true|false)\b</string>
  75. </dict>
  76. <!-- Rule: block string literals -->
  77. <dict>
  78. <key>name</key>
  79. <string>string.quoted.triple.carbon</string>
  80. <key>begin</key>
  81. <string>"""</string>
  82. <key>end</key>
  83. <string>"""</string>
  84. <key>patterns</key>
  85. <array>
  86. <dict>
  87. <key>include</key>
  88. <string>#string_escapes</string>
  89. </dict>
  90. </array>
  91. </dict>
  92. <!-- Rule: basic string literals -->
  93. <dict>
  94. <key>name</key>
  95. <string>string.quoted.double.carbon</string>
  96. <key>begin</key>
  97. <string>"</string>
  98. <key>end</key>
  99. <string>"</string>
  100. <key>patterns</key>
  101. <array>
  102. <dict>
  103. <key>include</key>
  104. <string>#string_escapes</string>
  105. </dict>
  106. </array>
  107. </dict>
  108. <!-- Rule: hexadecimal number literals -->
  109. <dict>
  110. <key>name</key>
  111. <string>constant.numeric.carbon</string>
  112. <key>match</key>
  113. <string>0x[_0-9A-F]+(\.[_0-9A-F]+(p[-+]?[1-9][0-9]*)?)?</string>
  114. </dict>
  115. <!-- Rule: binary number literals -->
  116. <dict>
  117. <key>name</key>
  118. <string>constant.numeric.carbon</string>
  119. <key>match</key>
  120. <string>0b[_01]+</string>
  121. </dict>
  122. <!-- Rule: decimal number literals -->
  123. <dict>
  124. <key>name</key>
  125. <string>constant.numeric.carbon</string>
  126. <key>match</key>
  127. <string>[1-9][_0-9]*(\.[_0-9]+(e[-+]?[1-9][0-9]*)?)?</string>
  128. </dict>
  129. </array>
  130. <!-- Rule repository -->
  131. <key>repository</key>
  132. <dict>
  133. <!-- Rule: string escape sequences -->
  134. <key>string_escapes</key>
  135. <dict>
  136. <key>name</key>
  137. <string>constant.character.escape.carbon</string>
  138. <key>match</key>
  139. <string>\([tnr'"0\0]|x[0-9A-F]{2}|u\{[0-9A-F]{4,}\})</string>
  140. </dict>
  141. </dict>
  142. </dict>
  143. </plist>