Skip to content
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

Add an option to hide inherited properties #1

Open
ConradPoohs opened this issue Apr 30, 2024 · 0 comments
Open

Add an option to hide inherited properties #1

ConradPoohs opened this issue Apr 30, 2024 · 0 comments

Comments

@ConradPoohs
Copy link

ConradPoohs commented Apr 30, 2024

When I create a diagram that includes a parent class with many properties and methods and multiple classes that inherit from it, I would like to have an option to hide all inherited members on the child classes in the diagram (unless they are explicitly overridden). This would make it easier to see which child classes implement/override specific inherited members.

I would also like it if abstract classes and abstract members were annotated in the diagram output as documented on Mermaid.js

(If this option already exists, it should be documented in the --help response and readme)

Example Input:

public abstract class AbstractParent
{
    public virtual string String { get; set; }

    public abstract int Int { get; set; }
    public virtual DateTime DateTime { get; set; }
    public abstract void Method();
}

public class ConcreteChild : AbstractParent
{
    public override int Int { get; set; }
    public override void Method() { }
}

public class ConcreteGrandChild : ConcreteChild
{
    public override string String { get; set; }
}

Current Output:

classDiagram

class AbstractParent
AbstractParent : +String String
AbstractParent : +Int Int
AbstractParent : +DateTime DateTime
AbstractParent : +Method() Void

class ConcreteChild
ConcreteChild : +Int Int
ConcreteChild : +String String
ConcreteChild : +DateTime DateTime
ConcreteChild : +Method() Void

class ConcreteGrandChild
ConcreteGrandChild : +String String
ConcreteGrandChild : +Int Int
ConcreteGrandChild : +DateTime DateTime
ConcreteGrandChild : +Method() Void


AbstractParent <|-- ConcreteChild
ConcreteChild <|-- ConcreteGrandChild

Loading

Desired output with "Hide Inherited" option enabled and <<abstract>> mermaid notation:

classDiagram

class AbstractParent
<<abract>> AbstractParent
AbstractParent : +String String
AbstractParent : +Int Int*
AbstractParent : +DateTime DateTime
AbstractParent : +Method() Void*

class ConcreteChild
ConcreteChild : +Int Int
ConcreteChild : +Method() Void

class ConcreteGrandChild
ConcreteGrandChild : +String String


AbstractParent <|-- ConcreteChild
ConcreteChild <|-- ConcreteGrandChild

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant