tree-sitter/tree-sitter-c-sharp v0.20.0
C# Grammar for tree-sitter
⭐️ 125
🕓 37 weeks ago
.package(url: "https://github.com/tree-sitter/tree-sitter-c-sharp.git", from: "v0.20.0")
tree-sitter-c-sharp

C# grammar for tree-sitter based upon the Roslyn grammar with changes in order to:
- Deal with differences between the parsing technologies
- Work around some bugs in that grammar
- Handle
#if
, #else
, #elif
, #endif
blocks
- Support syntax highlighting/parsing of fragments
- Simplify the output tree
Status
Comprehensive supports C# 1 through 10.0 with the following exceptions:
- ☐
async
, var
and await
cannot be used as identifiers everywhere they are valid
C# 10.0
- ☑ global using directives
- ☑ File-scoped namespace declaration
- ☑ Extended property patterns
- ☑ Allow const interpolated strings
- ☑ Record types can seal ToString()
- ☑ Allow both assignment and declaration in the same deconstruction
- ☑ Allow AsyncMethodBuilder attribute on methods
- ☑ Record structs
- ☑ Lambda improvements
C# 11.0 (under development)
- ☑ Generic attributes
- ☑ Static abstract members in interfaces
- ☑ Newlines in string interpolations
- ☑ List patterns
- ☑ Slice pattern
- ☑ Required members
- ☑ File scoped classes
- ☐ Raw string literals
- ☑ File scoped types
- ☑ Scoped ref
References