From 8d71c01da02c753fe66422ad6bb6141bde4c3567 Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Wed, 19 Feb 2020 11:27:48 -0500 Subject: [PATCH 1/2] enh(csharp) add support for `@identifier` style identifiers --- CHANGES.md | 1 + src/languages/csharp.js | 9 ++++++++- test/markup/csharp/identifiers.expect.txt | 3 +++ test/markup/csharp/identifiers.txt | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 test/markup/csharp/identifiers.expect.txt create mode 100644 test/markup/csharp/identifiers.txt diff --git a/CHANGES.md b/CHANGES.md index d767090542..e0c8702556 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -16,6 +16,7 @@ Core Changes: Language Improvements: +- (csharp) add support for `@identifier` style identifiers ()[Josh Goebel][] - fix(elixir) Support function names with a slash (#2406) [Josh Goebel][] - fix(javascript) comma is allowed in a "value container" (#2403) [Josh Goebel][] - enh(apache) add `deny` and `allow` keywords [Josh Goebel][] diff --git a/src/languages/csharp.js b/src/languages/csharp.js index 9eaaa44091..aee1acf2a0 100644 --- a/src/languages/csharp.js +++ b/src/languages/csharp.js @@ -93,6 +93,12 @@ export default function(hljs) { keywords: "in out" }; var TYPE_IDENT_RE = hljs.IDENT_RE + '(<' + hljs.IDENT_RE + '(\\s*,\\s*' + hljs.IDENT_RE + ')*>)?(\\[\\])?'; + var AT_IDENTIFIER = { + // prevents expressions like `@class` from incorrect flagging + // `class` as a keyword + begin: "@" + hljs.IDENT_RE, + relevance: 0 + }; return { aliases: ['cs', 'c#'], @@ -194,7 +200,8 @@ export default function(hljs) { hljs.C_LINE_COMMENT_MODE, hljs.C_BLOCK_COMMENT_MODE ] - } + }, + AT_IDENTIFIER ] }; } diff --git a/test/markup/csharp/identifiers.expect.txt b/test/markup/csharp/identifiers.expect.txt new file mode 100644 index 0000000000..566b865c4d --- /dev/null +++ b/test/markup/csharp/identifiers.expect.txt @@ -0,0 +1,3 @@ +var @class = new MyClass(); +doSomething(@var, @foo); +var a; diff --git a/test/markup/csharp/identifiers.txt b/test/markup/csharp/identifiers.txt new file mode 100644 index 0000000000..3e7040f291 --- /dev/null +++ b/test/markup/csharp/identifiers.txt @@ -0,0 +1,4 @@ +var @class = new MyClass(); +doSomething(@var, @foo); +var a; + From 0fbc3ef1781081322907d23d7ddb928a739e0f5e Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Wed, 19 Feb 2020 11:29:20 -0500 Subject: [PATCH 2/2] pr # --- CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index e0c8702556..be3806e0e4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -16,7 +16,7 @@ Core Changes: Language Improvements: -- (csharp) add support for `@identifier` style identifiers ()[Josh Goebel][] +- (csharp) add support for `@identifier` style identifiers (#2414) [Josh Goebel][] - fix(elixir) Support function names with a slash (#2406) [Josh Goebel][] - fix(javascript) comma is allowed in a "value container" (#2403) [Josh Goebel][] - enh(apache) add `deny` and `allow` keywords [Josh Goebel][]