Skip to content

[DOCS] Regenerate the class diagram in the README #1298

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 65 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -730,76 +730,130 @@ classDiagram
CSSListItem <|-- AtRule: inheritance
AtRule <|.. AtRuleBlockList: realization
CSSBlockList <|-- AtRuleBlockList: inheritance
AtRuleBlockList ..> OutputFormat: dependency
AtRule <|.. AtRuleSet: realization
AtRuleSet ..> OutputFormat: dependency
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like it's now also picking up dependencies that are method parameters, not just properties.

RuleSet <|-- AtRuleSet: inheritance
CSSList <|-- CSSBlockList: inheritance
Renderable <|-- CSSElement: inheritance
CSSFunction ..> OutputFormat: dependency
CSSFunction ..> ParserState: dependency
ValueList <|-- CSSFunction: inheritance
CSSList ..> AtRuleBlockList: dependency
CSSList ..> AtRuleSet: dependency
CSSElement <|.. CSSList: realization
CSSListItem <|.. CSSList: realization
CSSList ..> CSSNamespace: dependency
CSSList ..> Charset: dependency
CSSList ..> Import: dependency
CSSList ..> KeyFrame: dependency
CSSList ..> OutputFormat: dependency
CSSList ..> ParserState: dependency
Positionable <|.. CSSList: realization
CSSList ..> Selector: dependency
CSSList ..> SourceException: dependency
CSSList ..> UnexpectedTokenException: dependency
Commentable <|-- CSSListItem: inheritance
Renderable <|-- CSSListItem: inheritance
AtRule <|.. CSSNamespace: realization
CSSNamespace ..> OutputFormat: dependency
Positionable <|.. CSSNamespace: realization
CSSString ..> OutputFormat: dependency
CSSString ..> ParserState: dependency
PrimitiveValue <|-- CSSString: inheritance
CSSString ..> SourceException: dependency
CSSFunction <|-- CalcFunction: inheritance
CalcFunction ..> CalcRuleValueList: dependency
CalcFunction ..> ParserState: dependency
CalcFunction ..> RuleValueList: dependency
CalcFunction ..> UnexpectedTokenException: dependency
CalcRuleValueList ..> OutputFormat: dependency
RuleValueList <|-- CalcRuleValueList: inheritance
AtRule <|.. Charset: realization
Charset ..> CSSString: dependency
Charset ..> OutputFormat: dependency
Positionable <|.. Charset: realization
CSSFunction <|-- Color: inheritance
Color ..> OutputFormat: dependency
Color ..> ParserState: dependency
Color ..> Size: dependency
Color ..> UnexpectedTokenException: dependency
Comment ..> OutputFormat: dependency
Positionable <|.. Comment: realization
Renderable <|.. Comment: realization
DeclarationBlock ..> KeyframeSelector: dependency
DeclarationBlock ..> OutputException: dependency
DeclarationBlock ..> OutputFormat: dependency
DeclarationBlock ..> ParserState: dependency
RuleSet <|-- DeclarationBlock: inheritance
DeclarationBlock ..> Selector: dependency
DeclarationBlock ..> UnexpectedTokenException: dependency
CSSBlockList <|-- Document: inheritance
Document ..> OutputFormat: dependency
Document ..> ParserState: dependency
AtRule <|.. Import: realization
Import ..> OutputFormat: dependency
Positionable <|.. Import: realization
Import ..> URL: dependency
AtRule <|.. KeyFrame: realization
CSSList <|-- KeyFrame: inheritance
KeyFrame ..> OutputFormat: dependency
Selector <|-- KeyframeSelector: inheritance
LineName ..> OutputFormat: dependency
LineName ..> ParserState: dependency
ValueList <|-- LineName: inheritance
SourceException <|-- OutputException: inheritance
OutputFormat ..> OutputFormatter: dependency
OutputFormatter ..> Commentable: dependency
OutputFormatter ..> InvalidArgumentException: dependency
OutputFormatter ..> OutputFormat: dependency
Parser ..> Document: dependency
Parser ..> ParserState: dependency
ParserState ..> Anchor: dependency
ParserState ..> Comment: dependency
ParserState ..> Settings: dependency
ParserState ..> SourceException: dependency
ParserState ..> UnexpectedEOFException: dependency
ParserState ..> UnexpectedTokenException: dependency
Value <|-- PrimitiveValue: inheritance
Renderable ..> OutputFormat: dependency
CSSElement <|.. Rule: realization
Commentable <|.. Rule: realization
Rule ..> OutputFormat: dependency
Rule ..> ParserState: dependency
Positionable <|.. Rule: realization
Rule ..> RuleValueList: dependency
RuleContainer ..> Rule: dependency
CSSElement <|.. RuleSet: realization
CSSListItem <|.. RuleSet: realization
RuleSet ..> OutputFormat: dependency
RuleSet ..> ParserState: dependency
Positionable <|.. RuleSet: realization
RuleSet ..> Rule: dependency
RuleContainer <|.. RuleSet: realization
RuleSet ..> UnexpectedValueException: dependency
ValueList <|-- RuleValueList: inheritance
Selector ..> OutputFormat: dependency
Renderable <|.. Selector: realization
Size ..> OutputFormat: dependency
Size ..> ParserState: dependency
PrimitiveValue <|-- Size: inheritance
Exception <|-- SourceException: inheritance
Positionable <|.. SourceException: realization
URL ..> CSSString: dependency
URL ..> OutputFormat: dependency
URL ..> ParserState: dependency
PrimitiveValue <|-- URL: inheritance
UnexpectedTokenException <|-- UnexpectedEOFException: inheritance
SourceException <|-- UnexpectedTokenException: inheritance
CSSElement <|.. Value: realization
Value ..> CSSFunction: dependency
Value ..> ParserState: dependency
Positionable <|.. Value: realization
Value ..> RuleValueList: dependency
Value ..> UnexpectedTokenException: dependency
ValueList ..> OutputFormat: dependency
Value <|-- ValueList: inheritance

CSSList ..> CSSList: dependency
CSSList ..> Comment: dependency
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like it's losing dependencies that are class properties via traits. The CommentContainer trait was added for classes that have Comments. Given that traits are not included in the class diagram, this looks to me like a bug in the generator (for which I think the better fix would be to include traits in their own right, like interfaces and classes).

CSSList ..> RuleSet: dependency
CSSNamespace ..> Comment: dependency
Charset ..> Comment: dependency
Import ..> Comment: dependency
OutputFormat ..> OutputFormat: dependency
Rule ..> Comment: dependency
RuleSet ..> Comment: dependency
ValueList ..> Value: dependency
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ValueList extents Value and also has Values as properties. It looks like the latter connection is being lost.

```

## API and deprecation policy
Expand Down