Swiftpack.co - tree-sitter/tree-sitter-c-sharp as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by tree-sitter.
tree-sitter/tree-sitter-c-sharp v0.20.0
C# Grammar for tree-sitter
⭐️ 98
🕓 12 weeks ago
.package(url: "https://github.com/tree-sitter/tree-sitter-c-sharp.git", from: "v0.20.0")

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
  • ☐ Raw string literals
  • ☐ File scoped types
  • ☐ Scoped ref

References

GitHub

link
Stars: 98
Last commit: 4 weeks ago
jonrohan Something's broken? Yell at me @ptrpavlik. Praise and feedback (and money) is also welcome.

Release Notes

0.20.0
12 weeks ago

Main theme in this release is the C# 10 and C# 11 features (mostly complete).

Adds support for

  • C# 10 (except Explicit return type Lambdas)
  • Unicode identifiers
  • Global using directives
  • C# 11 (except raw string literals)

Also

  • Various bug fixes
  • Some incremental improvements/tweaks

Availability

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics