tree-sitter/tree-sitter-c-sharp

C# Grammar for tree-sitter

320

stars

576

commits

JavaScript

primary language

Jul 20, 2026

updated

c-sharp
parser
tree-sitter
Browse cluster: Tree-sitter language parsers

README

tree-sitter-c-sharp

CI discord matrix crates npm pypi

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
  • Reduce parser state count and complexity
  • Be in-line with tree-sitter's convention where applicable

Status

Comprehensive supports C# 1 through 14.0 with the following exceptions:

  • async, var and await cannot be used as identifiers everywhere they are valid
  • File-based apps preprocessor directives (#:property, #:package, #:sdk, #:project) are not yet recognized

References

Contributors

(top 30 of 36)

damieng

269 commits

tamasvajk

85 commits

maxbrunsfeld

50 commits

initram

44 commits

tree-sitter/tree-sitter-c-sharp

C# Grammar for tree-sitter

320

stars

576

commits

JavaScript

primary language

Jul 20, 2026

updated

c-sharp
parser
tree-sitter
Browse cluster: Tree-sitter language parsers

README

tree-sitter-c-sharp

CI discord matrix crates npm pypi

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
  • Reduce parser state count and complexity
  • Be in-line with tree-sitter's convention where applicable

Status

Comprehensive supports C# 1 through 14.0 with the following exceptions:

  • async, var and await cannot be used as identifiers everywhere they are valid
  • File-based apps preprocessor directives (#:property, #:package, #:sdk, #:project) are not yet recognized

References

Contributors

(top 30 of 36)

damieng

269 commits

tamasvajk

85 commits

maxbrunsfeld

50 commits

initram

44 commits

Languages

JavaScript

45.2%

C#

35.2%

C

16.8%

Tree-sitter Query

2.7%