Skip to content

horriblename/tree-sitter-razor-csharp

 
 

Repository files navigation

Warning

Incomplete and abandoned. I'm leaving this up in case anyone finds it useful, but even I'm questioning why past me didn't split up the razor and csharp parts completely so I'm not sure this will be worth forking

tree-sitter-c-sharp

Build Status

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

About

C# Grammar for tree-sitter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 75.2%
  • C# 8.2%
  • Tree-sitter Query 6.7%
  • Rust 4.0%
  • Shell 2.2%
  • Swift 1.5%
  • Other 2.2%