Skip to content

[Breaking]: Visibility of fields/properties/classes does not match upstream tm4e implementation #123

@udlose

Description

@udlose

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 ❌

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions