cs.json 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364
  1. {
  2. "aliases": [
  3. "csharp",
  4. "c#"
  5. ],
  6. "keywords": {
  7. "keyword": "abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield",
  8. "literal": "null false true"
  9. },
  10. "illegal": "::",
  11. "contains": [
  12. {
  13. "className": "comment",
  14. "begin": "\/\/\/",
  15. "end": "$",
  16. "contains": [
  17. {
  18. "className": "doctag",
  19. "variants": [
  20. {
  21. "begin": "\/\/\/",
  22. "relevance": 0
  23. },
  24. {
  25. "begin": "<!--|-->"
  26. },
  27. {
  28. "begin": "<\/?",
  29. "end": ">"
  30. }
  31. ]
  32. },
  33. {
  34. "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b"
  35. },
  36. {
  37. "className": "doctag",
  38. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  39. "relevance": 0
  40. }
  41. ],
  42. "returnBegin": true
  43. },
  44. {
  45. "className": "comment",
  46. "begin": "\/\/",
  47. "end": "$",
  48. "contains": [
  49. {
  50. "$ref": "#contains.0.contains.1"
  51. },
  52. {
  53. "className": "doctag",
  54. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  55. "relevance": 0
  56. }
  57. ]
  58. },
  59. {
  60. "className": "comment",
  61. "begin": "\/\\*",
  62. "end": "\\*\/",
  63. "contains": [
  64. {
  65. "$ref": "#contains.0.contains.1"
  66. },
  67. {
  68. "className": "doctag",
  69. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  70. "relevance": 0
  71. }
  72. ]
  73. },
  74. {
  75. "className": "meta",
  76. "begin": "#",
  77. "end": "$",
  78. "keywords": {
  79. "meta-keyword": "if else elif endif define undef warning error line region endregion pragma checksum"
  80. }
  81. },
  82. {
  83. "variants": [
  84. {
  85. "className": "string",
  86. "begin": "\\$@\"",
  87. "end": "\"",
  88. "contains": [
  89. {
  90. "begin": "{{"
  91. },
  92. {
  93. "begin": "}}"
  94. },
  95. {
  96. "begin": "\"\""
  97. },
  98. {
  99. "className": "subst",
  100. "begin": "{",
  101. "end": "}",
  102. "keywords": {
  103. "$ref": "#keywords"
  104. },
  105. "contains": [
  106. {
  107. "$ref": "#contains.4.variants.0"
  108. },
  109. {
  110. "className": "string",
  111. "begin": "\\$\"",
  112. "end": "\"",
  113. "illegal": "\\n",
  114. "contains": [
  115. {
  116. "begin": "{{"
  117. },
  118. {
  119. "begin": "}}"
  120. },
  121. {
  122. "begin": "\\\\[\\s\\S]",
  123. "relevance": 0
  124. },
  125. {
  126. "className": "subst",
  127. "begin": "{",
  128. "end": "}",
  129. "keywords": {
  130. "$ref": "#keywords"
  131. },
  132. "illegal": "\\n",
  133. "contains": [
  134. {
  135. "className": "string",
  136. "begin": "\\$@\"",
  137. "end": "\"",
  138. "contains": [
  139. {
  140. "begin": "{{"
  141. },
  142. {
  143. "begin": "}}"
  144. },
  145. {
  146. "begin": "\"\""
  147. },
  148. {
  149. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3"
  150. }
  151. ],
  152. "illegal": "\\n"
  153. },
  154. {
  155. "$ref": "#contains.4.variants.0.contains.3.contains.1"
  156. },
  157. {
  158. "className": "string",
  159. "begin": "@\"",
  160. "end": "\"",
  161. "contains": [
  162. {
  163. "begin": "\"\""
  164. }
  165. ],
  166. "illegal": "\\n"
  167. },
  168. {
  169. "className": "string",
  170. "begin": "'",
  171. "end": "'",
  172. "illegal": "\\n",
  173. "contains": [
  174. {
  175. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.2"
  176. }
  177. ]
  178. },
  179. {
  180. "className": "string",
  181. "begin": "\"",
  182. "end": "\"",
  183. "illegal": "\\n",
  184. "contains": [
  185. {
  186. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.2"
  187. }
  188. ]
  189. },
  190. {
  191. "className": "number",
  192. "variants": [
  193. {
  194. "begin": "\\b(0b[01']+)"
  195. },
  196. {
  197. "begin": "(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"
  198. },
  199. {
  200. "begin": "(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
  201. }
  202. ],
  203. "relevance": 0
  204. },
  205. {
  206. "className": "comment",
  207. "begin": "\/\\*",
  208. "end": "\\*\/",
  209. "contains": {
  210. "$ref": "#contains.2.contains"
  211. },
  212. "illegal": "\\n"
  213. }
  214. ]
  215. }
  216. ]
  217. },
  218. {
  219. "className": "string",
  220. "begin": "@\"",
  221. "end": "\"",
  222. "contains": {
  223. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3.contains.2.contains"
  224. }
  225. },
  226. {
  227. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3.contains.3"
  228. },
  229. {
  230. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3.contains.4"
  231. },
  232. {
  233. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3.contains.5"
  234. },
  235. {
  236. "$ref": "#contains.2"
  237. }
  238. ]
  239. }
  240. ]
  241. },
  242. {
  243. "$ref": "#contains.4.variants.0.contains.3.contains.1"
  244. },
  245. {
  246. "$ref": "#contains.4.variants.0.contains.3.contains.2"
  247. },
  248. {
  249. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3.contains.3"
  250. },
  251. {
  252. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3.contains.4"
  253. }
  254. ]
  255. },
  256. {
  257. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3.contains.5"
  258. },
  259. {
  260. "beginKeywords": "class interface",
  261. "end": "[{;=]",
  262. "illegal": "[^\\s:,]",
  263. "contains": [
  264. {
  265. "className": "title",
  266. "begin": "[a-zA-Z]\\w*",
  267. "relevance": 0
  268. },
  269. {
  270. "$ref": "#contains.1"
  271. },
  272. {
  273. "$ref": "#contains.2"
  274. }
  275. ]
  276. },
  277. {
  278. "beginKeywords": "namespace",
  279. "end": "[{;=]",
  280. "illegal": "[^\\s:]",
  281. "contains": [
  282. {
  283. "className": "title",
  284. "begin": "[a-zA-Z](\\.?\\w)*",
  285. "relevance": 0
  286. },
  287. {
  288. "$ref": "#contains.1"
  289. },
  290. {
  291. "$ref": "#contains.2"
  292. }
  293. ]
  294. },
  295. {
  296. "className": "meta",
  297. "begin": "^\\s*\\[",
  298. "excludeBegin": true,
  299. "end": "\\]",
  300. "excludeEnd": true,
  301. "contains": [
  302. {
  303. "className": "meta-string",
  304. "begin": "\"",
  305. "end": "\""
  306. }
  307. ]
  308. },
  309. {
  310. "beginKeywords": "new return throw await else",
  311. "relevance": 0
  312. },
  313. {
  314. "className": "function",
  315. "begin": "([a-zA-Z]\\w*(<[a-zA-Z]\\w*(\\s*,\\s*[a-zA-Z]\\w*)*>)?(\\[\\])?\\s+)+[a-zA-Z]\\w*\\s*\\(",
  316. "returnBegin": true,
  317. "end": "\\s*[{;=]",
  318. "excludeEnd": true,
  319. "keywords": {
  320. "$ref": "#keywords"
  321. },
  322. "contains": [
  323. {
  324. "begin": "[a-zA-Z]\\w*\\s*\\(",
  325. "returnBegin": true,
  326. "contains": [
  327. {
  328. "$ref": "#contains.6.contains.0"
  329. }
  330. ],
  331. "relevance": 0
  332. },
  333. {
  334. "className": "params",
  335. "begin": "\\(",
  336. "end": "\\)",
  337. "excludeBegin": true,
  338. "excludeEnd": true,
  339. "keywords": {
  340. "$ref": "#keywords"
  341. },
  342. "relevance": 0,
  343. "contains": [
  344. {
  345. "$ref": "#contains.4"
  346. },
  347. {
  348. "$ref": "#contains.4.variants.0.contains.3.contains.1.contains.3.contains.5"
  349. },
  350. {
  351. "$ref": "#contains.2"
  352. }
  353. ]
  354. },
  355. {
  356. "$ref": "#contains.1"
  357. },
  358. {
  359. "$ref": "#contains.2"
  360. }
  361. ]
  362. }
  363. ]
  364. }