aboutsummaryrefslogtreecommitdiff
path: root/node_modules/prismjs/components/prism-csharp.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/prismjs/components/prism-csharp.js')
-rw-r--r--node_modules/prismjs/components/prism-csharp.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/node_modules/prismjs/components/prism-csharp.js b/node_modules/prismjs/components/prism-csharp.js
new file mode 100644
index 00000000..15ce52dc
--- /dev/null
+++ b/node_modules/prismjs/components/prism-csharp.js
@@ -0,0 +1,79 @@
+Prism.languages.csharp = Prism.languages.extend('clike', {
+ 'keyword': /\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/,
+ 'string': [
+ {
+ pattern: /@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,
+ greedy: true
+ },
+ {
+ pattern: /("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,
+ greedy: true
+ }
+ ],
+ 'class-name': [
+ {
+ // (Foo bar, Bar baz)
+ pattern: /\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/,
+ inside: {
+ punctuation: /\./
+ }
+ },
+ {
+ // [Foo]
+ pattern: /(\[)[A-Z]\w*(?:\.\w+)*\b/,
+ lookbehind: true,
+ inside: {
+ punctuation: /\./
+ }
+ },
+ {
+ // class Foo : Bar
+ pattern: /(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,
+ lookbehind: true,
+ inside: {
+ punctuation: /\./
+ }
+ },
+ {
+ // class Foo
+ pattern: /((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,
+ lookbehind: true,
+ inside: {
+ punctuation: /\./
+ }
+ }
+ ],
+ 'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i
+});
+
+Prism.languages.insertBefore('csharp', 'class-name', {
+ 'generic-method': {
+ pattern: /\w+\s*<[^>\r\n]+?>\s*(?=\()/,
+ inside: {
+ function: /^\w+/,
+ 'class-name': {
+ pattern: /\b[A-Z]\w*(?:\.\w+)*\b/,
+ inside: {
+ punctuation: /\./
+ }
+ },
+ keyword: Prism.languages.csharp.keyword,
+ punctuation: /[<>(),.:]/
+ }
+ },
+ 'preprocessor': {
+ pattern: /(^\s*)#.*/m,
+ lookbehind: true,
+ alias: 'property',
+ inside: {
+ // highlight preprocessor directives as keywords
+ 'directive': {
+ pattern: /(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,
+ lookbehind: true,
+ alias: 'keyword'
+ }
+ }
+ }
+});
+
+Prism.languages.dotnet = Prism.languages.csharp; \ No newline at end of file