tree-sitter-c-sharp

0.20.0 • Public • Published

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# 9.0 (complete)

  • [x] Covariant returns
  • [x] Extending partial methods
  • [x] Extension GetEnumerator
  • [x] Function pointers
  • [x] Init properties
  • [x] Lambda discard parameters
  • [x] Local function attributes
  • [x] Module initializers
  • [x] Native integers
  • [x] Patterns
    • [x] Simple type patterns
    • [x] Relational patterns
    • [x] Logical patterns
  • [x] Records
  • [x] Skip Locals Init
  • [x] Static anonymous functions
  • [x] Target-typed conditional expression
  • [x] Target-typed new
  • [x] Top-level statements

C# 10.0

  • [x] global using directives
  • [x] File-scoped namespace declaration
  • [x] Extended property patterns
  • [x] Allow const interpolated strings
  • [x] Record types can seal ToString()
  • [x] Allow both assignment and declaration in the same deconstruction
  • [x] Allow AsyncMethodBuilder attribute on methods
  • [x] Record structs
  • [ ] Lambda improvements

C# 11.0 (under development)

  • [x] Generic attributes
  • [x] Static abstract members in interfaces
  • [x] Newlines in string interpolations
  • [x] List patterns
  • [x] Slice pattern
  • [x] Required members
  • [ ] Raw string literals

References

Package Sidebar

Install

npm i tree-sitter-c-sharp

Weekly Downloads

3,725

Version

0.20.0

License

MIT

Unpacked Size

27.6 MB

Total Files

33

Last publish

Collaborators

  • amaanq
  • ahlinc
  • maxbrunsfeld
  • damieng
  • queerviolet
  • xapphire13