<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="30171" data-post-id="30171">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-post-not-found" data-username="KronicDeth" data-post="1" data-topic="4646">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kronicdeth/48/33300_2.png" class="avatar"></div>
<blockquote>
<p>Decompile .beam files</p>
</blockquote>
</aside>
<p>Oh that is cool, I usually just do that manually by using the raw erlang calls, I may have to take a look at this now, though eclipse uses up so much memory that it is hard to run here…  ^.^;</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30171" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-30171" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30171"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="30183" data-post-id="30183">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="LawJolla" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/LawJolla/120/3442_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  LawJolla
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thank you and all of the contributors for their hard work!  I had switched to VS Code, but I like WebStorm more for JS.  I’m hoping this update brings me back to WS.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30183" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-30183" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30183"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="45825" data-post-id="45825">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="KronicDeth" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/KronicDeth/120/33300_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  KronicDeth
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-45825-thanks-1" class="anchor" href="#p-45825-thanks-1" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting when <code>scope.isEquivalentTo(lastParent.getParent())</code> is <code>false</code> in <code>processDeclarationsInPreviousSibling</code>
<ul>
<li><a href="https://github.com/gopalindians" rel="noopener nofollow ugc">@gopalindians</a></li>
</ul>
</li>
</ul>
<h1><a name="p-45825-changelog-2" class="anchor" href="#p-45825-changelog-2" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-45825-v510-3" class="anchor" href="#p-45825-v510-3" aria-label="Heading link" rel="nofollow"></a>v5.1.0</h2>
<h3><a name="p-45825-enhancements-4" class="anchor" href="#p-45825-enhancements-4" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/643" rel="noopener nofollow ugc">#643</a> - Graphical debugger with line breakpoints - <a href="https://github.com/JakeBecker" rel="noopener nofollow ugc">@JakeBecker</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/673" rel="noopener nofollow ugc">#673</a> - Add Debugger to README - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h3><a name="p-45825-bug-fixes-5" class="anchor" href="#p-45825-bug-fixes-5" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/669" rel="noopener nofollow ugc">#669</a> - Replace <code>assert scope.isEquivalentTo(lastParent.getParent())</code> with an <code>if</code> and log what <code>lastParent</code> was when condition is <code>false</code>, so root cause can be traced. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h1><a name="p-45825-readme-updates-6" class="anchor" href="#p-45825-readme-updates-6" aria-label="Heading link" rel="nofollow"></a>README Updates</h1>
<h3><a name="p-45825-debugger-7" class="anchor" href="#p-45825-debugger-7" aria-label="Heading link" rel="nofollow"></a>Debugger</h3>
<p>IntelliJ Elixir allows for graphical debugging of <code>*.ex</code> files using line breakpoints.</p>

  <img alt="Line breakpoints for debugger can be set in gutter of editor tab." src="/screenshots/Debugger.png?raw=true" width="" height="">
  <br>
  
    Line breakpoints can added by clicking in the left-hand gutter of an
    editor tab.  A red dot will appear marking the breakpoint.  When a
    Run Configuration is Run with the Debug (bug) instead of Run (arrow)
    button, execution will stop at the breakpoint and you can view the
    local variables (with Erlang names) and the stackframes.
  

<h4><a name="p-45825-steps-8" class="anchor" href="#p-45825-steps-8" aria-label="Heading link" rel="nofollow"></a>Steps</h4>
<ol>
<li>Define a <a href="#run-configurations" rel="nofollow">run/debug configuration</a></li>
<li><a href="#creating-line-breakpoints" rel="nofollow">Create breakpoints</a> in the <code>*.ex</code> files</li>
<li><a href="#starting-the-debugger-session" rel="nofollow">Launch</a> a debugging session</li>
<li>During the debugger session, <a href="#stepping" rel="nofollow">step through the breakpoints</a>, <a href="#examining-suspended-program" rel="nofollow">examine suspended program</a>, and <a href="#frames" rel="nofollow">explore frames</a>.</li>
</ol>
<h4><a name="p-45825-basics-9" class="anchor" href="#p-45825-basics-9" aria-label="Heading link" rel="nofollow"></a>Basics</h4>
<p>After you have configured a <a href="#run-configuration" rel="nofollow">run configuration</a> for your project, you can launch it in debug mode by pressing <code>Ctrl+D</code>.</p>
<h5><a name="p-45825-keyboard-shortcuts-10" class="anchor" href="#p-45825-keyboard-shortcuts-10" aria-label="Heading link" rel="nofollow"></a>Keyboard Shortcuts</h5>
<div class="md-table">
<table>
<thead>
<tr>
<th>Action</th>
<th>Keyword Shortcut</th>
</tr>
</thead>
<tbody>
<tr>
<td>Toggle Breakpoint</td>
<td><code>Cmd+F8</code></td>
</tr>
<tr>
<td>Resume Program</td>
<td><code>Alt+Cmd+R</code></td>
</tr>
<tr>
<td>Step Over</td>
<td><code>F8</code></td>
</tr>
<tr>
<td>Step Into</td>
<td><code>F7</code></td>
</tr>
<tr>
<td>View breakpoint details/all breakpoints</td>
<td><code>Shift+Cmd+F8</code></td>
</tr>
</tbody>
</table>
</div><h4><a name="p-45825-breakpoints-11" class="anchor" href="#p-45825-breakpoints-11" aria-label="Heading link" rel="nofollow"></a>Breakpoints</h4>
<p>When a breakpoint is set, the editor displays a breakpoint icon in the gutter area to the left of the affected source code. A breakpoint icon denotes status of a breakpoint, and provides useful information about its type, location, and action.</p>
<p>The icons serve as convenient shortcuts for managing breakpoints. Clicking an icon removes the breakpoint. Successive use of Alt - click on an icon toggles its state between enabled and disabled. The settings of a breakpoint are shown in a tooltip when a mouse pointer hovers over a breakpoint icon in the gutter area of the editor.</p>
<div class="md-table">
<table>
<thead>
<tr>
<th>Status</th>
<th>Icon</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Enabled</td>
<td><img alt="Red dot" src="https://forum.elixirforum.com/uploads/default/original/2X/d/dbbbccba7f51b54c4e0686a9036c8ee5a74c7db3.png" width="12" height="12"></td>
<td>Indicates the debugger will stop at this line when the breakpoint is hit.</td>
</tr>
<tr>
<td>Disabled</td>
<td><img alt="Red dot with green dot in center" src="https://forum.elixirforum.com/uploads/default/original/2X/d/d980fbaca134aa36c3a7920bc8f35993c19f7ad4.png" width="12" height="12"></td>
<td>Indicates that nothing happens when the breakpoint is hit.</td>
</tr>
<tr>
<td>Conditionally Disabled</td>
<td><img alt="Red dot with green dot in top-left corner" src="https://forum.elixirforum.com/uploads/default/original/2X/2/247c5757b0308086abd872d7894d3a5c0c03fd6c.png" width="12" height="12"></td>
<td>This state is assigned to breakpoints when they depend on another breakpoint to be activated.</td>
</tr>
</tbody>
</table>
</div><p>When the button <img alt="Red dot surrounded by crossed-out circle" src="https://forum.elixirforum.com/uploads/default/original/2X/d/da79440a221d816e8a50f5bcb114552bcf99ba6c.png" width="18" height="18"> is pressed in the toolbar of the Debug tool window, all the breakpoints in a project are muted, and their icons become grey: <img alt="Grey dot" src="https://forum.elixirforum.com/uploads/default/original/2X/3/3f932edbcdcc6cc4c9ae76d7358c94ddb0d74eb7.png" width="16" height="14">.</p>
<h5><a name="p-45825-accessing-breakpoint-properties-12" class="anchor" href="#p-45825-accessing-breakpoint-properties-12" aria-label="Heading link" rel="nofollow"></a>Accessing Breakpoint Properties</h5>
<h6><a name="p-45825-viewing-all-breakpoints-13" class="anchor" href="#p-45825-viewing-all-breakpoints-13" aria-label="Heading link" rel="nofollow"></a>Viewing all breakpoints</h6>
<p>To view the list of all breakpoints and their properties, do one of the following:</p>
<ul>
<li>Run &gt; View Breakpoints</li>
<li><code>Shift+Cmd+F8</code></li>
<li>Click the <img alt="Two red dots layered vertically on top of each other with smaller grey rings to right of the red dots" src="https://forum.elixirforum.com/uploads/default/original/2X/a/aa1ed36b174495af3c5ae86f94a9cd0758d5cbf6.gif" width="18" height="20"></li>
<li>Breakpoints are visible in the Favorites tool window.</li>
</ul>
<h6><a name="p-45825-viewing-a-single-breakpoint-14" class="anchor" href="#p-45825-viewing-a-single-breakpoint-14" aria-label="Heading link" rel="nofollow"></a>Viewing a single breakpoint</h6>
<p>To view properties of a single breakpoint</p>
<ul>
<li>Right-Click a breakpoint icon in the left gutter of the editor.<br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/9/9f2b123ff3c15fc79aae43334f09869ea3961d9f.png" data-download-href="https://forum.elixirforum.com/uploads/default/9f2b123ff3c15fc79aae43334f09869ea3961d9f" title="Properties.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/9/9f2b123ff3c15fc79aae43334f09869ea3961d9f_2_690x209.png" width="690" height="209" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/9/9f2b123ff3c15fc79aae43334f09869ea3961d9f_2_690x209.png, https://forum.elixirforum.com/uploads/default/optimized/2X/9/9f2b123ff3c15fc79aae43334f09869ea3961d9f_2_1035x313.png 1.5x, https://forum.elixirforum.com/uploads/default/optimized/2X/9/9f2b123ff3c15fc79aae43334f09869ea3961d9f_2_1380x418.png 2x" data-dominant-color="383B3D"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">Properties.png</span><span class="informations">1610×488 66.7 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></li>
</ul>
<h5><a name="p-45825-configuring-breakpoints-15" class="anchor" href="#p-45825-configuring-breakpoints-15" aria-label="Heading link" rel="nofollow"></a>Configuring Breakpoints</h5>
<p>To configure actions, suspend policy and dependencies of a breakpoint</p>
<ol>
<li>Open the Breakpoint Properties
<ul>
<li>Right-click a breakpoint in the left gutter, then click the More link or press <code>Shift+Cmd+F8</code></li>
<li>Open the <a href="#viewing-all-breakpoints" rel="nofollow">Breakpoints</a> dialog box and select the breakpoint from the list</li>
<li>In the Favorites tool window, select the desired breakpoint, and click the pencil icon.</li>
</ul>
</li>
<li>Define the actions to be performed by IntelliJ IDEA on hitting breakpoint:
<ul>
<li>To notify about the reaching of a breakpoint with a text message in the debugging console, check the “Log message to console” check box.  A message of the format <code>*DBG* 'Elixir.IntellijElixir.DebugServer' got cast {breakpoint_reached, PID}</code> will appear in the console.</li>
<li>To set a breakpoint the current one depends on, select it from the “Disabled until selected breakpoint hit” drop-down list. Once dependency has been set, the current breakpoint is disabled until selected one is hit.
<ul>
<li>Choose the “Disable again” radio button to disable the current breakpoint after selected breakpoint was hit.</li>
<li>Choose the “Leave enabled” radio button to keep the current breakpoint enabled after selected breakpoint was hit.</li>
</ul>
</li>
<li>Enable suspending an application upon reaching a breakpoint by checking the “Suspend” check box.</li>
</ul>
</li>
</ol>
<h5><a name="p-45825-creating-line-breakpoints-16" class="anchor" href="#p-45825-creating-line-breakpoints-16" aria-label="Heading link" rel="nofollow"></a>Creating Line Breakpoints</h5>
<p>A line breakpoint is a breakpoint assigned to a specific line in the source code.</p>
<p>Line breakpoints can be set on executable lines. Comments, declarations and empty lines are not valid locations for the line breakpoints.</p>
<ol>
<li>Place the caret on the desired line of the source code.</li>
<li>Do one of the following:
<ul>
<li>Click the left gutter area at a line where you want to toggle a breakpoint</li>
<li>Run &gt; Toggle Line Breakpoint</li>
<li><code>Cmd+F8</code></li>
</ul>
</li>
</ol>
<h5><a name="p-45825-describing-line-breakpoints-17" class="anchor" href="#p-45825-describing-line-breakpoints-17" aria-label="Heading link" rel="nofollow"></a>Describing Line Breakpoints</h5>
<ol>
<li><a href="#viewing-all-breakpoints" rel="nofollow">Open the Breakpoints dialog</a></li>
<li>Right-click the breakpoint you want to describe</li>
<li>Select “Edit description” from the context menu</li>
<li>In the “Edit Description” dialog box, type the desired description.</li>
</ol>
<h5><a name="p-45825-searching-for-line-breakpoints-18" class="anchor" href="#p-45825-searching-for-line-breakpoints-18" aria-label="Heading link" rel="nofollow"></a>Searching for Line Breakpoints</h5>
<ol>
<li><a href="#viewing-all-breakpoints" rel="nofollow">Open the Breakpoints dialog</a></li>
<li>Start typing the description of the desired breakpoint</li>
</ol>
<h5><a name="p-45825-jump-to-breakpoint-source-19" class="anchor" href="#p-45825-jump-to-breakpoint-source-19" aria-label="Heading link" rel="nofollow"></a>Jump to Breakpoint Source</h5>
<ul>
<li>To view the selected breakpoint without closing the dialog box, use the preview pane.</li>
<li>To open the file with the selected breakpoint for editing, double-click the desired breakpoint.</li>
<li>To close Breakpoints dialog, press <code>Cmd+Down</code>. The caret will be placed at the line marked with the breakpoint in question.</li>
</ul>
<h5><a name="p-45825-disabling-line-breakpoints-20" class="anchor" href="#p-45825-disabling-line-breakpoints-20" aria-label="Heading link" rel="nofollow"></a>Disabling Line Breakpoints</h5>
<p>When you temporarily disable or enable a breakpoint, its icon changes from <img src="https://forum.elixirforum.com/uploads/default/original/2X/d/dbbbccba7f51b54c4e0686a9036c8ee5a74c7db3.png" width="12" height="12"> to <img src="https://forum.elixirforum.com/uploads/default/original/2X/d/d980fbaca134aa36c3a7920bc8f35993c19f7ad4.png" width="12" height="12"> and vice versa.</p>
<ol>
<li>Place the caret at the desired line with a breakpoint.</li>
<li>Do one of the following:
<ul>
<li>Run &gt; Toggle Breakpoint Enable</li>
<li>Right-click the desired breakpoint icon, select or deselect the  enabled check box, and then click Done.</li>
<li>Alt-click the breakpoint icon</li>
</ul>
</li>
</ol>
<h5><a name="p-45825-deleting-line-breakpoints-21" class="anchor" href="#p-45825-deleting-line-breakpoints-21" aria-label="Heading link" rel="nofollow"></a>Deleting Line Breakpoints</h5>
<p>Do one of he following:</p>
<ul>
<li>In the <a href="#viewing-all-breakpoints" rel="nofollow">Breakpoints</a> dialog box, select the desired line breakpoint, and click the red minus sign.</li>
<li>In the editor, locate the line with the line breakpoint to be deleted, and click its icon in the left gutter.</li>
<li>Place caret on the desired line and press <code>Cmd+F8</code>.</li>
</ul>
<h4><a name="p-45825-starting-the-debugger-session-22" class="anchor" href="#p-45825-starting-the-debugger-session-22" aria-label="Heading link" rel="nofollow"></a>Starting the Debugger Session</h4>
<ol>
<li>Select the run/debug configuration to execute</li>
<li>Do one of the following
<ul>
<li>Click <img alt="Bug" src="https://forum.elixirforum.com/uploads/default/original/2X/3/3dba4ccc0e6f5e22c0c68d343420271900f4e3f4.png" width="14" height="14"> on the toolbar</li>
<li>Run &gt; Debug</li>
<li><code>Ctrl+D</code></li>
</ul>
</li>
</ol>
<p>OR</p>
<p>Debug quick menu</p>
<ol>
<li><code>Ctrl+Alt+D</code></li>
<li>Select the configuration from the pop-up menu</li>
<li>Hit <code>Enter</code></li>
</ol>
<h4><a name="p-45825-examining-suspended-program-23" class="anchor" href="#p-45825-examining-suspended-program-23" aria-label="Heading link" rel="nofollow"></a>Examining Suspended Program</h4>
<h5><a name="p-45825-processes-24" class="anchor" href="#p-45825-processes-24" aria-label="Heading link" rel="nofollow"></a>Processes</h5>

  <div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/7/76ed50bb6e0d8214d075737958e32ae8aee24f3f.png" data-download-href="https://forum.elixirforum.com/uploads/default/76ed50bb6e0d8214d075737958e32ae8aee24f3f" title="Processes.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/7/76ed50bb6e0d8214d075737958e32ae8aee24f3f_2_690x457.png" width="690" height="457" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/7/76ed50bb6e0d8214d075737958e32ae8aee24f3f_2_690x457.png, https://forum.elixirforum.com/uploads/default/original/2X/7/76ed50bb6e0d8214d075737958e32ae8aee24f3f.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/7/76ed50bb6e0d8214d075737958e32ae8aee24f3f.png 2x" data-dominant-color="464E58"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">Processes.png</span><span class="informations">796×528 71 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div>
  <br>
  
    The "Thread" drop-down lists the current processes in the local
    node.  Only the current process is suspended.  The rest of the
    processes are still running.
  

<h5><a name="p-45825-frames-25" class="anchor" href="#p-45825-frames-25" aria-label="Heading link" rel="nofollow"></a>Frames</h5>

  <div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/d/d2f089f35b4003050d931cd65875a8bc8d7b927c.png" data-download-href="https://forum.elixirforum.com/uploads/default/d2f089f35b4003050d931cd65875a8bc8d7b927c" title="Frames.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/d/d2f089f35b4003050d931cd65875a8bc8d7b927c.png" width="690" height="91" data-dominant-color="45587A"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">Frames.png</span><span class="informations">766×102 12.9 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div>
  <br>
  
    The Frames for the current process can be navigated up and down
    using the arrow keys or clicking on the frame.
  

<ul>
<li>Press <code>Up</code> or <code>Down</code> to change frames</li>
<li>Click the frame from the list</li>
</ul>
<h6><a name="p-45825-jump-to-current-execution-point-26" class="anchor" href="#p-45825-jump-to-current-execution-point-26" aria-label="Heading link" rel="nofollow"></a>Jump to Current Execution Point</h6>
<p>When changing frames or jumping to definitions, you can lose track of where the debugger is paused.  To get back to the current execution point, do one of the following:</p>
<ol>
<li>Run &gt; Show Execution Point.</li>
<li><code>Alt+F10</code></li>
<li>Click <img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a4b6780e92b1dc99ffcac26c7f936bb97135afd3.png" width="23" height="21"> on the stepping toolbar of the Debug tool window.</li>
</ol>
<h5><a name="p-45825-variables-27" class="anchor" href="#p-45825-variables-27" aria-label="Heading link" rel="nofollow"></a>Variables</h5>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/9/92cb7df3331c98bf41476d6beb42ba417a7c157f.png" data-download-href="https://forum.elixirforum.com/uploads/default/92cb7df3331c98bf41476d6beb42ba417a7c157f" title="Variables.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/9/92cb7df3331c98bf41476d6beb42ba417a7c157f_2_690x153.png" width="690" height="153" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/9/92cb7df3331c98bf41476d6beb42ba417a7c157f_2_690x153.png, https://forum.elixirforum.com/uploads/default/optimized/2X/9/92cb7df3331c98bf41476d6beb42ba417a7c157f_2_1035x229.png 1.5x, https://forum.elixirforum.com/uploads/default/optimized/2X/9/92cb7df3331c98bf41476d6beb42ba417a7c157f_2_1380x306.png 2x" data-dominant-color="3B3F46"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">Variables.png</span><span class="informations">2316×516 79.2 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>While Elixir allows rebinding variable names, Erlang does not, so when viewed in the Variables pane, variables will have an <code>@VERSION</code> after their name indicating which rebinding of a the variable is.  Even if there is no variable reuse, the first variable will still have <code>@1</code> in its name.</p>
<h4><a name="p-45825-stepping-28" class="anchor" href="#p-45825-stepping-28" aria-label="Heading link" rel="nofollow"></a>Stepping</h4>
<div class="md-table">
<table>
<thead>
<tr>
<th>Action</th>
<th>Icon</th>
<th>Shortcut</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Show Execution Point</td>
<td><img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a4b6780e92b1dc99ffcac26c7f936bb97135afd3.png" width="23" height="21"></td>
<td><code>Alt+F10</code></td>
<td>Click this button to highlight the current execution point in the editor and show the corresponding stack frame in the Frames pane.</td>
</tr>
<tr>
<td>Step Over</td>
<td><img src="https://forum.elixirforum.com/uploads/default/original/2X/1/1e5ffe7b8d35764485d0f157801c166607315b6a.png" width="22" height="24"></td>
<td><code>F8</code></td>
<td>Click this button to execute the program until the next line in the current function or file, skipping the function referenced at the current execution point (if any). If the current line is the last one in the function, execution steps to the line executed right after this function.</td>
</tr>
<tr>
<td>Step Into</td>
<td><img src="https://forum.elixirforum.com/uploads/default/original/2X/8/884cf347498cb1d8590aceb2fb1b6782c48175c9.png" width="22" height="23"></td>
<td><code>F7</code></td>
<td>Click this button to have the debugger step into the function called at the current execution point.</td>
</tr>
<tr>
<td>Step Out</td>
<td><img src="https://forum.elixirforum.com/uploads/default/original/2X/0/03230edf537478ca6ad143e1240e30c41857db80.png" width="22" height="26"></td>
<td><code>Shift+F8</code></td>
<td>Click this button to have the debugger step out of the current function, to the line executed right after it.</td>
</tr>
</tbody>
</table>
</div><h2><a name="p-45825-installation-29" class="anchor" href="#p-45825-installation-29" aria-label="Heading link" rel="nofollow"></a>Installation</h2>
<h3><a name="p-45825-inside-ide-using-jetbrains-repository-30" class="anchor" href="#p-45825-inside-ide-using-jetbrains-repository-30" aria-label="Heading link" rel="nofollow"></a>Inside IDE using JetBrains repository</h3>
<ol>
<li>Preferences</li>
<li>Plugins</li>
<li>Browse Repositories</li>
<li>Select Elixir</li>
<li>Install plugin</li>
<li>Apply</li>
<li>Restart the IDE</li>
</ol>
<h3><a name="p-45825-inside-ide-using-github-releases-31" class="anchor" href="#p-45825-inside-ide-using-github-releases-31" aria-label="Heading link" rel="nofollow"></a>Inside IDE using Github releases</h3>
<h4><a name="p-45825-in-browser-32" class="anchor" href="#p-45825-in-browser-32" aria-label="Heading link" rel="nofollow"></a>In browser</h4>
<ol>
<li>Go to <a href="https://github.com/KronicDeth/intellij-elixir/releases" rel="noopener nofollow ugc">releases</a>.</li>
<li>Download the lastest zip.</li>
</ol>
<h4><a name="p-45825-in-ide-33" class="anchor" href="#p-45825-in-ide-33" aria-label="Heading link" rel="nofollow"></a>In IDE</h4>
<ol>
<li>Preferences</li>
<li>Plugins</li>
<li>Install plugin from disk…</li>
<li>Select the downloaded zip.</li>
<li>Apply</li>
<li>Restart the IDE.</li>
</ol>
<h2><a name="p-45825-donations-34" class="anchor" href="#p-45825-donations-34" aria-label="Heading link" rel="nofollow"></a>Donations</h2>
<p>If you would like to make a donation you can use Paypal:</p>
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=Kronic%2eDeth%40gmail%2ecom&amp;lc=US&amp;item_name=Elixir%20plugin%20for%20IntelliJ%20IDEA&amp;currency_code=USD&amp;bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted" rel="noopener nofollow ugc"><img src="https://forum.elixirforum.com/uploads/default/original/2X/2/25453f3007653dacb40e4dffb1f1f7aadcb0186c.gif" alt="Donate" width="92" height="26"></a></p>
<p>If you’d like to use a different donation mechanism (such as Patreon), please open an issue.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="45825" data-batch-url="/posts/batch_likers">
                        11
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-45825" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="45825"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="30826" data-post-id="30826">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="jwarlander" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jwarlander/120/1155_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  jwarlander
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Great stuff! Almost feels like I need to try IntelliJ soon.. <img src="https://forum.elixirforum.com/images/emoji/apple/smiling_face_with_sunglasses.png?v=15" title=":smiling_face_with_sunglasses:" class="emoji" alt=":smiling_face_with_sunglasses:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30826" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-30826" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30826"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="30896" data-post-id="30896">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group quote-modified" data-username="jwarlander" data-post="2" data-topic="4760">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jwarlander/48/1155_2.png" class="avatar"></div>
<blockquote>
<p>Great stuff! Almost feels like I need to try IntelliJ soon.. <img src="https://forum.elixirforum.com/images/emoji/apple/sunglasses.png?v=15" title=":sunglasses:" class="emoji" alt=":sunglasses:" loading="lazy" width="20" height="20"></p>
</blockquote>
</aside>
<p>Likewise, this is shaping up and developing fast!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="30896" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-30896" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="30896"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="31201" data-post-id="31201">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="svsdehh" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  svsdehh
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>great enhancements!</p>
<p>this makes it really easier to develop in elixir.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="31201" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-31201" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="31201"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="45828" data-post-id="45828">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="KronicDeth" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/KronicDeth/120/33300_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  KronicDeth
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<h1><a name="p-45828-thanks-1" class="anchor" href="#p-45828-thanks-1" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting <code>SmartHashSet</code> <code>null</code> errors
<ul>
<li>mirek sawicz (<a href="https://github.com/mireksawicz" rel="noopener nofollow ugc">@mireksawicz</a>)</li>
<li>Bruno Dusausoy (<a href="https://github.com/bdusauso" rel="noopener nofollow ugc">@bdusauso</a>)</li>
<li><a href="https://github.com/nulian" rel="noopener nofollow ugc">@nulian</a></li>
<li>Saša Šijak (<a href="https://github.com/ssijak" rel="noopener nofollow ugc">@ssijak</a>)</li>
<li><a href="https://github.com/mgom" rel="noopener nofollow ugc">@mgom</a></li>
<li>Hamed Asghari (<a href="https://github.com/hasghari" rel="noopener nofollow ugc">@hasghari</a>)</li>
<li>Wojciech Bednarski (<a href="https://github.com/wbednarski" rel="noopener nofollow ugc">@wbednarski</a>)</li>
<li>Jan Stevens (<a href="https://github.com/JanStevens" rel="noopener nofollow ugc">@JanStevens</a>)</li>
</ul>
</li>
<li>For building their own test versions of <code>6.0.0</code> and reporting pre-release bugs
<ul>
<li>Jan Stevens (<a href="https://github.com/JanStevens" rel="noopener nofollow ugc">@JanStevens</a>)</li>
</ul>
</li>
<li>For reporting <code>Kernel.SpecialForms</code> colors were wrong after merging the <code>Kernel</code> and <code>Callable</code> annotator
<ul>
<li>Jan Stevens (<a href="https://github.com/JanStevens" rel="noopener nofollow ugc">@JanStevens</a>)</li>
</ul>
</li>
<li>For reporting wrong indentation inside of stab (<code>do</code> block body)
<ul>
<li>Jan Stevens (<a href="https://github.com/JanStevens" rel="noopener nofollow ugc">@JanStevens</a>)</li>
</ul>
</li>
<li>Decompilation not working for OTP 20 beams using <code>AtU8</code> instead of <code>Atom</code> chunk
<ul>
<li><a href="https://github.com/tzveeJ" rel="noopener nofollow ugc">@tzveeJ</a></li>
</ul>
</li>
<li>Indexing problems with 6.0.0
<ul>
<li>Jan Stevens (<a href="https://github.com/JanStevens" rel="noopener nofollow ugc">@JanStevens</a>)</li>
</ul>
</li>
<li>For needling me into testing NixOS
<ul>
<li><a href="https://github.com/Havvy" rel="noopener nofollow ugc">@Havvy</a></li>
</ul>
</li>
<li>Reporting me bundling intellij-erlang’s templates because it was a hard-dependency instead of optional
<ul>
<li>Sergey Ignatov (<a href="https://github.com/ignatov" rel="noopener nofollow ugc">@ignatov</a>)</li>
<li>J. Ansorg (<a href="https://github.com/jansorg" rel="noopener nofollow ugc">@jansorg</a>)</li>
</ul>
</li>
<li>For explaining how to make intellij-erlang a soft-dependency correctly
<ul>
<li>Alexander Zolotov (<a href="https://github.com/zolotov" rel="noopener nofollow ugc">@zolotov</a>)</li>
</ul>
</li>
<li>For reporting error inserting completion at end of file
<ul>
<li>Andrew Zielinski (<a href="https://github.com/andrewzielinski" rel="noopener nofollow ugc">@andrewzielinski</a>)</li>
</ul>
</li>
<li>For reporting <code>UnmatchedAtUnqualifiedBracketOperation</code> could not be checked to be a parameter
<ul>
<li><a href="https://github.com/bdarla" rel="noopener nofollow ugc">@bdarla</a></li>
</ul>
</li>
<li>For both reporting the debugger crashes and designing how to blacklist bad modules
<ul>
<li>Alexander Merkulov (<a href="https://github.com/merqlove" rel="noopener nofollow ugc">@merqlove</a>)</li>
</ul>
</li>
<li>For reporting trailing spaces not being stripped before the formatter was implemented
<ul>
<li>Mariusz Żak (<a href="https://github.com/mariuszzak" rel="noopener nofollow ugc">@mariuszzak</a>)</li>
</ul>
</li>
<li>For reporting the dependency on JUnit code in non-test code
<ul>
<li>Michael Jansen (<a href="https://github.com/jansenm" rel="noopener nofollow ugc">@jansenm</a>)</li>
</ul>
</li>
<li>For reporting <code>""</code> being sent when ExUnit run configuration had no parameters</li>
<li>Chad Woolley (<a href="https://github.com/thewoolleyman" rel="noopener nofollow ugc">@thewoolleyman</a>)</li>
<li>For reporting Absinthe parsing error
<ul>
<li>Nitin Gupta (<a href="https://github.com/nitingupta910" rel="noopener nofollow ugc">@nitingupta910</a>)</li>
</ul>
</li>
<li>For reporting <code>ElixirMatchedUnqualifiedNoParenthesesCallImpl</code> parameter name set could not be determined
<ul>
<li>Raman But-Husaim (<a href="https://github.com/RamanBut-Husaim" rel="noopener nofollow ugc">@RamanBut-Husaim</a>)</li>
</ul>
</li>
<li>For reporting <code>ModuleAttribute.typeTypeParameterNameSet</code> should assume Aliases are incorrectly capitalized parameter names
<ul>
<li>Andrei Dziahel (<a href="https://github.com/develop7" rel="noopener nofollow ugc">@develop7</a>)</li>
</ul>
</li>
<li>For reporting the poor choice of background color for sigil in the Default Theme
<ul>
<li>Anmol Sethi (<a href="https://github.com/nhooyr" rel="noopener nofollow ugc">@nhooyr</a>)</li>
</ul>
</li>
<li>For reporting incorrect highlighting of <code>defmodule</code>
<ul>
<li>Andrei Dziahel (<a href="https://github.com/develop7" rel="noopener nofollow ugc">@develop7</a>)</li>
</ul>
</li>
<li>For reporting problems decompiling CORBA modules from Erlang
<ul>
<li>Anatoly Nosov (<a href="https://github.com/jomei" rel="noopener nofollow ugc">@jomei</a>)</li>
</ul>
</li>
<li>For reporting debugger errors
<ul>
<li>Samir Sabri (<a href="https://github.com/hopewise" rel="noopener nofollow ugc">@hopewise</a>)</li>
</ul>
</li>
<li>For reporting that <code>"'"</code> was being parsed as a heredoc promoter instead of a single quote inside double quotes
<ul>
<li>Timofey Martynov (<a href="https://github.com/feymartynov" rel="noopener nofollow ugc">@feymartynov</a>)</li>
</ul>
</li>
<li>Decompilation errors with <code>rebar3_hex_config.beam</code>
<ul>
<li>Josh Taylor (<a href="https://github.com/joshuataylor" rel="noopener nofollow ugc">@joshuataylor</a>)</li>
</ul>
</li>
<li>For reporting unhelpful decompilation error messages
<ul>
<li>Neeraj (<a href="https://github.com/neeraj9" rel="noopener nofollow ugc">@neeraj9</a>)</li>
</ul>
</li>
<li>For a full example to produce an <code>ElixirVariable</code> to trigger <code>isVariable</code> bug
<ul>
<li>Josué Henrique Ferreira da Silva (<a href="https://github.com/josuehenrique" rel="noopener nofollow ugc">@josuehenrique</a>)</li>
</ul>
</li>
<li>For reporting the <code>mix deps.get</code> can hang prompting for if the user wants to <code>mix local.hex --force</code>
<ul>
<li>Bryan Bryce (<a href="https://github.com/BryanJBryce" rel="noopener nofollow ugc">@BryanJBryce</a>)</li>
</ul>
</li>
<li>For reporting mix path quoting problems on Windows
<ul>
<li>Allen Wyma (<a href="https://github.com/HangingClowns" rel="noopener nofollow ugc">@HangingClowns</a>)</li>
</ul>
</li>
<li>For reporting the poor feedback when the <code>bin</code> is selected as the SDK home instead of the parent of <code>bin</code> and <code>lib</code>
<ul>
<li>Yordis Prieto (<a href="https://github.com/yordis" rel="noopener nofollow ugc">@yordis</a>)</li>
</ul>
</li>
<li>For reporting double quote balancing issues
<ul>
<li>Matt Briggs (<a href="https://github.com/mbriggs" rel="noopener nofollow ugc">@mbriggs</a></li>
</ul>
</li>
<li>For reporting that link to file goes to wrong file when multiple files share same filenames
<ul>
<li>Ryan Scheel (<a href="https://github.com/Havvy" rel="noopener nofollow ugc">@Havvy</a>)</li>
</ul>
</li>
<li>For reporting compilations errors do not mark entire test run as failed
<ul>
<li>Ryan Scheel (<a href="https://github.com/Havvy" rel="noopener nofollow ugc">@Havvy</a>)</li>
</ul>
</li>
<li>For reporting inconsistent coloring of <code>def</code>s
<ul>
<li>Andrea Campolonghi (<a href="https://github.com/andreacfm" rel="noopener nofollow ugc">@andreacfm</a>)</li>
</ul>
</li>
<li>For asking for Nix/NixOS support
<ul>
<li>Ryan Scheel (<a href="https://github.com/Havvy" rel="noopener nofollow ugc">@Havvy</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-45828-changelog-2" class="anchor" href="#p-45828-changelog-2" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-45828-v600-3" class="anchor" href="#p-45828-v600-3" aria-label="Heading link" rel="nofollow"></a>v6.0.0</h2>
<h3><a name="p-45828-enhancements-4" class="anchor" href="#p-45828-enhancements-4" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/724" rel="noopener nofollow ugc">#724</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Code Formatter
<ul>
<li><code>do</code> block lines are indented</li>
<li><code>do</code> blocks <code>end</code> as the last argument of a no parentheses call unindents to the start of the call</li>
<li>If one clause of a multi-clause anonymous function wraps, all clauses wrap.</li>
<li>Indent after <code>else</code></li>
<li>Indent map and struct keys</li>
<li>All keys wrap if any key wraps</li>
<li>No spaces around…
<ul>
<li><code>.</code></li>
</ul>
</li>
<li>Spaces around…
<ul>
<li><code>and</code></li>
<li><code>in</code></li>
<li><code>or</code></li>
<li><code>when</code></li>
</ul>
</li>
<li>Configure spaces around…
<ul>
<li><code>=</code></li>
<li><code>&lt;-</code> and <code>\\</code></li>
<li><code>!=</code>, <code>==</code>, <code>=~</code>, <code>!==</code>, and <code>===</code></li>
<li><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;=</code>, and <code>&gt;</code></li>
<li><code>+</code> and <code>-</code></li>
<li><code>*</code> and <code>/</code></li>
<li>Unary <code>+</code>, <code>-</code>, <code>!</code>, <code>^</code>, and <code>~~~</code></li>
<li><code>-&gt;</code></li>
<li><code>::</code></li>
<li><code>|</code></li>
<li><code>||</code> and <code>|||</code></li>
<li><code>&amp;&amp;</code> and <code>&amp;&amp;&amp;</code></li>
<li><code>&lt;~</code>, <code>|&gt;</code>, <code>~&gt;</code>, <code>&lt;&lt;&lt;</code>, <code>&lt;&lt;~</code>, <code>&lt;|&gt;</code>, <code>&lt;~&gt;</code>, <code>&gt;&gt;&gt;</code>, and <code>~&gt;&gt;</code></li>
<li><code>..</code></li>
<li><code>^^^</code></li>
<li><code>++</code>, <code>--</code>, <code>..</code>, <code>&lt;&gt;</code></li>
<li><code>=&gt;</code></li>
</ul>
</li>
<li>Configure spaces before…
<ul>
<li><code>,</code></li>
</ul>
</li>
<li>No space after…
<ul>
<li><code>@</code></li>
</ul>
</li>
<li>Spaces after…
<ul>
<li><code>not</code></li>
<li><code>fn</code></li>
<li><code>after</code></li>
<li><code>catch</code></li>
<li><code>rescue</code></li>
<li><code>key:</code></li>
</ul>
</li>
<li>Configure space after…
<ul>
<li><code>&amp;</code></li>
<li><code>,</code></li>
</ul>
</li>
<li>Configure spaces within…
<ul>
<li><code>{ }</code></li>
<li><code>&lt;&lt; &gt;&gt;</code></li>
<li><code>[ ]</code></li>
<li><code>( )</code></li>
</ul>
</li>
<li>No space around <code>/</code> in <code>&amp;NAME/ARITY</code> and <code>&amp;QUALIFIER.NAME/ARITY</code></li>
<li><code>when</code> wraps when its right operand wraps, so that guards start with <code>when</code> on a newline when they are too long.</li>
<li>Align <code>|&gt;</code> at start of indented line for pipelines</li>
<li>Align <code>end</code> with start of call instead of start of line for <code>do</code> blocks in pipelines</li>
<li>Indent list elements when wrapped</li>
<li>Indent tuple elements when wrapped</li>
<li>Align type definition to right of <code>::</code></li>
<li>Align guard to right of <code>when</code> when guards span multiple lines</li>
<li>Align two operator (<code>++</code>, <code>--</code>, <code>..</code>, <code>&lt;&gt;</code>) operands, so that <code>&lt;&gt;</code> binaries are multiple lines align their starts instead of using continuation indent and being indented relative to first operand.</li>
<li>Align pipe <code>|</code> operands, so that alternates in types and specs are aligned instead of continuation indented relative to the first operand.</li>
<li>Comments in <code>spec</code> (that is above operands to <code>|</code> align with the operands</li>
<li>Remove newlines from pipelines, so that all pipelines start with an initial value or call and each <code>|&gt;</code> is the start of a successive line.</li>
<li>Key exclusivity: if an association operation or keyword key is already on a line, the container value automatically has it’s elements wrapped if there is nested associations or keyword pairs, so that two levels of keys are not on the same line.</li>
<li>Indent bit string (<code>&lt;&lt; &gt;&gt;</code>) elements when wrapped</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/732" rel="noopener nofollow ugc">#732</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Update IntelliJ IDEA version to latest in each MINOR version:
<ul>
<li><code>2017.1.1</code> → <code>2017.1.5</code></li>
<li><code>2016.3.5</code> → <code>2016.3.7</code></li>
</ul>
</li>
<li>Update Elixir version <code>1.4.2</code> → <code>1.4.5</code></li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/738" rel="noopener nofollow ugc">#738</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li><code>TeamCityExUnitFormatting.put_event</code></li>
<li>Always match on <code>%__MODULE__{}</code> for state in clauses to prevent state update errors</li>
<li>Match on <code>:suite_finished</code> and <code>:suite_started</code> events, so that only events added to the interface will be unknown and <code>IO.warn</code> can be used tell anyone spotting the new event to file an issue.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/741" rel="noopener nofollow ugc">#741</a> - Instead of pinning position (<code>1</code> for lines or <code>3</code> for heredocs), <code>pin</code> <code>*_PROMOTER</code> token, so it’s more obvious the pattern is that the promoter is pinned. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/747" rel="noopener nofollow ugc">#747</a> - Regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/659" rel="noopener nofollow ugc">#659</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/629" rel="noopener nofollow ugc">#629</a> - Search for Elixir SDKs in <code>/nix/store</code> on Mac if homebrew path does not exist - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/751" rel="noopener nofollow ugc">#751</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/683" rel="noopener nofollow ugc">#683</a></li>
<li>Store expected decompilation in files to shrink <code>DecompilerTest</code> length</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/754" rel="noopener nofollow ugc">#754</a> - Update to <code>org.jetbrains.intellij</code> <code>0.2.15</code> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/760" rel="noopener nofollow ugc">#760</a> - Use <code>Elixir.LDAPEx.ELDAPv3.beam</code> as regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/703" rel="noopener nofollow ugc">#703</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/764" rel="noopener nofollow ugc">#764</a> - Show <code>quote</code>s in list in macros in Structure View - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/768" rel="noopener nofollow ugc">#768</a> - References will be cached until the file containing the PSI element changes, so that results from <code>Callable#multiResolve</code>, <code>CallDefinitionClause#multiResolve</code>, <code>Module#multiResolve</code>, and <code>ModuleAttribute#multiResolve</code>, which are all the extant references, can be cached and invalidated correctly. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/769" rel="noopener nofollow ugc">#769</a> - Use <code>ParameterLists</code> to support Path Variables in program parameters. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/774" rel="noopener nofollow ugc">#774</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Adjust SDK home path when <code>bin</code>, <code>lib,</code> or <code>src</code> to parent directory.</li>
<li>Format <code>ElixirSdkType</code>.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/775" rel="noopener nofollow ugc">#775</a> - Regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/354" rel="noopener nofollow ugc">#354</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/777" rel="noopener nofollow ugc">#777</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>
<p>Include specific message for each decompilation error reason.</p>
</li>
<li>
<p>Regression test for <span class="hashtag-raw">#772</span></p>
</li>
<li>
<p><code>AtU8</code> UTF8 atoms chunk decompilation to support OTP 20 compiled <code>.beam</code> files.</p>
</li>
<li>
<p>Regression test for Elixir 1.5.0 announcement to ensure that unicode from <code>AtU8</code> chunk can be read from beam file produced by following Elixir code:<br>
```elixir<br>
defmodule AtU8Test do<br>
def こんにちは世界 do<br>
:こんにちは世界</p>
<pre><code>     saudação = "Bom dia!"

    saudação
  end
end
```
</code></pre>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/771" rel="noopener nofollow ugc">#771</a> - Guard against read/write mismatch in stubs - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/782" rel="noopener nofollow ugc">#782</a> - Always install <code>IdeaVIM</code> in the gradle sandbox because it got annoying having to reinstall it when the sandbox reset. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/786" rel="noopener nofollow ugc">#786</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Merge both homebrew and nix store on Mac</li>
<li>Merge default and nix store on Linux</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/789" rel="noopener nofollow ugc">#789</a> - Format <code>MixRunningStateUtil</code> and fix warnings. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h3><a name="p-45828-bug-fixes-5" class="anchor" href="#p-45828-bug-fixes-5" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/726" rel="noopener nofollow ugc">#726</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Treat <code>::</code> the same as <code>:</code>  in <code>key:</code> after <code>when</code> in type specifications as it’s a realistic error.</li>
<li>Change <code>.</code> to <code>#</code> when referring to constants in javadocs</li>
<li>Remove <code>@param</code> without descriptions</li>
<li>Remove explicit type from generics when the type can be inferred.</li>
<li>Check if <code>atNonNumericOperation</code> reference is non-<code>null</code> before resolving</li>
<li>Swap empty branches to inverted conditions for final <code>else</code>.</li>
<li>Check if <code>Type</code> <code>leftOperand</code> is <code>null</code> before using it.</li>
<li>Remove empty <code>highlightTypesAndTypeParameterUsages(When...)</code></li>
<li>Remove unused <code>highlightTypesAndSpecificationTypeParameterDeclarations</code></li>
<li>Flip <code>equals</code> to eliminate need for <code>null</code> check</li>
<li>Remove redundant type arguments (<code>&lt;...&gt;</code>)</li>
<li>Change <code>Collections.EMPTY_SET</code> to <code>Collections.emptySet()</code> to prevent uncheck cast warnings.</li>
<li>Inline constant argument for errors.</li>
<li>Check if <code>when</code> <code>rightOperand</code> is non-<code>null</code> before scanning it for parameter names.</li>
<li>Fix typos</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/732" rel="noopener nofollow ugc">#732</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>When compilation error is detected during <code>mix test</code>, it will be turned into a test failure.
<ul>
<li>Compilation errors are any stacktraces to <code>stderr</code> that end in <code>    (elixir) lib/kernel/parallel_require.ex:</code>.</li>
<li>The test failure for the compilation will be attributed to either <code>mix test</code> or the inferred module name of test file.
<ul>
<li>If the first line of the stacktrace contains <code>test/.*_test.exs:\d+: \(module\)</code>
<ul>
<li>The file and line from that line will be used as the location of failure</li>
<li>The <code>test/</code> and <code>.exs</code> will be stripped from the file and it will be camelized to produce the derived test module name of the failure</li>
</ul>
</li>
<li>Otherwise, <code>mix test</code> is used</li>
</ul>
</li>
</ul>
</li>
<li>Rearrange doc test names to emphasize the function being tested: <code>"test doc at MODULE.FUNCTION/ARITY (COUNT)"</code> becomes <code>"MODULE.FUNCTION/ARITY doc (COUNT)"</code>
<ul>
<li>If <code>MODULE</code> is the same as the test case without the <code>Test</code> suffix, then <code>MODULE.</code> is stripped too and the test name becomes only <code>FUNCTION/ARITY doc (COUNT)</code></li>
</ul>
</li>
<li>Fix parallel test cases nesting under each other due to asynchronous reporting from formatter.  <code>##teamCity</code> <code>testSuiteStarted</code> messages automatically nest, so switched to using <code>nodeId</code> and <code>parentNodeId</code> system, so that nesting is explicit.  This will allow multiple parallel tests to show up in GUI too.</li>
<li><code>Elixir.</code> prefix is stripped from test case names.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/728" rel="noopener nofollow ugc">#728</a> - Handle Elixir versions with non-numeric parts - <a href="https://github.com/pazustep" rel="noopener nofollow ugc">@pazustep</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/734" rel="noopener nofollow ugc">#734</a> - Use a separate formatter, one GenEvent-based and one GenServer-based, depending on whether the SDK is &gt;= 1.4.0 as that’s when GenEvent was deprecated and GenServer was preferred. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/736" rel="noopener nofollow ugc">#736</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Merge <code>Callable</code> and <code>Kernel</code> annotators</li>
<li>Use <code>PsiElementVisitor</code> instead of <code>PsiRecursiveElementVisitor</code>, so that macros in <code>defmodule</code> block don’t get double annotated.</li>
<li>Instead of erasing and then applying multiple <code>TextAttributeKey</code>, erase as before, but then merge the <code>TextAttributeKey</code>’s <code>TextAttributes</code> and apply as single <code>setEnforcedTextAttributes</code>.  For some reason, this fixes the inconsistency of whether <code>PREDEFINED_CALL</code> or <code>MACRO_CALL</code> is applied first.</li>
<li>In case of multiple <code>resolved</code>s, make those that need <code>PREDEFINED_CALL</code> to win.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/738" rel="noopener nofollow ugc">#738</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li><code>TeamCityExUnitFormatting.new</code> should return struct only because none of the formatters expects an <code>:ok</code> tuple.</li>
<li>Fix order of <code>TeamCityExUnitFormatting.put_Event</code> catchall parameters.</li>
<li><code>FileReferenceFilter</code>
<ul>
<li>Add <code>.exs</code> to pattern for stacktrace linking.</li>
<li>Highlight only stacktrace path and line umber instead of entire line</li>
<li>Better path match in stacktraces
<ul>
<li>Only accept VirtualFile if it has a suffix matching the stacktrace’s path instead of accepting the first index file with a matching basename.</li>
<li>Allow multiple VirtualFiles to be linked if it turns out there is a true file path collision between two OTP apps in the Project or Libraries.</li>
</ul>
</li>
<li>Format and fix warnings</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/741" rel="noopener nofollow ugc">#741</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Pin promoter for all quotes, including the previously missing <code>stringLine</code> and <code>charListLine</code>.</li>
<li>Only insert closing quote if previous token was an opening quote.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/742" rel="noopener nofollow ugc">#742</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>On <code>unquote</code>, include argument in name of call definition clause</li>
<li>Look outside tuple containing <code>quote</code> for <code>enclosingMacroCall</code>, which allows going to <a href="https://github.com/phoenixframework/phoenix/blob/v1.2.4/lib/phoenix/template.ex#L380-L392" rel="noopener nofollow ugc">Phoenix.Template.compile’s quote’s defp</a></li>
<li>Treat <code>Module.create</code> as `Modular</li>
<li><code>Or</code> interface to unify <code>Matched</code> and <code>Unmatched</code> <code>Or</code>s.</li>
<li>Look at both side of <code>Or</code> operation for nested child calls for Structure view.</li>
<li>Make <code>unquote(ARG1)</code> name for <code>getName</code> and indexing</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/744" rel="noopener nofollow ugc">#744</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li><code>ElementDescription</code> for <code>ElixirVariable</code></li>
<li>Mark <code>UnqualifiedParenthesesCall</code>s as <code>call</code> instead of <code>variable</code>.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/745" rel="noopener nofollow ugc">#745</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li><code>mix local.hex --force</code> before <code>mix deps.get</code> during project import to prevent prompt for hex update when local hex is earlier than that required by <code>mix</code>.</li>
<li>Fix warnings and format <code>MixProjectRootStep</code></li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/746" rel="noopener nofollow ugc">#746</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Mark <code>ElixirDecimalFloat</code> as error in types.
<ul>
<li>If in a Range: “Floats aren’t allowed in Ranges”</li>
<li>Otherwise: “Float literals are not allowed in types.  Use float() instead”.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/747" rel="noopener nofollow ugc">#747</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Ignore <code>jps-*/out</code> directories.</li>
<li>Look at parent for <code>isParameter</code> for <code>AtUnqualifiedBracketOperation</code>.</li>
<li>Treat <code>AtUnqualifiedBracketOperation</code> the same as <code>UnqualifiedBracketOperation</code> for <code>isVariable</code>.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/748" rel="noopener nofollow ugc">#748</a> - Include path in error messages from <code>buildFileStub</code> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/749" rel="noopener nofollow ugc">#749</a> - Erlang allows <code>do</code> as a function name, but it’s a keyword in Elixir, so wrap it as <code>unquote(:do)</code>. The <code>SpecialForm</code> decompiler already did this <code>unquote(...)</code> wrapping, but <code>do</code> is a keyword and not a special form, so rename the decompiler to <code>Unquoted</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/750" rel="noopener nofollow ugc">#750</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>
<p>Move {3} inside <code>|</code> for <code>SIGIL</code> <code>PROMOTER</code> and <code>TERMINATOR</code>:</p>
<blockquote>
<pre data-code-wrap="elixir"><code class="lang-elixir">SIGIL_HEREDOC_PROMOTER = ({SIGIL_DOUBLE_QUOTES_PROMOTER}|&gt;
{SIGIL_SINGLE_QUOTES_PROMOTER}){3}
SIGIL_HEREDOC_TERMINATOR = ({SIGIL_DOUBLE_QUOTES_TERMINATOR}|&gt;
{SIGIL_SINGLE_QUOTES_TERMINATOR}){3}
</code></pre>
<p>– <a href="https://github.com/KronicDeth/intellij-elixir/blob/v5.1.0/src/org/elixir_lang/Elixir.flex?utf8=%E2%9C%93#L524-L525" class="inline-onebox" rel="noopener nofollow ugc">intellij-elixir/src/org/elixir_lang/Elixir.flex at v5.1.0 · KronicDeth/intellij-elixir · GitHub</a></p>
</blockquote>
<p>The <code>|</code> is inside group that is then <code>{3}</code>'d, so it allows either <code>'</code> or <code>"</code> in groups of three.  This is only applies to the sigils.  It’s correct for normal string and charlist heredocs:</p>
<blockquote>
<pre data-code-wrap="elixir"><code class="lang-elixir">CHAR_LIST_HEREDOC_PROMOTER = {CHAR_LIST_PROMOTER}{3}
CHAR_LIST_HEREDOC_TERMINATOR = {CHAR_LIST_TERMINATOR}{3}

STRING_HEREDOC_PROMOTER = {STRING_PROMOTER}{3}
STRING_HEREDOC_TERMINATOR = {STRING_TERMINATOR}{3}

QUOTE_HEREDOC_PROMOTER = {CHAR_LIST_HEREDOC_PROMOTER} | {STRING_HEREDOC_PROMOTER}
QUOTE_HEREDOC_TERMINATOR = {CHAR_LIST_HEREDOC_TERMINATOR} | {STRING_HEREDOC_TERMINATOR}
</code></pre>
<p>– <a href="https://github.com/KronicDeth/intellij-elixir/blob/v5.1.0/src/org/elixir_lang/Elixir.flex?utf8=%E2%9C%93#L441-L448" class="inline-onebox" rel="noopener nofollow ugc">intellij-elixir/src/org/elixir_lang/Elixir.flex at v5.1.0 · KronicDeth/intellij-elixir · GitHub</a></p>
</blockquote>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/751" rel="noopener nofollow ugc">#751</a> - Unquote function names that start with an uppercase codepoint, so that they aren’t parsed as Aliases.  These function names occur in the CORBA modules in OTP. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/754" rel="noopener nofollow ugc">#754</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Using intellij.plugins will prevent packaging intellij-erlang as a runtime dependency, which leads to duplicate templates.</li>
<li>Don’t use the <code>JPS</code> <code>type</code> for <code>jps-*</code> projects because their deps become incompatible with other projects.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/755" rel="noopener nofollow ugc">#755</a> - Add missing <code>break</code>s to <code>case</code> statement in <code>processDeclarations(Match, ...)</code> that caused the logic of whether to check left, right, or both operand based on the whether the treeWalkUp came from always fell through to the <code>RIGHT</code> case, so it was only, always checking the right operand of the match and never the left operand. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/756" rel="noopener nofollow ugc">#756</a> - Skip <code>processDeclarationsInPreviousSibling</code> when <code>lastParent</code> is <code>ElixirFile</code> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/757" rel="noopener nofollow ugc">#757</a> - Remove background color from sigils because it stands out really badly in the Default theme where it’s black on white and while it doesn’t in Darcula, it’s unnecessary there because it’s so close to the editor background color in Darcula. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/758" rel="noopener nofollow ugc">#758</a> - Treat <code>Alias</code> as miscapitalized type parameter. <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/759" rel="noopener nofollow ugc">#759</a> - Ignore call definition clauses after <code>when</code> in type specifications as it is a common occurrence when typing a specification above a pre-existing call definition clause. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/761" rel="noopener nofollow ugc">#761</a> - Use <code>THashSet</code> instead of the more specific <code>SmartHashSet</code> because <code>THashSet</code> allows <code>null</code> keys, which are expected for the <code>canonicalNameSet</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/764" rel="noopener nofollow ugc">#764</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Look above <code>List</code> for enclosing modular macro.</li>
<li>Look above <code>ElixirNoParenthesesManyStrictNoParenthesesExpression</code> for enclosing modular macro.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/765" rel="noopener nofollow ugc">#765</a> - Remove background color from Sigil Color Scheme Design to match changes in <a href="https://github.com/KronicDeth/intellij-elixir/pull/757" rel="noopener nofollow ugc">#757</a>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/769" rel="noopener nofollow ugc">#769</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Check if program parameters is blank before splitting into mix args.</li>
<li>Use <code>ParametersList</code> to properly parse quote program parameters.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/773" rel="noopener nofollow ugc">#773</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Move <code>Quoter</code> into <code>test</code> directory, so it and its dependency on <code>JUnit</code> is only used for test compilation and runtime and not the shipped runtime.</li>
<li>Fix <code>Quoter</code> warnings and format.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/774" rel="noopener nofollow ugc">#774</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Show expected SDK home path structure when invalid. <div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/5/54a9675ba27f486802ead19179917d460a3e3134.png" data-download-href="https://forum.elixirforum.com/uploads/default/54a9675ba27f486802ead19179917d460a3e3134" title="screen shot 2017-08-06 at 2 28 36 pm" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/5/54a9675ba27f486802ead19179917d460a3e3134.png" alt="screen shot 2017-08-06 at 2 28 36 pm" width="433" height="362"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">screen shot 2017-08-06 at 2 28 36 pm</span><span class="informations">433×362 25.3 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div></li>
<li>Suppress invalid warnings in <code>ElixirSdkType</code>.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/775" rel="noopener nofollow ugc">#775</a> - Always check if resolution result is right operand of match. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/776" rel="noopener nofollow ugc">#776</a> - <code>CallDefinitionClause</code> <code>InsertHandler</code> always assumed there was a character after the insert location, but when inserting at the very end of the file, there isn’t, which caused an <code>IndexOutOfBoundsException</code>.  Only check if the following character is not a space, <code>(</code>, or <code>[</code> when the document is longer than the tail offset to prevent the <code>IndexOutOfBoundsException</code>.  If the insertion is at the end of the file, then the <code>()</code> will always be inserted. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/777" rel="noopener nofollow ugc">#777</a> - <code>Decompilated</code> → <code>Decompilation</code> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/771" rel="noopener nofollow ugc">#771</a> - The lower-level <code>Data(Output|IntputStream</code> <code>(write|read)Int</code> don’t work correctly with sizes, so use the JetBrains <code>(write|read)VarInt</code> ones instead. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/782" rel="noopener nofollow ugc">#782</a> - Delegate <code>ChildAttributes</code> to previous child when available: <code>Block.getChildAttributes</code> is used when Enter is pressed to determine the indentation and alignment.  Using the default implementation, newlines in stabs look overly indented, but there is a constant, <code>DELEGATE_TO_PREV_CHILD</code> that can be used to just use the last child’s indent as long as there is one, which appears to work well for stabs (do block bodies, etc). - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/783" rel="noopener nofollow ugc">#783</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Increase suspect <code>nameSetSize</code> from <code>4</code> to <code>10</code> because a <code>Poison.Encoder</code> has an <code>impl</code> module for 4 types, and so has 4 canonical names.</li>
<li>Only read-ahead if guard length is non-zero; otherwise, only warn the nameSetSize may be suspect and don’t read-ahead as this can mess up OK namesets.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/784" rel="noopener nofollow ugc">#784</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Override <code>Kernel.SpecialFroms</code> arity intervals
<ul>
<li><code>alias</code> overridden from <code>2</code> to <code>1-2</code> to support without <code>:as</code> option.</li>
<li><code>import</code> overridden from <code>2</code> to <code>1-2</code> to support without <code>:except</code> or <code>:only</code> options.</li>
<li><code>quote</code> overridden from <code>2</code> to <code>1-2</code> to support block without options.</li>
<li><code>require</code> overridden from <code>2</code> to <code>1-2</code> to support without <code>:as</code> option.</li>
<li><code>super</code> overridden from <code>1</code> to <code>0-</code> to support calling any super method.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/789" rel="noopener nofollow ugc">#789</a> - <code>elixir.bat</code> in at least Elixir 1.5.1, will not properly parse a mix path with spaces in it on Windows even when the path has outer quotes (see elixir-lang/elixir#6455). It is not possible to use inner quotes, as you can do in cmd.exe, using the JetBrains and Java libraries hat auto-matically quote, so instead bypass the bad quoting in <code>elixir.bat</code> by doing what <code>elixir.bat</code> does: call <code>erl.exe</code> with all the SDK ebin paths added with <code>-pa</code>, then <code>-noshell -s elixir start_cli</code> to run Elixir and<code>-extra</code> to run requires (<code>-r</code>), mix and its tasks. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h3><a name="p-45828-incompatible-changes-6" class="anchor" href="#p-45828-incompatible-changes-6" aria-label="Heading link" rel="nofollow"></a>Incompatible Changes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/732" rel="noopener nofollow ugc">#732</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Drop <code>14.1.X</code> support because it does not have support for nodeId test output, so it’s not possible to handle the ExUnit test output in a safe manner while still allowing concurrent output for asynchronous tests.</li>
</ul>
</li>
</ul>
<h1><a name="p-45828-readme-updates-7" class="anchor" href="#p-45828-readme-updates-7" aria-label="Heading link" rel="nofollow"></a>README Updates</h1>
<h3><a name="p-45828-formatting-8" class="anchor" href="#p-45828-formatting-8" aria-label="Heading link" rel="nofollow"></a>Formatting</h3>
<p>IntelliJ Elixir can reformat code to follow a consistent style.</p>
<ul>
<li><code>do</code> block lines are indented</li>
<li><code>do</code> blocks <code>end</code> as the last argument of a no parentheses call unindents to the start of the call</li>
<li>If one clause of a multi-clause anonymous function wraps, all clauses wrap.</li>
<li>Indent after <code>else</code></li>
<li>Indent map and struct keys</li>
<li>All keys wrap if any key wraps</li>
<li>No spaces around…
<ul>
<li><code>.</code></li>
</ul>
</li>
<li>Spaces around…
<ul>
<li><code>and</code></li>
<li><code>in</code></li>
<li><code>or</code></li>
<li><code>when</code></li>
</ul>
</li>
<li>Configure spaces around…
<ul>
<li><code>=</code></li>
<li><code>&lt;-</code> and <code>\\</code></li>
<li><code>!=</code>, <code>==</code>, <code>=~</code>, <code>!==</code>, and <code>===</code></li>
<li><code>&lt;</code>, <code>&lt;=</code>, <code>&gt;=</code>, and <code>&gt;</code></li>
<li><code>+</code> and <code>-</code></li>
<li><code>*</code> and <code>/</code></li>
<li>Unary <code>+</code>, <code>-</code>, <code>!</code>, <code>^</code>, and <code>~~~</code></li>
<li><code>-&gt;</code></li>
<li><code>::</code></li>
<li><code>|</code></li>
<li><code>||</code> and <code>|||</code></li>
<li><code>&amp;&amp;</code> and <code>&amp;&amp;&amp;</code></li>
<li><code>&lt;~</code>, <code>|&gt;</code>, <code>~&gt;</code>, <code>&lt;&lt;&lt;</code>, <code>&lt;&lt;~</code>, <code>&lt;|&gt;</code>, <code>&lt;~&gt;</code>, <code>&gt;&gt;&gt;</code>, and <code>~&gt;&gt;</code></li>
<li><code>..</code></li>
<li><code>^^^</code></li>
<li><code>++</code>, <code>--</code>, <code>..</code>, <code>&lt;&gt;</code></li>
<li><code>=&gt;</code></li>
</ul>
</li>
<li>Configure spaces before…
<ul>
<li><code>,</code></li>
</ul>
</li>
<li>No space after…
<ul>
<li><code>@</code></li>
</ul>
</li>
<li>Spaces after…
<ul>
<li><code>not</code></li>
<li><code>fn</code></li>
<li><code>after</code></li>
<li><code>catch</code></li>
<li><code>rescue</code></li>
<li><code>key:</code></li>
</ul>
</li>
<li>Configure space after…
<ul>
<li><code>&amp;</code></li>
<li><code>,</code></li>
</ul>
</li>
<li>Configure spaces within…
<ul>
<li><code>{ }</code></li>
<li><code>&lt;&lt; &gt;&gt;</code></li>
<li><code>[ ]</code></li>
<li><code>( )</code></li>
</ul>
</li>
<li>No space around <code>/</code> in <code>&amp;NAME/ARITY</code> and <code>&amp;QUALIFIER.NAME/ARITY</code></li>
<li><code>when</code> wraps when its right operand wraps, so that guards start with <code>when</code> on a newline when they are too long.</li>
<li>Align <code>|&gt;</code> at start of indented line for pipelines</li>
<li>Align <code>end</code> with start of call instead of start of line for <code>do</code> blocks in pipelines</li>
<li>Indent list elements when wrapped</li>
<li>Indent tuple elements when wrapped</li>
<li>Align type definition to right of <code>::</code></li>
<li>Align guard to right of <code>when</code> when guards span multiple lines</li>
<li>Align two operator (<code>++</code>, <code>--</code>, <code>..</code>, <code>&lt;&gt;</code>) operands, so that <code>&lt;&gt;</code> binaries are multiple lines align their starts instead of using continuation indent and being indented relative to first operand.</li>
<li>Align pipe <code>|</code> operands, so that alternates in types and specs are aligned instead of continuation indented relative to the first operand.</li>
<li>Comments in <code>spec</code> (that is above operands to <code>|</code> align with the operands</li>
<li>Remove newlines from pipelines, so that all pipelines start with an initial value or call and each <code>|&gt;</code> is the start of a successive line.</li>
<li>Key exclusivity: if an association operation or keyword key is already on a line, the container value automatically has it’s elements wrapped if there is nested associations or keyword pairs, so that two levels of keys are not on the same line.</li>
<li>Indent bit string (<code>&lt;&lt; &gt;&gt;</code>) elements when wrapped</li>
</ul>
<h2><a name="p-45828-installation-9" class="anchor" href="#p-45828-installation-9" aria-label="Heading link" rel="nofollow"></a>Installation</h2>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v6.0.0/README.md#installation" rel="noopener nofollow ugc">Installation Instructions</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="45828" data-batch-url="/posts/batch_likers">
                        6
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-45828" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="45828"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="45947" data-post-id="45947">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="KronicDeth" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/KronicDeth/120/33300_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  KronicDeth
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Version 6.1.0</p>
<h1><a name="p-45947-thanks-1" class="anchor" href="#p-45947-thanks-1" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting the original failure to setup debugger environment
<ul>
<li><a href="https://github.com/ctrlpz" rel="noopener nofollow ugc">@ctrlpz</a></li>
</ul>
</li>
<li>For reporting the failure to setup debugger environment persisted in 6.0.0 the same day as a the release
<ul>
<li>Erik Reedstrom (<a href="https://github.com/erikreedstrom" rel="noopener nofollow ugc">@erikreedstrom</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-45947-changelog-2" class="anchor" href="#p-45947-changelog-2" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-45947-v610-3" class="anchor" href="#p-45947-v610-3" aria-label="Heading link" rel="nofollow"></a>v6.1.0</h2>
<h3><a name="p-45947-enhancements-4" class="anchor" href="#p-45947-enhancements-4" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/792" rel="noopener nofollow ugc">#792</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Since the process of requiring resource files is the same, <code>org.elixir_lang.ElixirModules</code> has static methods for copying resources out to a temporary directory and adding the <code>-r &lt;temporary_path&gt;</code> for one or more resource files to a new or existing ParametersList.  These are now shared for the Mix ExUnit and Debugger code paths.</li>
<li>Format class
<ul>
<li><code>ElixirXDebugProcess</code></li>
<li><code>MixExUnitRunningState</code></li>
<li><code>MIxRunningState</code></li>
</ul>
</li>
</ul>
</li>
</ul>
<h3><a name="p-45947-bug-fixes-5" class="anchor" href="#p-45947-bug-fixes-5" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/792" rel="noopener nofollow ugc">#792</a> - The compiled <code>.beam</code> files were removed in 58e7d4a, which was before v5.1.0, but not all users had problems with using the debugger.  <a href="https://github.com/KronicDeth/intellij-elixir/issues/739" rel="noopener nofollow ugc">#739</a> <a href="https://github.com/KronicDeth/intellij-elixir/issues/739#issuecomment-322032123" rel="noopener nofollow ugc">persisted</a> (as reported by <a href="https://github.com/erikreedstrom" rel="noopener nofollow ugc">@erikreedstrom</a>) when 6.0.0 was released; I retried reproducing on a clean VM and I got it.  I’m not sure why it worked for some people in prior releases since the <code>.beam</code> don’t exist that were being copied, but now the debugger uses the same system of copying <code>.ex</code> files and requiring them with <code>-r</code> instead of copying <code>.beam</code> and using <code>-pa</code> to add the <code>ebin</code> directory.  Fix was verified local under macOS and in Windows VM that reproduced <a href="https://github.com/KronicDeth/intellij-elixir/issues/739" rel="noopener nofollow ugc">#739</a>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h2><a name="p-45947-installation-6" class="anchor" href="#p-45947-installation-6" aria-label="Heading link" rel="nofollow"></a>Installation</h2>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v6.0.0/README.md#installation" rel="noopener nofollow ugc">Installation Instructions</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="45947" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-45947" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="45947"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="46528" data-post-id="46528">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="KronicDeth" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/KronicDeth/120/33300_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  KronicDeth
                      <span class="op-star" title="Thread Starter">
                        <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                      </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Version 6.1.1</p>
<h1><a name="p-46528-thanks-1" class="anchor" href="#p-46528-thanks-1" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting the need to install intellij-erlang to get icons to resolve
<ul>
<li>Dmitriy Molodtsov (<a href="https://github.com/sintro" rel="noopener nofollow ugc">@sintro</a>)</li>
</ul>
</li>
<li>For reporting formatter didn’t indent first line of a new <code>do ... end</code> block
<ul>
<li><a href="https://github.com/nulian" rel="noopener nofollow ugc">@nulian</a></li>
</ul>
</li>
<li>For reporting still unhelpful errors from beam decoder
<ul>
<li><a href="https://github.com/bdarla" rel="noopener nofollow ugc">@bdarla</a></li>
</ul>
</li>
</ul>
<h1><a name="p-46528-changelog-2" class="anchor" href="#p-46528-changelog-2" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-46528-v611-3" class="anchor" href="#p-46528-v611-3" aria-label="Heading link" rel="nofollow"></a>v6.1.1</h2>
<h3><a name="p-46528-bug-fixes-4" class="anchor" href="#p-46528-bug-fixes-4" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/795" rel="noopener nofollow ugc">#795</a> - When <a href="https://github.com/KronicDeth/intellij-elixir/issues/794" rel="noopener nofollow ugc">#754</a> made <code>intellij-erlang</code> a soft-dependency, it broke the debugger’s icons that referenced <code>ErlangIcons</code>, but it turns out all the icon constants were aliases to <code>AllIcons.Debugger</code> constants, so by using the <code>AllIcons.Debugger</code> icons directly, the dependency on <code>ErlangIcons</code> can be removed without the need to copy the image files into <code>intellij-elixir</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/796" rel="noopener nofollow ugc">#796</a> - When <code>do ... end</code> template is inserted, it did not have a previous child whose attributes to use, so it used the default, which left the cursor unindented.  To get the cursor indented by default, When the <code>ElementType</code> is <code>DO</code>, apply the <code>stabChildrenIndent</code> rules: indent normal and determine whether to indent relative to direct parent using code style setting. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/797" rel="noopener nofollow ugc">#797</a> - Include <code>VirtualFile</code> path in Beam read errors - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h1><a name="p-46528-installation-5" class="anchor" href="#p-46528-installation-5" aria-label="Heading link" rel="nofollow"></a>Installation</h1>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v6.1.1/README.md#installation" rel="noopener nofollow ugc">Installation Instructions</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="46528" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-46528" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="46528"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #30"></div>
  </section>
</div>
    <div class="postbit" id="46800" data-post-id="46800">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="michalmuskala" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/michalmuskala/120/20288_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  michalmuskala
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Seeing all the work on the plugin I decided to give it a go.</p>
<p>I managed to set it up and it works just fine. Great job, <a class="mention" href="/u/kronicdeth" rel="nofollow">@KronicDeth</a>. I don’t like how my code looks, though. I find the built-in dark theme a bit too colourful for my liking - I enjoy rather toned-down colours (I’m using <a href="https://emacsthemes.com/themes/zenburn-theme.html" rel="noopener nofollow ugc">zenburn theme</a> in emacs).<br>
I tried some other colour schemes from <a href="http://color-themes.com/" rel="noopener nofollow ugc">http://color-themes.com/</a> but most of them looked hideous (dark purple and almost illegible module names seem to be a common issue). Any suggestions on some good dark, not-too-colourful schemes?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="46800" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/intellij-elixir-elixir-plugin-for-jetbrains-intellij-platform/1697/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-46800" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="46800"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #31"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/1697/load_more?page=4">Load more posts</a>
</div></template></turbo-stream>