csharp.min.js 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*! `csharp` grammar compiled for Highlight.js 11.7.0 */
  2. (()=>{var e=(()=>{"use strict";return e=>{const n={
  3. keyword:["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
  4. built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
  5. literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{
  6. begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{
  7. begin:"\\b(0b[01']+)"},{
  8. begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
  9. begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
  10. }],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
  11. },t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/,
  12. keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/,
  13. end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
  14. },e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{
  15. begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/,
  16. contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]})
  17. ;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],
  18. l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{
  19. illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
  20. },E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]
  21. },_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={
  22. begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
  23. keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
  24. contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
  25. begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
  26. }),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
  27. end:"$",keywords:{
  28. keyword:"if else elif endif define undef warning error line region endregion pragma checksum"
  29. }},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
  30. illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
  31. },a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
  32. relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
  33. contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
  34. beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
  35. contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
  36. begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
  37. className:"string",begin:/"/,end:/"/}]},{
  38. beginKeywords:"new return throw await else",relevance:0},{className:"function",
  39. begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
  40. end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
  41. beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
  42. relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,
  43. contains:[e.TITLE_MODE,E],relevance:0},{match:/\(\)/},{className:"params",
  44. begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
  45. contains:[g,i,e.C_BLOCK_COMMENT_MODE]
  46. },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})()
  47. ;hljs.registerLanguage("csharp",e)})();