difftastic/vendored_parsers/tree-sitter-c-sharp
Wilfred Hughes b1ecf00602 Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
..
.github/workflows Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
bindings Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
corpus Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
queries Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
script Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
src Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
test Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
tools/highlight-test-generator Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
.gitattributes Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
.gitignore Rename vendor/ directory 2023-01-10 08:35:01 +07:00
.npmignore Rename vendor/ directory 2023-01-10 08:35:01 +07:00
Cargo.toml Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
LICENSE Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
Package.swift Rename vendor/ directory 2023-01-10 08:35:01 +07:00
README.md Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
binding.gyp Rename vendor/ directory 2023-01-10 08:35:01 +07:00
grammar.js Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
package.json Merge commit 'fcacbeb4af6bcdcfb4527978a997bb03f4fe086d' 2023-03-15 23:50:56 +07:00
test.js Rename vendor/ directory 2023-01-10 08:35:01 +07:00

README.md

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