| <idea-plugin> | |
| <id>org.jetbrains.debugger.streams</id> | |
| <name>Java Stream Debugger</name> | |
| <vendor>JetBrains</vendor> | |
| <category>Other Tools</category> | |
| <depends>com.intellij.java</depends> | |
| <description><![CDATA[ | |
| <p>Visualizes chains of operations on Java streams.</p> | |
| <p>In some ways, Stream API is better than traditional loop approach: it takes full advantage of modern multi-core architectures, | |
| and lets you process data in a declarative way. What's also good is that this approach helps to avoid the state issues, and the | |
| code written in it looks more elegant. But, there's a certain downside to it: the code sometimes is sure hard to read, understand, | |
| and, of course, to debug.</p> | |
| <p>This plugin is here to amend that and offer solutions to the issues you might run into. It extends the <em>Debugger</em> | |
| tool window by adding the <em>Trace Current Stream Chain</em> button, which becomes active when debugger stops inside of a | |
| chain of Stream API calls.</p> | |
| <img src="https://raw.githubusercontent.com/bibaev/static/master/debugger-stop.png" height="300" width="750"> | |
| <p>After you click it, the current data stream is evaluated and you get a visualization of what exactly happens to each element | |
| from the first call to last, with changes occurring gradually as it's passing thru all the steps:</p> | |
| <img src="https://raw.githubusercontent.com/bibaev/static/master/flat_mode.png" height="300" width="750"> | |
| <p>The <em>Split Mode button</em> in the left bottom corner lets you choose whether you want to see all operations at once or | |
| separately:</p> | |
| <img src="https://raw.githubusercontent.com/bibaev/static/master/split_mode.png" height="300" width="750"> | |
| <p>In the latter mode, you can switch between operations manually using the tabs on top.</p> | |
| ]]></description> | |
| <resource-bundle>messages.StreamDebuggerBundle</resource-bundle> | |
| <extensionPoints> | |
| <extensionPoint name="librarySupport" interface="com.intellij.debugger.streams.lib.LibrarySupportProvider"/> | |
| </extensionPoints> | |
| <extensions defaultExtensionNs="org.jetbrains.debugger.streams"> | |
| <librarySupport implementation="com.intellij.debugger.streams.lib.impl.StandardLibrarySupportProvider"/> | |
| <librarySupport implementation="com.intellij.debugger.streams.lib.impl.StreamExLibrarySupportProvider"/> | |
| <librarySupport implementation="com.intellij.debugger.streams.lib.impl.JBIterableSupportProvider"/> | |
| </extensions> | |
| <actions> | |
| <action id="StreamTracerAction" | |
| class="com.intellij.debugger.streams.action.TraceStreamAction" | |
| icon="JavaDebuggerStreamsIcons.Stream_debugger"> | |
| <add-to-group group-id="XDebugger.ToolWindow.TopToolbar" anchor="after" relative-to-action="EvaluateExpression"/> | |
| </action> | |
| </actions> | |
| </idea-plugin> |