Git Product home page Git Product logo

sequenceplugin's Introduction

GitHub release JetBrains Plugins

SequenceDiagram

SequenceDiagram for IntelliJ IDEA https://vanco.github.io/SequencePlugin.

with this plugin, you can

  • generate Simple Sequence Diagram.
  • Navigate the code by click the diagram shape.
  • Delete Class from diagram.
  • Export the diagram as image.
  • Export the diagram as PlantUML file.
  • Exclude classes from diagram by Settings > Tools > Sequence Diagram
  • Smart Interface(experimental)
  • Lambda Expression(experimental)
  • Kotlin Support(Experimental, No code navigation)

Experimental features

The experimental features created by myself, which is not part of UML standard. Use this feature in your own risk.

Smart Interface

Find the implementation of the interface smartly. e.g.

public interface Fruit {
    int eat();
}

public class Apple implements Fruit {
    @Override
    public int eat() {
        return 5;
    }
}

Apple implemented the Fruit interface. When we generate sequence diagram for the eatFruit method:

public class People {
    
    private Fruit fruit = new Apple();

    public void eatFruit() {
        fruit.eat();
    }
}

I draw dummy implementation call in dash line.

Smart Interface

For the interface or abstract class, if there is only one implementation found, it will draw in diagram automatically. More than one implementation, you need to choose one to draw. this is an option in settings.

Lambda Expression

No standard for the lambda expression in the sequence diagram yet. So I create mine. e.g.

public interface Service<Int, String> {

    String invoke(Int a);
}

I need draw the sequence diagram for hello method:

public class Lambda {

    public Service<Integer, String> hello() {
        return a -> {
            Fruit fruit = new Apple();
            fruit.eat();
            return "I'm good!";
        };
    }
}

I draw a dummy ฮปโ†’ self call in diagram.

Lambda Expression

Kotlin support

The Kotlin language support are in very early stage.

  • Support generate topLevel function
  • Support generate PrimaryConstructor and SecondaryConstructor
  • Support generate No Constructor Class
  • Support generate JavaCall deeply
  • Code navigation is Not Implement Yet

How to use

SequenceDiagram can generate sequence diagram from JAVA and Kotlin File.

When installed, where to find it?

Since v2.1.0, the UI has improved a lot. now you can easily find it everywhere :)

  1. In navigation toolbar, A new ICON Sequence Diagram ...{:height="24px" width="24px"} added.
  2. In Tools menu. Tools > Sequence Diagram ...
  3. In Project view popup up menu. Sequence Diagram ...
  4. In Editor popup up menu. Sequence Diagram ...
  5. In IntentionAction tips.Generate sequence diagram

Please try to experience it and find what happen.

Have fun!

Version History

Current Version 2.1.2

versions: Changelog

Acknowledgement

Name history

  • SequencePlugin Maintained by Kentaur(Kesh Sibilev, [email protected]) until 2011
  • SequencePluginReload Maintained by Vanhg(Evan Fan, [email protected]) 2011 - 2015
  • SequenceDiagram Maintained by Vanco(Evan Fan, [email protected]) since 2016 new{:height="32px" width="32px"}

Why change name?

Since 2011, I found a solution of NPE of original SequencePlugin, so I write email to Kentaur with my solution, He said he was not coding anymore. Instead, he sent me the code. I fix the NPE issue and publish to plugin repository with new name SequencePluginReload.

In 2015, the IntelliJ change the login system, and I lost my account, cannot continue to publish new version to the repository.

In 2016, I change the Name again to SequenceDiagram and host the source code on github. Now it is open source.

Thanks Kentaur for the great work on the original source.

sequenceplugin's People

Contributors

andi-huber avatar cncsl avatar fanofxiaofeng avatar joostcore avatar vanco avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.