diff --git a/Razor/Razor.sublime-syntax b/Razor/Razor.sublime-syntax index e28c255..eb00a86 100644 --- a/Razor/Razor.sublime-syntax +++ b/Razor/Razor.sublime-syntax @@ -274,6 +274,10 @@ contexts: - meta_prepend: true - include: csharp-interpolations + tag-generic-attribute-value-content: + - meta_prepend: true + - include: csharp-interpolations + strings-common-content: - meta_prepend: true - include: csharp-interpolations @@ -303,8 +307,11 @@ contexts: - meta_include_prototype: false - match: '@@' scope: constant.character.escape.cs-razor - - match: (?={{csharp_tag_interpolation_bare}}) - push: csharp-interpolation-body + - match: '\w+@\w+' # prevent email addresses being caught etc + - match: '{{csharp_tag_interpolation_bare}}' + scope: punctuation.section.interpolation.begin.razor + push: Packages/HTML (C#)/Razor/embeddings/C# (for C# Razor HTML attribute).sublime-syntax + #push: csharp-interpolation-body csharp-interpolation-body: # - clear_scopes: 1 diff --git a/Razor/embeddings/C# (for C# Razor HTML attribute).sublime-syntax b/Razor/embeddings/C# (for C# Razor HTML attribute).sublime-syntax new file mode 100644 index 0000000..d37be7e --- /dev/null +++ b/Razor/embeddings/C# (for C# Razor HTML attribute).sublime-syntax @@ -0,0 +1,18 @@ +%YAML 1.2 +--- +scope: source.cs.embedded.html-attribute-string.razor +version: 1 +hidden: true + +extends: Packages/C#/C#.sublime-syntax + +contexts: + main: + - meta_prepend: true + - match: (?=") + pop: 1 + + line_of_code_in: + - meta_prepend: true + - match: (?=") + pop: 1 diff --git a/Razor/tests/syntax_test_cshtml.cshtml b/Razor/tests/syntax_test_cshtml.cshtml index eae238a..1096e5b 100644 --- a/Razor/tests/syntax_test_cshtml.cshtml +++ b/Razor/tests/syntax_test_cshtml.cshtml @@ -134,6 +134,145 @@ else
@quote
+