Skip to content

Commit 75e4b8b

Browse files
Merge pull request #15 from csharp/st4204-master
Prepare an update for new C# changes. See sublimehq/Packages#4547.
2 parents e9ca4d4 + 9c0646d commit 75e4b8b

19 files changed

Lines changed: 2597 additions & 805 deletions

.github/workflows/package-review.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
- uses: actions/checkout@v6
1212

1313
- name: Review artifact for Package Control
14-
uses: kaste/st_package_reviewer/gh_action_package@ad89510c574e97d92cfd4d9e0f5c9029394f5c94
14+
uses: kaste/st_package_reviewer/gh_action_package@v1
1515
with:
1616
package-name: 'HTML (C#)'
1717
st-build: 4204

.github/workflows/syntax.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ name: Syntax Tests
33

44
on:
55
push:
6+
branches:
7+
- 'master'
68
paths:
79
- '.github/workflows/syntax.yml'
810
- '**.sublime-syntax'
@@ -14,6 +16,7 @@ on:
1416
- '**.sublime-syntax'
1517
- '**/syntax_test_*'
1618
- '**.tmPreferences'
19+
workflow_dispatch:
1720

1821
jobs:
1922
main:

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@ Microsoft later released
6161
a simplified, less-intrusive frontend templating syntax
6262
that supplanted WebForms.
6363

64-
A huge thank-you is owed
65-
to [@keith-hall][keith]
66-
for his work on this.
64+
First version thanks to [Keith Hall][keith].
65+
Rebuilt by Michael Lyons.
66+
Also see [LoneBoco's version][loneboco].
6767

6868
### Current Support
6969

@@ -79,13 +79,11 @@ for his work on this.
7979

8080
### Known issues
8181

82-
- Trouble with `@(` in HTML attributes
83-
if the expression contains `"`
84-
- Trouble with `@` expressions in HTML attributes
85-
if they are inside `@` block expressions
86-
- Trouble with `@` expressions in embedded languages
87-
(i.e. in JavaScript)
88-
if they are inside `@` block expressions
82+
- Trouble with `@(` in CSS- or JS-embedding HTML attributes
83+
if the expression contains the tag string delimiter.
84+
- No support for `@bind` attributes.
85+
- Chaining expressions together like `@if`-`for`-etc.
86+
may require curly braces, even for single commands.
8987
- File new issues [on GitHub][gh]
9088

9189

@@ -94,3 +92,4 @@ for his work on this.
9492
[ss-docs]: https://www.sublimetext.com/docs/syntax.html
9593
[gh]: https://github.com/michaelblyons/SublimeSyntax-HTML-CSharp
9694
[keith]: https://github.com/keith-hall
95+
[loneboco]: https://github.com/LoneBoco/razor-sublime
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
%YAML 1.2
2+
---
3+
scope: source.cs.embedded.cs.razor
4+
version: 2
5+
hidden: true
6+
7+
extends: Packages/HTML (C#)/Razor/C# (Razor).sublime-syntax
8+
9+
variables:
10+
generic_declaration: (?!)

Razor/C# (Razor).sublime-syntax

Lines changed: 50 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,18 @@ version: 2
66

77
extends: Packages/C#/C#.sublime-syntax
88

9-
##############################################################################
9+
variables:
10+
sql_indicator: (?!)
1011

1112
contexts:
1213

13-
stray_close_bracket:
14+
###[ CSHARP OVERRIDES ]########################################################
15+
16+
comments:
17+
- meta_prepend: true
18+
- include: Razor.sublime-syntax#comment
19+
20+
stray-punctuation:
1421
- match: \]|\)
1522
scope: invalid.illegal.stray.cs
1623
- match: (?=})
@@ -23,14 +30,46 @@ contexts:
2330
- match: \bHtml\b
2431
scope: variable.language.this.razor
2532

26-
inside_triple_quoted_raw_string_syntax:
27-
- meta_include_prototype: false
28-
- include: immediately_pop
33+
inside-statement-block:
34+
- meta_prepend: true
35+
- include: Razor.sublime-syntax#razor-transitions
36+
37+
expression:
38+
- meta_prepend: true
39+
- include: Packages/HTML (C#)/Razor/Razor.sublime-syntax#razor-templated-delegates
40+
41+
# Don't let C# embed extra syntaxes in strings
42+
43+
inside-triple-quoted-raw-string-sql: []
44+
inside-verbatim-string-sql: []
45+
inside-verbatim-format-string-sql: []
2946

30-
inside_verbatim_string_syntax:
31-
- meta_include_prototype: false
32-
- include: immediately_pop
47+
###[ UTILITY ]#################################################################
3348

34-
inside_verbatim_format_string_syntax:
35-
- meta_include_prototype: false
36-
- include: immediately_pop
49+
razor-functions-block:
50+
- include: visibility
51+
- include: modifiers
52+
- include: local-declarations
53+
54+
embedded-statement-pop:
55+
- include: embedded-statements
56+
- include: statement-blocks
57+
- include: else-pop
58+
59+
html-attribute-expression:
60+
- include: Razor.sublime-syntax#expressions-explicit
61+
- match: (?=["'\s])
62+
pop: 1
63+
- include: Razor.sublime-syntax#expressions
64+
65+
html-attribute-expression-double-quoted:
66+
- include: Razor.sublime-syntax#expressions-explicit
67+
- match: (?=["\s])
68+
pop: 1
69+
- include: Razor.sublime-syntax#expressions
70+
71+
html-attribute-expression-single-quoted:
72+
- include: Razor.sublime-syntax#expressions-explicit
73+
- match: (?=['\s])
74+
pop: 1
75+
- include: Razor.sublime-syntax#expressions

Razor/CSS (Razor).sublime-syntax

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
%YAML 1.2
22
---
3-
name: CSS (WebForms)
3+
name: CSS (Razor)
44
scope: source.css.cs.razor
55
version: 2
66

@@ -11,34 +11,12 @@ contexts:
1111

1212
prototype:
1313
- meta_prepend: true
14-
- include: Razor.sublime-syntax#comments
15-
- include: csharp-embedded
14+
- include: Razor.sublime-syntax#expressions
1615

17-
string-content:
16+
comments:
1817
- meta_prepend: true
19-
- include: Razor.sublime-syntax#csharp-interpolations
20-
21-
csharp-interpolations:
22-
- meta_include_prototype: false
23-
# - match: (?=@)
24-
# push: csharp-interpolation-body
25-
- include: Razor.sublime-syntax#csharp-interpolations
26-
27-
csharp-interpolation-body:
28-
- clear_scopes: 1
29-
- meta_include_prototype: false
30-
- include: csharp-embedded
31-
- include: immediately-pop
18+
- include: Razor.sublime-syntax#razor-block-comments
3219

33-
csharp-embedded:
34-
- meta_include_prototype: false
35-
- include: Razor.sublime-syntax#razor-constructs
36-
# - match: <%[=#:$]
37-
# scope: meta.embedded.cs punctuation.section.embedded.begin.cs-webforms
38-
# embed: Packages/C#/C#.sublime-syntax
39-
# embed_scope: meta.embedded.cs source.cs.embedded.css
40-
# escape: (%>)(\s*\n)?
41-
# escape_captures:
42-
# 0: meta.embedded.cs
43-
# 1: punctuation.section.embedded.end.cs-webforms
44-
# 2: meta.html-newline-after-csharp.cs-webforms
20+
string-content:
21+
- meta_prepend: true
22+
- include: Razor.sublime-syntax#expressions

Razor/JavaScript (Razor).sublime-syntax

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,14 @@ extends: Packages/JavaScript/JavaScript.sublime-syntax
99

1010
contexts:
1111

12-
prototype:
12+
comments:
1313
- meta_prepend: true
14-
- include: Razor.sublime-syntax#comments
14+
- include: Razor.sublime-syntax#razor-block-comments
1515

16-
string-content:
16+
statement:
1717
- meta_prepend: true
18-
- include: Razor.sublime-syntax#csharp-interpolations
19-
20-
csharp-interpolations:
21-
- meta_include_prototype: false
22-
- match: (?=<%[=#:$])
23-
push: csharp-interpolation-body
24-
25-
csharp-interpolation-body:
26-
- clear_scopes: 1
27-
- meta_include_prototype: false
28-
- include: csharp-embedded
29-
- include: immediately-pop
18+
- include: Razor.sublime-syntax#expressions
3019

31-
csharp-embedded:
32-
- meta_include_prototype: false
33-
- include: Razor.sublime-syntax#razor-constructs
20+
string-content:
21+
- meta_prepend: true
22+
- include: Razor.sublime-syntax#expressions

0 commit comments

Comments
 (0)