-
-
Notifications
You must be signed in to change notification settings - Fork 32
Description
Warning
Breaking API change
I'm working on fixing this now as we discussed here. I'm creating this issue to document the changes here.
Note
I didn't examine other folders/files for similar discrepancies so there may be other changes needed.
The upstream java implementation declares StateStack (and some other classes in the .internal.grammar package as final (sealed in .NET). So if you wanted to have parity with the upstream impl, we should include a breaking change by declaring these classes as sealed. Also, notice it's in the .internal.grammar package, suggesting it's not meant for public extension anyways. Implementers could still implement IStateStack if desired.
Here is a list of upstream differences I found - I only looked in this folder/namespace. So, there may also be others:
| class name | sealed/unsealed (has parity with TextMateSharp) | class visibility (has parity with TextMateSharp) |
|---|---|---|
AttributedScopeStack |
sealed ❌ | internal ❌ |
BalancedBracketSelectors |
sealed ❌ | public ✅ |
BasicScopeAttributes |
sealed ❌ | internal ❌ |
BasicScopeAttributesProvider |
sealed ❌ | internal ❌ |
Grammar |
sealed ❌ | public ✅ |
LineTokenizer |
sealed ❌ | internal ❌ |
LineTokens |
sealed ❌ | internal ❌ |
TokenTypeMatcher |
sealed ❌ | internal ✅ |
TokenizeLineResult |
sealed ❌ | internal ❌ |