X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=runtime%2Fsyntax%2Fcsharp.yaml;h=028b661f0b5d61de5d0962769b43fd278aaa9fa6;hb=e420872a270e351653f62756cda24892dc1417c9;hp=e027e0ca5bfd43250f203ebe6e9d10022a2aa8dd;hpb=b977bf5cca84f7dc762fe8d9967831502ee5cc87;p=micro.git diff --git a/runtime/syntax/csharp.yaml b/runtime/syntax/csharp.yaml index e027e0ca..028b661f 100644 --- a/runtime/syntax/csharp.yaml +++ b/runtime/syntax/csharp.yaml @@ -1,29 +1,51 @@ -filetype: c# +filetype: csharp -detect: +detect: filename: "\\.cs$" rules: + # Class - identifier.class: "class +[A-Za-z0-9]+ *((:) +[A-Za-z0-9.]+)?" + + # Annotation - identifier.var: "@[A-Za-z]+" + - identifier: "[A-Za-z_][A-Za-z0-9_]*[[:space:]]*[()]" - type: "\\b(bool|byte|sbyte|char|decimal|double|float|IntPtr|int|uint|long|ulong|object|short|ushort|string|base|this|var|void)\\b" - statement: "\\b(alias|as|case|catch|checked|default|do|dynamic|else|finally|fixed|for|foreach|goto|if|is|lock|new|null|return|switch|throw|try|unchecked|while)\\b" - statement: "\\b(abstract|async|class|const|delegate|enum|event|explicit|extern|get|implicit|in|internal|interface|namespace|operator|out|override|params|partial|private|protected|public|readonly|ref|sealed|set|sizeof|stackalloc|static|struct|typeof|unsafe|using|value|virtual|volatile|yield)\\b" + # LINQ-only keywords (ones that cannot be used outside of a LINQ query - lots others can) - statement: "\\b(from|where|select|group|info|orderby|join|let|in|on|equals|by|ascending|descending)\\b" - special: "\\b(break|continue)\\b" - constant.bool: "\\b(true|false)\\b" - symbol.operator: "[\\-+/*=<>?:!~%&|]" - constant.number: "\\b([0-9._]+|0x[A-Fa-f0-9_]+|0b[0-1_]+)[FL]?\\b" - - constant.string: "\"(\\\\.|[^\"])*\"|'(\\\\.|[^'])*'" - - constant.specialChar: "\\\\([btnfr]|'|\\\"|\\\\)" - - constant.specialChar: "\\\\u[A-Fa-f0-9]{4}" - - comment: "(^|[[:space:]])//.*" + + - constant.string: + start: "\"" + end: "\"" + skip: "\\\\." + rules: + - constant.specialChar: "\\\\([btnfr]|'|\\\"|\\\\)" + - constant.specialChar: "\\\\u[A-Fa-f0-9]{4}" + + - constant.string: + start: "'" + end: "'" + skip: "\\\\." + rules: + - constant.specialChar: "\\\\([btnfr]|'|\\\"|\\\\)" + - constant.specialChar: "\\\\u[A-Fa-f0-9]{4}" + + - comment: + start: "//" + end: "$" + rules: + - todo: "(TODO|XXX|FIXME):?" + - comment: start: "/\\*" end: "\\*/" - rules: [] + rules: + - todo: "(TODO|XXX|FIXME):?" - - todo: "TODO:?" - - indent-char.whitespace: "[[:space:]]+$" - - indent-char: " + +| + +"