<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="83786" data-post-id="83786">
  <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-83786-version-750-1" class="anchor" href="#p-83786-version-750-1" aria-label="Heading link" rel="nofollow"></a>Version 7.5.0</h1>
<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">Donate</a></p>
<h1><a name="p-83786-thanks-2" class="anchor" href="#p-83786-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting that <code>true:</code> and <code>false:</code> did not work as keyword keys
<ul>
<li>Wes Oldenbeuving (<a href="https://github.com/Narnach" rel="noopener nofollow ugc">@Narnach</a>)</li>
</ul>
</li>
<li>For reporting that creating the editor panel for the BEAM Chunks Code editor at boot raised an “Access is allowed from event dispatch thread only.” error.
<ul>
<li><a href="https://github.com/mgom" rel="noopener nofollow ugc">@mgom</a></li>
<li>Anton Medvedev (<a href="https://github.com/antonmedv" rel="noopener nofollow ugc">@antonmedv</a>)</li>
<li>Bryan Clark (<a href="https://github.com/moenzuel" rel="noopener nofollow ugc">@moenzuel</a>)</li>
<li>David (<a href="https://github.com/davit555" rel="noopener nofollow ugc">@davit555</a>)</li>
<li>Stephan Kämper (<a href="https://github.com/s2k" rel="noopener nofollow ugc">@s2k</a>)</li>
<li>Andrei Dziahel (<a href="https://github.com/develop7" rel="noopener nofollow ugc">@develop7</a>)</li>
<li>Tomasz Wiśniewski (<a href="https://github.com/quaint" rel="noopener nofollow ugc">@quaint</a>)</li>
<li>Олег Дулецкий (<a href="https://github.com/dog-64" rel="noopener nofollow ugc">@dog-64</a>)</li>
<li>Carlos Brito Lage (<a href="https://github.com/cblage" rel="noopener nofollow ugc">@cblage</a>)</li>
<li>Markus Lervik (<a href="https://github.com/horros" rel="noopener nofollow ugc">@horros</a>)</li>
<li><a href="https://github.com/simapetr85" rel="noopener nofollow ugc">@simapetr85</a></li>
<li><a href="https://github.com/kevinhagel" rel="noopener nofollow ugc">@kevinhagel</a></li>
<li>Yarik (<a href="https://github.com/yarikc" rel="noopener nofollow ugc">@yarikc</a>)</li>
<li>Tomislav (<a href="https://github.com/trajakovic" rel="noopener nofollow ugc">@trajakovic</a>)</li>
</ul>
</li>
<li>For reporting that creating the editor panel for the BEAM Chunks Documentation editor at boot raised an “Access is allowed from event dispatch thread only.” error.
<ul>
<li>Ram Kumar (<a href="https://github.com/ramka001" rel="noopener nofollow ugc">@ramka001</a>)</li>
<li><a href="https://github.com/aby2503" rel="noopener nofollow ugc">@aby2503</a></li>
<li>Zoltán Marić (<a href="https://github.com/zoltanmaric" rel="noopener nofollow ugc">@zoltanmaric</a>)</li>
<li>David (<a href="https://github.com/davit555" rel="noopener nofollow ugc">@davit555</a>)</li>
</ul>
</li>
<li>For requesting that <code>#{</code> auto-close with <code>}</code>
<ul>
<li>Matt Briggs (<a href="https://github.com/mbriggs" rel="noopener nofollow ugc">@mbriggs</a>)</li>
</ul>
</li>
<li>For reporting a potential race-condition that led to pre-maturely decompiling an incomplete <code>.beam</code> file when it is being rebuilt.
<ul>
<li>Callum Dempsey Leach (<a href="https://github.com/mmacheerpuppy" rel="noopener nofollow ugc">@mmacheerpuppy</a>)</li>
<li>Kevin Kaland (<a href="https://github.com/wizonesolutions" rel="noopener nofollow ugc">@wizonesolutions</a>)</li>
<li>Iuri L. Machado (<a href="https://github.com/imetallica" rel="noopener nofollow ugc">@imetallica</a>)</li>
<li>Fabian Sosa Escalada (<a href="https://github.com/zurcacielos" rel="noopener nofollow ugc">@zurcacielos</a>)</li>
</ul>
</li>
<li>For reporting that the bad <code>.beam</code> files that are test cases in Erlang’s <code>:kernel</code> test code were correctly caught by the bug reporter, but they should be ignored since they’re a known failure.
<ul>
<li>S. M. AMRAN (<a href="https://github.com/netcse" rel="noopener nofollow ugc">@netcse</a>)</li>
</ul>
</li>
<li>For reporting the null argument being passed for <code>startingReference</code> in <code>ElixirPsiImplUtil.aliasToModular</code>.
<ul>
<li>Szymon Jeż (<a href="https://github.com/szymon-jez" rel="noopener nofollow ugc">@szymon-jez</a>)</li>
<li>Josh Taylor (<a href="https://github.com/joshuataylor" rel="noopener nofollow ugc">@joshuataylor</a>)</li>
<li>Markus Lervik (<a href="https://github.com/horros" rel="noopener nofollow ugc">@horros</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-83786-changelog-3" class="anchor" href="#p-83786-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-83786-v750-4" class="anchor" href="#p-83786-v750-4" aria-label="Heading link" rel="nofollow"></a>v7.5.0</h2>
<h3><a name="p-83786-enhancements-5" class="anchor" href="#p-83786-enhancements-5" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1055" rel="noopener nofollow ugc">#1055</a> - Refactor <code>ElixirPsiImplUtil</code> into separate files tied to specific classes or interfaces to shrink its size. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1073" rel="noopener nofollow ugc">#1073</a> - Complete <code>#{</code> with <code>}</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1109" rel="noopener nofollow ugc">#1109</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Read Write Accessor Detector
<ul>
<li>Variable/Parameter declarations/rebindings are highlighted as writes while other usages are highlighted as reads.</li>
</ul>
</li>
<li>Improved Find &amp; Show Usages
<ul>
<li>Added Find &amp; Show Usages for Functions at declaration and usage site
<ul>
<li>Multi-clause functions use all clauses as targets and find usages of all clauses.</li>
</ul>
</li>
<li>Improved Find &amp; Show Usages for Modules/Aliases</li>
</ul>
</li>
<li>Improved Element Descriptions
<ul>
<li>It is easier to distinguish <code>alias</code>es and the <code>defmodule</code> that is being aliased because element description now include <code>alias</code> or <code>defmodule</code> before the Alias name based on how the Alias is defined in the scope.</li>
<li>Call definitions use the same presentation for Structure View and Find Usages, so that Compile/Runtime time icons, and visibility are the same in both.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1111" rel="noopener nofollow ugc">#1111</a> - Regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/1091" rel="noopener nofollow ugc">#1091</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1120" rel="noopener nofollow ugc">#1120</a> - Add regression tests for <a rel="nofollow">#1116</a> that test that parameter and variables can be renamed. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1124" rel="noopener nofollow ugc">#1124</a> - Update IntelliJ versions in build matrix to include <code>2018.1</code> and latest patch version of other versions. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1126" rel="noopener nofollow ugc">#1126</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Add Elixir 1.6.X to build matrix</li>
<li>Update grammar and quoter to match native 1.6 behavior when SDK is &gt;= 1.6.</li>
<li>New default SDK level is 1.7 to handle builds from <code>master</code>.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1127" rel="noopener nofollow ugc">#1127</a> - Regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/1105" rel="noopener nofollow ugc">#1105</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h3><a name="p-83786-bug-fixes-6" class="anchor" href="#p-83786-bug-fixes-6" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1056" rel="noopener nofollow ugc">#1056</a> - Certain <code>.beam</code> files in the OTP source are purposely invalid, so ignore them when trying to parse and don’t log the expected error. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1060" rel="noopener nofollow ugc">#1060</a> - Log available bytes and total size when header is not <code>FOR1</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1071" rel="noopener nofollow ugc">#1071</a> - <code>erl_abstract_code</code> format <code>Dbgi</code> chunks can now be navigated similar to how <code>elixir_erl</code> format Dbgi chunks can be navigated.  Instead of converting the <a href="http://erlang.org/doc/apps/erts/absform.html" rel="nofollow">Erlang Abstract Code</a> back to Erlang, which would not be highlighted if <a href="https://github.com/ignatov/intellij-erlang" rel="noopener nofollow ugc">intellij-erlang</a> and requires the user to know Erlang, the Erlang Abstract Code is translated back to Elixir source, so you can use the Dbgi chunk view to translate Erlang to Elixir. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1111" rel="noopener nofollow ugc">#1111</a> - Allow zero or more new lines after the struct name before the opening curly brace (<code>{</code>). - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1112" rel="noopener nofollow ugc">#1112</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>
<p>In order to prevent <code>Access is allowed from event dispatch thread only</code> errors when creating read-only code editor in subtabs of the BEAM Chunks editor, only create those editors when their parent tab is selected.</p>
<p>Affected tabs:</p>
<ul>
<li>Code (Elixir &amp; Erlang)</li>
<li>ExDc</li>
<li>Dbgi (Elixir &amp; Erlang)</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1114" rel="noopener nofollow ugc">#1114</a> - Check for suffix instead of full match to detect predefined macros when annotating.  Location strings have become more complex, such as including the file path for root level modules, so the old exact matching on the module name no longer works. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1120" rel="noopener nofollow ugc">#1120</a> - Restore parameter and variable rename.  It broke because the changes to make Find Usages work and have Go To Declaration default to Find Usage when there is only one target disabled the default selected element code that the <code>VariableInplaceRenameHandler</code> used. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1121" rel="noopener nofollow ugc">#1121</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Allow module attribute declaration to resolve to itself, so that unused module attributes don’t say they can’t find the declaration.</li>
<li>Restore rename module attributes.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1127" rel="noopener nofollow ugc">#1127</a> - Allow <code>true</code> and <code>false</code> to be keyword keys. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h1><a name="p-83786-readme-updates-7" class="anchor" href="#p-83786-readme-updates-7" aria-label="Heading link" rel="nofollow"></a>README Updates</h1>
<h2><a name="p-83786-features-8" class="anchor" href="#p-83786-features-8" aria-label="Heading link" rel="nofollow"></a>Features</h2>
<h3><a name="p-83786-beam-files-9" class="anchor" href="#p-83786-beam-files-9" aria-label="Heading link" rel="nofollow"></a><code>.beam</code> Files</h3>
<h4><a name="p-83786-beam-chunks-10" class="anchor" href="#p-83786-beam-chunks-10" aria-label="Heading link" rel="nofollow"></a>BEAM Chunks</h4>
<h5><a name="p-83786-dbgi-11" class="anchor" href="#p-83786-dbgi-11" aria-label="Heading link" rel="nofollow"></a><code>Dbgi</code></h5>
<h6><a name="p-83786-tab-12" class="anchor" href="#p-83786-tab-12" aria-label="Heading link" rel="nofollow"></a>Tab</h6>
<p>The <code>Dbgi</code> tab appearance varies based on whether it was created with Erlang or Elixir, reflecting the fact that the Dbgi format is dependent on the backend that wrote it.</p>
<p>####### Elixir (<code>:elixir_erl</code> backend)</p>
<p>The <code>Dbgi</code> tab show the single value map entries: <code>:file</code>, <code>:line</code>, and <code>:module</code>.</p>
<p><img src="https://forum.elixirforum.com/uploads/default/original/2X/d/d8c676acaa505fe2a5e12bb9cd4fd8c923611f55.png" alt="Singletons" width="536" height="72"></p>
<p>For the multi-value keys: <code>:attributes</code>, <code>:compile_opts</code>, and <code>:definitions</code>, there are individual tabs.</p>
<p><img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a74e30c8d971292c0c11a5e287600a62bac20c1d.png" alt="Multivalue Tabs" width="296" height="30"></p>
<p>######## Attributes</p>
<p>The Attributes tab has the same format as the <code>Attr</code>s chunk.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/2/2164aa649819858dc1d766fb86ddebc5eea0b416.png" data-download-href="https://forum.elixirforum.com/uploads/default/2164aa649819858dc1d766fb86ddebc5eea0b416" title="Dbgi Attributes Table" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/2/2164aa649819858dc1d766fb86ddebc5eea0b416.png" alt="Dbgi Attributes Table" width="295" height="122"><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">Dbgi Attributes Table</span><span class="informations">295×122 5.49 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>######## Compile Options</p>
<p>The Compile Options tab is usually empty, much like the <code>CInf</code> <code>options</code> key for Erlang.</p>
<p><img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6daf95b4d84f93c22faa9384a822869e2f7073ab.png" alt="Table" width="294" height="73"></p>
<p>######## Definitions</p>
<p>The Definitions tab is split between a tree of Module, Function/Arity and clauses.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/a/a86cdb9ec4daa1d8ff2763b296e4d0761181811f.png" data-download-href="https://forum.elixirforum.com/uploads/default/a86cdb9ec4daa1d8ff2763b296e4d0761181811f" title="Tree" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a86cdb9ec4daa1d8ff2763b296e4d0761181811f.png" alt="Tree" width="303" height="428"><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">Tree</span><span class="informations">303×428 15.8 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>Clicking on a clause will show only that clause, but clicking on a higher level in the tree will show all clauses in the function or the entire Module.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/0/0d3911aafbce4eebbdc9df99d667a68816b79eb2.png" data-download-href="https://forum.elixirforum.com/uploads/default/0d3911aafbce4eebbdc9df99d667a68816b79eb2" title="Clause" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/0/0d3911aafbce4eebbdc9df99d667a68816b79eb2_2_690x72.png" alt="Clause" width="690" height="72" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/0/0d3911aafbce4eebbdc9df99d667a68816b79eb2_2_690x72.png, https://forum.elixirforum.com/uploads/default/optimized/2X/0/0d3911aafbce4eebbdc9df99d667a68816b79eb2_2_1035x108.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/0/0d3911aafbce4eebbdc9df99d667a68816b79eb2.png 2x" data-dominant-color="3A3C41"><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">Clause</span><span class="informations">1322×138 33.5 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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/a/ad81cdfdc2fe475294ad879d48042ec4607c8ab4.png" data-download-href="https://forum.elixirforum.com/uploads/default/ad81cdfdc2fe475294ad879d48042ec4607c8ab4" title="Function" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/a/ad81cdfdc2fe475294ad879d48042ec4607c8ab4_2_690x127.png" alt="Function" width="690" height="127" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/a/ad81cdfdc2fe475294ad879d48042ec4607c8ab4_2_690x127.png, https://forum.elixirforum.com/uploads/default/optimized/2X/a/ad81cdfdc2fe475294ad879d48042ec4607c8ab4_2_1035x190.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/a/ad81cdfdc2fe475294ad879d48042ec4607c8ab4.png 2x" data-dominant-color="39393C"><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">Function</span><span class="informations">1360×251 60.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><br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/d/dd058fcf9e1f7bccc4193187b8180ab77deef94b.jpg" data-download-href="https://forum.elixirforum.com/uploads/default/dd058fcf9e1f7bccc4193187b8180ab77deef94b" title="Module" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/d/dd058fcf9e1f7bccc4193187b8180ab77deef94b_2_690x344.jpg" alt="Module" width="690" height="344" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/d/dd058fcf9e1f7bccc4193187b8180ab77deef94b_2_690x344.jpg, https://forum.elixirforum.com/uploads/default/optimized/2X/d/dd058fcf9e1f7bccc4193187b8180ab77deef94b_2_1035x516.jpg 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/d/dd058fcf9e1f7bccc4193187b8180ab77deef94b.jpg 2x" data-dominant-color="363638"><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">Module</span><span class="informations">1373×685 102 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>The AST stored in the <code>definitions</code> tab and the process of converting it back to code is not format preserves, so it will not look precisely like the source code as the AST has undergone some macro expansion before its put in the <code>Dbgi</code> chunk.  <em>As common idioms are understood, reversals will be add to the renderer.</em></p>
<p>####### Erlang (<code>:erlang_abstract_code</code> backend)</p>
<p>The <code>Dbgi</code> tab has Abstract Code and Compile Options tabs.</p>
<p><img src="https://forum.elixirforum.com/uploads/default/original/2X/c/c4fbd6aa81f37f30d07a9f78ff5baedfaee1d6b0.png" alt="Dbgi Tabs" width="225" height="26"></p>
<p>######## Abstract Code</p>
<p>The Abstract Code tab is split between a tree of Attributes, Functions, Function/Arity, and clauses.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/e/eedacbfe4c101e3515aefe507a8508f9ddb6096a.png" data-download-href="https://forum.elixirforum.com/uploads/default/eedacbfe4c101e3515aefe507a8508f9ddb6096a" title="Tree" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/e/eedacbfe4c101e3515aefe507a8508f9ddb6096a.png" alt="Tree" width="306" height="182"><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">Tree</span><span class="informations">306×182 9.59 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>Clicking on a clause will show only that clause, but clicking on a higher level in the tree will show all clauses in the function or the entire Module.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/e/e5bdc52e1f3795d21404fe83534c27bf18e7aa84.png" data-download-href="https://forum.elixirforum.com/uploads/default/e5bdc52e1f3795d21404fe83534c27bf18e7aa84" title="Clause" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/e/e5bdc52e1f3795d21404fe83534c27bf18e7aa84.png" alt="Clause" width="634" height="143"><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">Clause</span><span class="informations">634×143 20.8 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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/7/790b63b5f9a118657c81a672f0ad3c8fd8fda7c1.png" data-download-href="https://forum.elixirforum.com/uploads/default/790b63b5f9a118657c81a672f0ad3c8fd8fda7c1" title="Function" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/7/790b63b5f9a118657c81a672f0ad3c8fd8fda7c1_2_690x304.png" alt="Function" width="690" height="304" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/7/790b63b5f9a118657c81a672f0ad3c8fd8fda7c1_2_690x304.png, https://forum.elixirforum.com/uploads/default/original/2X/7/790b63b5f9a118657c81a672f0ad3c8fd8fda7c1.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/7/790b63b5f9a118657c81a672f0ad3c8fd8fda7c1.png 2x" data-dominant-color="393B3F"><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">Function</span><span class="informations">758×334 50 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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/b/bb5b5fa2568bc7cfe3655673fdf31f426500eb25.png" data-download-href="https://forum.elixirforum.com/uploads/default/bb5b5fa2568bc7cfe3655673fdf31f426500eb25" title="Module" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/b/bb5b5fa2568bc7cfe3655673fdf31f426500eb25_2_690x446.png" alt="Module" width="690" height="446" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/b/bb5b5fa2568bc7cfe3655673fdf31f426500eb25_2_690x446.png, https://forum.elixirforum.com/uploads/default/original/2X/b/bb5b5fa2568bc7cfe3655673fdf31f426500eb25.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/b/bb5b5fa2568bc7cfe3655673fdf31f426500eb25.png 2x" data-dominant-color="363739"><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">Module</span><span class="informations">1033×668 130 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>The abstract code stored in the <code>:erlang_abstract_code</code> backend format is the <a href="http://erlang.org/doc/apps/erts/absform.html#id95337" rel="nofollow">Erlang Abstract Format</a>.  Instead of converting the Erlang Abstract Format back to Erlang, which would require <a href="https://github.com/ignatov/intellij-erlang" rel="noopener nofollow ugc">IntelliJ Erlang</a> to highlight and annotate and for you to be used to reading Erlang, the Erlang Abstract Format is translated back to Elixir. <strong>Using the BEAM Chunk Dbgi viewer can be a way to convert compiled Erlang code to Elixir source automatically.</strong></p>
<h3><a name="p-83786-find-usages-and-show-usages-13" class="anchor" href="#p-83786-find-usages-and-show-usages-13" aria-label="Heading link" rel="nofollow"></a>Find Usages and Show Usages</h3>
<p>Find Usages is a feature of JetBrains IDEs.  It is the dual of Go To Declaration.  While Go To Declaration jumps from a usage to the declaration, Find Usages finds all usages that could jump to a declaration.  When used on a usage, Find Usage first finds the declaration(s) and then finds usages of those declaration(s).</p>
<p>Find Usages will open all the found usages in the Find Tool Window (unless you have it configured to not open and jump direct if only one usage is found).  If you want to jump to usages quickly, Show Usages, which opens a lookup dialog at the cursor and allows you to select a usage to jump to in the lookup dialog with the arrow keys may be more useful.</p>
<h4><a name="p-83786-function-14" class="anchor" href="#p-83786-function-14" aria-label="Heading link" rel="nofollow"></a>Function</h4>
<ol>
<li>Place the cursor over the name of a function, such as <code>hd</code> in the definition <code>def hd([h | t]]) do</code> or <code>hd</code> in a usage <code>hd(list)</code>.</li>
<li>Active the Find Usages action with one of the following:
<ul>
<li><code>Alt+F7</code></li>
<li>Select Edit &gt; Find &gt; Find Usages from the menu.</li>
</ul>
</li>
<li>A Find Usages dialog will appear in the Find Tool Window.</li>
</ol>
<p>If a function has multiple clauses, all clauses for the function will be resolved and used as targets.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/6/67a390b601cb362aef81398124717505e621237b.png" data-download-href="https://forum.elixirforum.com/uploads/default/67a390b601cb362aef81398124717505e621237b" title="Multiple Clauses.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/6/67a390b601cb362aef81398124717505e621237b.png" alt="Multiple Clauses.png" width="546" height="229"><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">Multiple Clauses.png</span><span class="informations">546×229 21.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><p></p>
<p>You can be sure that all clauses were correctly identified as targets because of the multiple entries in the top “Functions” target grouping.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/8/8d9e75be3b138a032969304cb781763fea5afa55.png" data-download-href="https://forum.elixirforum.com/uploads/default/8d9e75be3b138a032969304cb781763fea5afa55" title="Multiple Functions.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/8/8d9e75be3b138a032969304cb781763fea5afa55.png" alt="Multiple Functions.png" width="426" height="181"><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">Multiple Functions.png</span><span class="informations">426×181 15.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><p></p>
<p>If instead of bringing up the Find Tool Window, you’d like a lookup dialog above the cursor, you can use Show Usages.</p>
<ol>
<li>Place the cursor over the name of a function, such as <code>hd</code> in <code>def hd([h | t]]) do</code></li>
<li>Active the Show Usages action with one of the following:
<ul>
<li><code>Alt+Cmd+F7</code></li>
<li>Select Edit &gt; Find &gt; Show Usages from the menu.</li>
</ul>
</li>
<li>A Usages lookup will appear above the cursor.</li>
<li>Select an element from the lookup to jump to that usage</li>
</ol>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v7.5.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="83786" 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/53">Post #52</a>
	                </div>
	            </div>
              <div id="likers-container-83786" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="83786"
                     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 #52"></div>
  </section>
</div>
    <div class="postbit" id="92804" data-post-id="92804">
  <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-92804-version-800-1" class="anchor" href="#p-92804-version-800-1" aria-label="Heading link" rel="nofollow"></a>Version 8.0.0</h1>
<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">Donate</a></p>
<h1><a name="p-92804-thanks-2" class="anchor" href="#p-92804-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting NPE in the improved version of the <code>getPresentation</code>
<ul>
<li>Tomoki Odaka (<a href="https://github.com/odk211" rel="noopener nofollow ugc">@odk211</a>)</li>
<li>Everett Griffiths (<a href="https://github.com/fireproofsocks" rel="noopener nofollow ugc">@fireproofsocks</a>)</li>
<li>Daniel Ashton (<a href="https://github.com/jdashton" rel="noopener nofollow ugc">@jdashton</a>)</li>
<li>Rostyslav Melnychuk (<a href="https://github.com/iKethavel" rel="noopener nofollow ugc">@iKethavel</a>)</li>
<li>Simon Struck (<a href="https://github.com/AnyTimeTraveler" rel="noopener nofollow ugc">@AnyTimeTraveler</a>)</li>
<li>Олег Дулецкий (<a href="https://github.com/dog-64" rel="noopener nofollow ugc">@dog-64</a>)</li>
<li>lee eggebroten (<a href="https://github.com/leggebroten" rel="noopener nofollow ugc">@leggebroten</a>)</li>
<li><a href="https://github.com/j-m-hoffmann" rel="noopener nofollow ugc">@j-m-hoffmann</a></li>
<li>Ram Kumar (<a href="https://github.com/ramka001" rel="noopener nofollow ugc">@ramka001</a>)</li>
<li>Eric des Courtis (<a href="https://github.com/edescourtis" rel="noopener nofollow ugc">@edescourtis</a>)</li>
<li>Adam Phillips (<a href="https://github.com/aadam21" rel="noopener nofollow ugc">@aadam21</a>)</li>
<li>Hammad Ur Rahman (<a href="https://github.com/hammadurrahman" rel="noopener nofollow ugc">@hammadurrahman</a>)</li>
</ul>
</li>
<li>For reporting that the safe cast for quote bound variables wasn’t so safe
<ul>
<li>Gary Cox (<a href="https://github.com/GaryLCoxJr" rel="noopener nofollow ugc">@GaryLCoxJr</a>)</li>
<li>Eugene (<a href="https://github.com/JohnBat26" rel="noopener nofollow ugc">@JohnBat26</a>)</li>
<li>Олег Дулецкий (<a href="https://github.com/dog-64" rel="noopener nofollow ugc">@dog-64</a>)</li>
<li>Venelin Petkov (<a href="https://github.com/vmptk" rel="noopener nofollow ugc">@vmptk</a>)</li>
<li>Tomoki Odaka (<a href="https://github.com/odk211" rel="noopener nofollow ugc">@odk211</a>)</li>
<li>Sylvain Corsini (<a href="https://github.com/scorsi" rel="noopener nofollow ugc">@scorsi</a>)</li>
<li>Zoltán Marić (<a href="https://github.com/zoltanmaric" rel="noopener nofollow ugc">@zoltanmaric</a>)</li>
<li>Carlos Brito Lage (<a href="https://github.com/cblage" rel="noopener nofollow ugc">@cblage</a>)</li>
<li><a href="https://github.com/heldermartins-tdesk" rel="noopener nofollow ugc">@heldermartins-tdesk</a></li>
<li>Jeff Morgan (<a href="https://github.com/cheezy" rel="noopener nofollow ugc">@cheezy</a>)</li>
<li>Austin Morris (<a href="https://github.com/austinsmorris" rel="noopener nofollow ugc">@austinsmorris</a>)</li>
<li>Alexandre Audebeau (<a href="https://github.com/azuken" rel="noopener nofollow ugc">@azuken</a>)</li>
<li>Lemon Lyu (<a href="https://github.com/lv12312" rel="noopener nofollow ugc">@lv12312</a>)</li>
<li>Klevison Matias (<a href="https://github.com/klevison" rel="noopener nofollow ugc">@klevison</a>)</li>
</ul>
</li>
<li>For reporting the disassembler did not support all OTP 21 opcodes
<ul>
<li>lijianfeng (<a href="https://github.com/jxljf" rel="noopener nofollow ugc">@jxljf</a>)</li>
</ul>
</li>
<li>For requesting spellchecking
<ul>
<li><a href="https://github.com/eagle-te" rel="noopener nofollow ugc">@eagle-te</a></li>
</ul>
</li>
<li>For reporting that Phoenix’s use of <code>quote</code> inside a literal <code>[head | tail]</code> list code not be parsed to find the parent modular.
<ul>
<li>Neftaly Luis (<a href="https://github.com/neftalyluis" rel="noopener nofollow ugc">@neftalyluis</a>)</li>
</ul>
</li>
<li>For reporting that the missing Erlang SDK message wasn’t clear clicking OK would take you through the setup and cancel would stop Elixir+Erlang SDK confirmation.
<ul>
<li><a href="https://github.com/bbtdev" rel="noopener nofollow ugc">@bbtdev</a></li>
</ul>
</li>
<li>For reporting that variables use scope could not be calculated in EEx tags.
<ul>
<li><a href="https://github.com/simapetr85" rel="noopener nofollow ugc">@simapetr85</a></li>
</ul>
</li>
<li>For reporting that <code>@</code> was allowed in atoms, but not atom keyword keys.
<ul>
<li>Eric Hagman (<a href="https://github.com/emhagman" rel="noopener nofollow ugc">@emhagman</a>)</li>
</ul>
</li>
<li>For reporting that <code>eachEbinPath</code> did not restrict itself to directories and blow up on files.
<ul>
<li>Tomoki Odaka (<a href="https://github.com/odk211" rel="noopener nofollow ugc">@odk211</a>)</li>
</ul>
</li>
<li>For reporting that <code>Module.aliasedName</code> still contained <code>assert</code> even though it uses <code>Normalized</code> to protect from <code>PsiError</code>s.
<ul>
<li>Rostyslav Melnychuk (<a href="https://github.com/iKethavel" rel="noopener nofollow ugc">@iKethavel</a>)</li>
</ul>
</li>
<li>For reporting that <code>Unaliased.down</code> did not have a useful error message
<ul>
<li>Eric des Courtis (<a href="https://github.com/edescourtis" rel="noopener nofollow ugc">@edescourtis</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-92804-changelog-3" class="anchor" href="#p-92804-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-92804-v800-4" class="anchor" href="#p-92804-v800-4" aria-label="Heading link" rel="nofollow"></a>v8.0.0</h2>
<h3><a name="p-92804-enhancements-5" class="anchor" href="#p-92804-enhancements-5" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1175" rel="noopener nofollow ugc">#1175</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>New and improved Run/Debug Configurations
<ul>
<li>Distillery Release CLIs for running <code>console</code>, <code>foreground</code>, etc<br>
Options for configuring each part of the command line
<ul>
<li>Path to Release CLI</li>
<li>Release CLI arguments (like a command <code>console</code>)</li>
<li>Settings that are normally hidden in environment variables
<ul>
<li><code>erl</code> arguments (<code>ERL_OPTS</code>)</li>
<li><code>elixir -extra</code> arguments (<code>EXTRA_OPTS</code>)</li>
<li>Code Loading Mode (<code>CODE_LOADING_MODE</code>)</li>
<li>Log Directory (<code>RUNNER_LOG_DIR</code>)</li>
<li>Replace OS Vars (<code>REPLACE_OS_VARS</code>)</li>
<li><code>sys.config</code> file (<code>SYS_CONFIG_PATH</code>)</li>
<li>Release Config Directory (<code>RELEASE_CONFIG_DIR</code>)</li>
<li>Pipe directory (<code>PIPE_DIR</code>)</li>
</ul>
</li>
<li>Use  Pseudo-Terminal (PTY) to allow overriding console type when it can’t be inferred from the Release CLI arguments, such as using PTY for <code>console</code> because it uses an <code>iex</code>-like shell.</li>
<li>Working Directory</li>
<li>Environment Variables</li>
</ul>
</li>
<li><code>iex</code> console with proper PTY support (colors, tab completion, history)<br>
Options for configuring each part of the command line
<ul>
<li><code>iex</code> arguments</li>
<li><code>erl</code> arguments</li>
<li>Working Directory</li>
<li>Environment Variables</li>
</ul>
</li>
<li><code>elixir</code> with colors<br>
Options for configuring each part of the command line
<ul>
<li><code>elixir</code> arguments</li>
<li><code>erl</code> arguments</li>
<li>Working Directory</li>
<li>Environment Variables</li>
</ul>
</li>
<li><code>mix</code> tasks getting expanded options to match the new configurations
<ul>
<li><code>mix</code> arguments, which used to be called “Program Arguments” (I figured out how to customize that name. <img src="https://forum.elixirforum.com/images/emoji/apple/wink.png?v=15" title=":wink:" class="emoji" alt=":wink:" loading="lazy" width="20" height="20">)</li>
<li><code>elixir</code> arguments</li>
<li><code>erl</code> arguments</li>
<li>Working Directory</li>
<li>Environment Variables</li>
</ul>
</li>
<li><code>iex -S mix</code><br>
Options for configuring each part of the command line
<ul>
<li><code>mix</code> arguments</li>
<li><code>iex</code> arguments</li>
<li><code>erl</code> arguments</li>
<li>Working Directory</li>
<li>Environment Variables</li>
</ul>
</li>
<li><code>mix test</code>
<ul>
<li><code>mix test</code> arguments, which used to be called “Program Arguments”</li>
<li><code>elixir</code> arguments</li>
<li><code>erl</code> arguments</li>
<li>Working Directory</li>
<li>Environment Variables</li>
</ul>
</li>
</ul>
</li>
<li>Debugger enhancements
<ul>
<li>All the above configurations can be debugged using the debugger.  It is no longer restricted to only working with <code>mix</code>-based configurations.</li>
<li>Filter more common dependency modules from being interpreted by default.
<ul>
<li><code>credo</code></li>
<li><code>inch_ex</code></li>
<li><code>earmark</code></li>
<li><code>ex_doc</code></li>
</ul>
</li>
<li>More ways to filter interpreted modules
<ul>
<li>Run Configurations now have an Interpreted Modules tab, next to Configuration, which by default imports the Application-wide settings, but allows
<ul>
<li>Disabling inherited filters</li>
<li>Adding configuration-specific filters</li>
<li>Remove configuration-specific filters</li>
</ul>
</li>
<li>Allow interpreted modules to be uninterpreted when the debugger is running, using the “Interpreted Modules” tab.</li>
</ul>
</li>
<li>Improved Variables pane by showing the Elixir name of variables instead of Erlang names</li>
<li>Evaluate can evaluate an Elixir expression in any stack frame.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1192" rel="noopener nofollow ugc">#1192</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>
<p>Add all OTP 21 opcodes to disassembler. Previous opcode set was<br>
frozen prior to OTP 21 release and missed some later additions.</p>
<div class="md-table">
<table>
<thead>
<tr>
<th style="text-align:left">number</th>
<th style="text-align:left">name</th>
<th style="text-align:left">Added</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left"><code>160</code></td>
<td style="text-align:left"><code>build_stacktrace</code></td>
<td style="text-align:left">Before OTP 21 release</td>
</tr>
<tr>
<td style="text-align:left"><code>161</code></td>
<td style="text-align:left"><code>raw_raise</code></td>
<td style="text-align:left">Now</td>
</tr>
<tr>
<td style="text-align:left"><code>162</code></td>
<td style="text-align:left"><code>get_hd</code></td>
<td style="text-align:left">Now</td>
</tr>
<tr>
<td style="text-align:left"><code>163</code></td>
<td style="text-align:left"><code>get_tl</code></td>
<td style="text-align:left">Now</td>
</tr>
</tbody>
</table>
</div></li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1196" rel="noopener nofollow ugc">#1196</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Spell checking for identifiers, aliases, comments, and literals (charlists, strings, and sigils).
<ul>
<li>Dictionaries for common dependencies
<ul>
<li>Elixir</li>
<li>Ecto</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1203" rel="noopener nofollow ugc">#1203</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Elixir 1.7 debugger Variables and Evaluate compatibility
<ul>
<li>Elixir 1.7 names Erlang variables like <code>_&lt;elixirVariableName&gt;@&lt;counter&gt;</code> while Elixir 1.6 used <code>V&lt;elixirVariableName&gt;@&lt;counter&gt;</code></li>
<li>Elixir 1.7 changed <code>elixir_erl</code> record and <code>%Macro.Env{}</code>, which changed how <code>:elixir.quoted_to_erl</code> needed to be called.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1208" rel="noopener nofollow ugc">#1208</a> - Update <code>2018.2</code> to <code>2018.2.1</code> in build matrix. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1210" rel="noopener nofollow ugc">#1210</a> - Regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/1141" rel="noopener nofollow ugc">#1141</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1212" rel="noopener nofollow ugc">#1212</a> - Improve Cannot Create SDK error message (additions in <strong>bold</strong>): “You need to configure an Erlang SDK for Elixir SDK. <strong>Click OK to be take through the Erlang SDK configuration.  Click Cancel to stop configuring this SDK AND the Erlang SDK.</strong>” - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1223" rel="noopener nofollow ugc">#1223</a> - Convert mix and mix test run configurations to new format. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h3><a name="p-92804-bug-fixes-6" class="anchor" href="#p-92804-bug-fixes-6" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1188" rel="noopener nofollow ugc">#1188</a> - Show <code>...</code> for module name when <code>Dbgi</code> has no module name as happens for instrumented modules from <code>IEx.break/4</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1189" rel="noopener nofollow ugc">#1189</a> - Don’t assume <code>callDefinitionClause</code> is non-<code>null</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1190" rel="noopener nofollow ugc">#1190</a> - Don’t assume parent of list access expression is <code>QuotableKeywordPair</code>- <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1191" rel="noopener nofollow ugc">#1191</a> - Don’t assume parent of keywords is a list. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1208" rel="noopener nofollow ugc">#1208</a> - <code>TerminalExecutionConsole</code> itself echos input in <code>2018.2</code> and <code>2018.2.1</code>, which was introduced in <a href="https://github.com/JetBrains/intellij-community/commit/fd7bbd0cb7f3c2a5add8872e0e6c5172be5f074a#diff-5acc2eb2e78fe52d7458d4a48b0eac9f" class="inline-onebox" rel="noopener nofollow ugc">IDEA-191852 Show typed user input in terminal console · JetBrains/intellij-community@fd7bbd0 · GitHub</a>, but it was reverted in JetBrains/intellij-community@5f4465b, so this uses that version to maintain compatibility across supported versions. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1210" rel="noopener nofollow ugc">#1210</a> - In <code>Phoenix.Router.Helpers</code>, a <code>quote</code> block appears as the head of <code>[head | tail]</code> list, so add support for search for enclosing macro call above <code>|</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1213" rel="noopener nofollow ugc">#1213</a> - Treat EEx tag the same as <code>StabBody</code> for use scope. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1214" rel="noopener nofollow ugc">#1214</a> - Use <code>ATOM</code> for keyword keys instead of <code>IDENTIFIER_TOKEN</code> as <code>ATOM</code> allows for <code>@</code>, which is needed for correctness. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1215" rel="noopener nofollow ugc">#1215</a> - In <code>eachEbinPath</code>, the ebin directories were found by iterating <code>&lt;SDK_HOME_PATH&gt;/lib</code> and then iterating grandchild of that, so that all paths matching <code>&lt;SDK_HOME_PATH&gt;/lib/&lt;APP&gt;/ebin</code> would be added, but for some installs from source, like SDK, there are non-OTP-app files in <code>&lt;SDK_HOME_PATH&gt;/lib</code>, so filter <code>&lt;SDK_HOME_PATH&gt;/lib/&lt;APP&gt;</code> to only directories. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1216" rel="noopener nofollow ugc">#1216</a> - <code>org.elixir.lang.psi.scope.Module.aliasedName(QualifiedAlias)</code> was already converted to use <code>org.elixir_lang.psi.operation.Normalized</code> and <code>org.elixir_lang.psi.infix.Normalized</code>, which makes it work with errors in the PSI tree, so there’s no need protect with an assert and that assert would be wrong in times of errors handled by <code>Normalized</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1217" rel="noopener nofollow ugc">#1217</a> - <code>org.elixir_lang.reference.module.UnaliasedName.down(PsiElement)</code> only expects <code>ElixirAccessExpression</code> or <code>QualifiableAlias</code>, but for unexpected classes of elements, it was a simple Kotlin <code>TODO()</code>, which didn’t log anything useful for enhancements.  Replace the <code>TODO()</code> with an <code>org.elixir_lang.errorreport.Logger.error</code>, so that the element’s class and content can be reported when this happens again. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1168" rel="noopener nofollow ugc">#1164</a> - Use <code>/</code> in paths passed to Erlang, even on Windows - <a href="https://github.com/notriddle" rel="noopener nofollow ugc">@notriddle</a></li>
</ul>
<h3><a name="p-92804-incompatible-changes-7" class="anchor" href="#p-92804-incompatible-changes-7" aria-label="Heading link" rel="nofollow"></a>Incompatible Changes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1175" rel="noopener nofollow ugc">#1175</a> - Drop support for IntelliJ IDEA before 2017.3 as they lack the <code>TerminalExecutionConsole</code> used to run <code>iex</code> in a PTY. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v8.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="92804" 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/54">Post #53</a>
	                </div>
	            </div>
              <div id="likers-container-92804" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="92804"
                     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 #53"></div>
  </section>
</div>
    <div class="postbit" id="94683" data-post-id="94683">
  <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-94683-version-810-1" class="anchor" href="#p-94683-version-810-1" aria-label="Heading link" rel="nofollow"></a>Version 8.1.0</h1>
<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">Donate</a></p>
<h1><a name="p-94683-thanks-2" class="anchor" href="#p-94683-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For consulting on the design of the new flat icons to match IntelliJ IDEA 2018.2’s design guidelines and showing me how to use Figma.
<ul>
<li>Narek Khachatryan (<a href="https://github.com/nk8" rel="noopener nofollow ugc">@nk8</a>)</li>
</ul>
</li>
<li>For reporting that <code>Decimal.base10?</code> could not resolve its enclosing modular
<ul>
<li>Tomoki Odaka (<a href="https://github.com/odk211" rel="noopener nofollow ugc">@odk211</a>)</li>
</ul>
</li>
<li>For reporting that completion of SDK files was broken in Small IDEs, which led to discovering the External Libraries were needed in Small IDEs for SDK indexing to occur.  (Indexing of SDKs is automatic in IntelliJ IDEA.)
<ul>
<li><a href="https://github.com/JerryBels" rel="noopener nofollow ugc">@JerryBels</a></li>
</ul>
</li>
<li>For <a href="https://blog.jetbrains.com/blog/2018/06/26/new-icons-in-intellij-platform-2018-2/" rel="noopener nofollow ugc">explaining IntelliJ IDEA 2018.2’s design guidlines</a>
<ul>
<li>Alina Mishna</li>
</ul>
</li>
<li>For providing the SVG version of the Elixir icon
<ul>
<li>Alina Mishna</li>
</ul>
</li>
<li>For providing the Elixir icon made by Alina Mishna
<ul>
<li>Lidiya Chernigovskaya (<a href="https://github.com/LChernigovskaya" rel="noopener nofollow ugc">LChernigovskaya</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-94683-changelog-3" class="anchor" href="#p-94683-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-94683-v810-4" class="anchor" href="#p-94683-v810-4" aria-label="Heading link" rel="nofollow"></a>v8.1.0</h2>
<h3><a name="p-94683-enhancements-5" class="anchor" href="#p-94683-enhancements-5" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1226" rel="noopener nofollow ugc">#1226</a> - Flat icons to match <a href="https://blog.jetbrains.com/blog/2018/06/26/new-icons-in-intellij-platform-2018-2/" rel="noopener nofollow ugc">IntelliJ IDEA 2018.2 design rules</a>.  Thanks to <a href="https://github.com/nk8" rel="noopener nofollow ugc">@nk8</a> for consulting on the design and showing me how to use Figma. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>, <a href="https://github.com/nk8" rel="noopener nofollow ugc">@nk8</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1233" rel="noopener nofollow ugc">#1233</a> - Regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/1228" rel="noopener nofollow ugc">#1228</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1239" rel="noopener nofollow ugc">#1239</a> - Use icon provided by Lidiya Chernigovskaya (<a href="https://github.com/LChernigovskaya" rel="noopener nofollow ugc">@LChernigovskaya</a>) and created by JetBrains UX (Alina Mishina) for <code>pluginIcon</code> compatibility with IntelliJ IDEA 2018.3. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h3><a name="p-94683-bug-fixes-6" class="anchor" href="#p-94683-bug-fixes-6" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1233" rel="noopener nofollow ugc">#1233</a> - Look above <code>Enum.reduce</code> for enclosing macro call. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1234" rel="noopener nofollow ugc">#1234</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Add Facet SDK as External Library to re-enable indexing.  When the External Library was removed in <a href="https://github.com/KronicDeth/intellij-elixir/commit/42972876c219e9da7283513bc5677e5121b5e0fe" rel="noopener nofollow ugc">4297287</a> in favor of a real SDK, completion for SDK <code>.beam</code> modules was lost because Small IDEs don’t index SDKs, but only External Libraries, so add Application-wide External Libraries for SDKs when they are created (and update, remove on edit or delete), which are then added as a Dependency for the facet’s module when the SDK is set for the Small IDE project.
<ul>
<li>Convert old modules with Elixir facets to also have External Library, so that users don’t need to remove and add the SDKs to get the External Library.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1237" rel="noopener nofollow ugc">#1237</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>
<p>Use <span class="hashtag-raw">#AEB9C0</span> for JetBrains Default/Light Gray.  Use <span class="hashtag-raw">#87939A</span> for JetBrains Darcula Gray.  Colors based on IntelliJ’s color picker picking its own colors.</p>
<p>Icon matching testing done under both themes in 2018.2.1.  Weirdly, the colors are different in the SVGs in my intellij-community@master.  Hopefully, this doesn’t mean the colors change again in 2018.3.</p>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1244" rel="noopener nofollow ugc">#1244</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Run <code>createLibrary</code> inside <code>runWriteAction</code>.</li>
<li>Remove test that leaks threads and so causes builds to fail.</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v8.1.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="94683" 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/55">Post #54</a>
	                </div>
	            </div>
              <div id="likers-container-94683" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="94683"
                     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 #54"></div>
  </section>
</div>
    <div class="postbit" id="96555" data-post-id="96555">
  <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-96555-version-900-1" class="anchor" href="#p-96555-version-900-1" aria-label="Heading link" rel="nofollow"></a>Version 9.0.0</h1>
<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">Donate</a></p>
<h1><a name="p-96555-thanks-2" class="anchor" href="#p-96555-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting that renaming variables didn’t work on bracket operations, which reminded me I still had the feature open to resolve bracket operation identifiers from 2016(!).
<ul>
<li>Raz (<a href="https://github.com/RazgrizHsu" rel="noopener nofollow ugc">@RazgrizHsu</a>)</li>
</ul>
</li>
<li>For reporting that they wanted Go To Source and Go To Decompiled to be separated
<ul>
<li>Xavier Noria (<a href="https://github.com/fxn" rel="noopener nofollow ugc">@fxn</a>)</li>
<li>Andrei Dziahel (<a href="https://github.com/develop7" rel="noopener nofollow ugc">@develop7</a>)</li>
<li>Anmol Sethi (<a href="https://github.com/nhooyr" rel="noopener nofollow ugc">@nhooyr</a>)</li>
<li>Raffael Krebs (<a href="https://github.com/kreba" rel="noopener nofollow ugc">@kreba</a>)</li>
<li>John Watson (<a href="https://github.com/jkwatson" rel="noopener nofollow ugc">@jkwatson</a>)</li>
<li>Zoltán Marić (<a href="https://github.com/zoltanmaric" rel="noopener nofollow ugc">@zoltanmaric</a>)</li>
<li>Yordis Prieto (<a href="https://github.com/yordis" rel="noopener nofollow ugc">@yordis</a>)</li>
<li><a href="https://github.com/eagle-te" rel="noopener nofollow ugc">@eagle-te</a></li>
</ul>
</li>
<li>For let me know that some users were like me and liked being able to jump to decompiled code, which was the impetus for Go To Related support after Go To Declaration switched to preferring source.
<ul>
<li>Kimberly Milner (at ElixirConf 2018)</li>
</ul>
</li>
<li>For reporting that I broke completion through imports when I did the Kotlin conversion back in v7.5.0 (released June 5th 2018) <img src="https://forum.elixirforum.com/images/emoji/apple/man_facepalming.png?v=15" title=":man_facepalming:" class="emoji" alt=":man_facepalming:" loading="lazy" width="20" height="20">
<ul>
<li>Miroslav Hettes (<a href="https://github.com/mirrec" rel="noopener nofollow ugc">@mirrec</a>)</li>
</ul>
</li>
</ul>
<h2><a name="p-96555-v900-3" class="anchor" href="#p-96555-v900-3" aria-label="Heading link" rel="nofollow"></a>v9.0.0</h2>
<h3><a name="p-96555-enhancements-4" class="anchor" href="#p-96555-enhancements-4" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1255" rel="noopener nofollow ugc">#1255</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Resolve calls through <code>use AnAlias</code> calls
<ol>
<li><code>AnAlias</code> will be resolved to its modular (module, implementation, or protocol)</li>
<li>The <code>__using__</code> macro in the modular is found</li>
<li>The last call in <code>__using__</code> is checked</li>
</ol>
<ul>
<li>
<p>If it is a <code>quote</code> block, check for call definitions recursively inside the block</p>
</li>
<li>
<p>If it is an <code>apply/3</code> call</p>
<ol>
<li>Resolve the first argument as a modular</li>
<li>Scan for each function in <code>modular</code></li>
<li>In each function Goto Step 3 above</li>
</ol>
<p>This handling is what specifically makes <code>use MyAppWeb, :controller</code> in Phoenix apps now work.</p>
</li>
<li>
<p>If it is a general call</p>
<ol>
<li>Resolve the call to its definition</li>
<li>Goto Step 3 above</li>
</ol>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1259" rel="noopener nofollow ugc">#1259</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Go To Related (<code>Ctrl+Cmd+Up</code>) can be used to Go To the decompiled Module or call definitions when on a source modular (<code>defimpl</code>, <code>defmodule</code>, or <code>defprotocol</code>) or callable (<code>def</code>, <code>defp</code>, <code>defmacro</code>, <code>defmacrop</code>).  This somewhat restores the ability to go to both source and decompiled module and calls before 9.0.0, but now the source is preferred for Go To Declaration and the decompiled will only be available if there is no source and if you definitely want decompiled, you’ll need to use Go To Related.</li>
</ul>
</li>
</ul>
<h3><a name="p-96555-bug-fixes-5" class="anchor" href="#p-96555-bug-fixes-5" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1245" rel="noopener nofollow ugc">#1245</a> - Specify that Kotlin Plugin is needed in <code>CONTRIBUTING.md</code>, so IntelliJ plays nice. - <a href="https://github.com/sfat" rel="noopener nofollow ugc">@sfat</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1246" rel="noopener nofollow ugc">#1246</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Resolve unqualified bracket operation identifiers (<code>var</code> in <code>var[key]</code>) to variables or <code>0</code>-arity calls.
<ul>
<li>Fixes renames of variables not renaming usage of variables for Access lookups (i.e. <code>var[key]</code>).</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1248" rel="noopener nofollow ugc">#1248</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Go To Symbol will no longer show redundant entries
<ul>
<li>Call Definitions (<code>name/arity</code>) is no longer shown if the Call Definition Clause is also included.  This isn’t a large loss because the <code>/arity</code> was not searchable and only part of the presentation.</li>
<li>If there is a decompiled and a source version of a symbol, only the source version will be shown.
<ul>
<li>The source Implementation will be shown and not the decompiled Module with the same fully-qualified name (<code>&lt;protocol&gt;.&lt;for&gt;</code>).</li>
</ul>
</li>
<li>Items will be deduped if they point to the same element, such as function clauses with default arguments because when presented they look the same even if internally one is representing <code>/1</code> and <code>/2</code>, for example.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1249" rel="noopener nofollow ugc">#1249</a> - Ensure that Go To Declaration for qualified calls such as <code>Module.function(...)</code> where <code>Module</code> is an alias does not return the decompiled version of <code>Module</code> when the source is available. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1256" rel="noopener nofollow ugc">#1256</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Fix completion not working for unqualified functions from <code>import</code>s.
<ul>
<li>When I switched to using <code>?.let</code> I accidentally hid the <code>if</code> from running when there was no <code>ENTRANCE_CALL_DEFINITION_CLAUSE</code>, so the correct form is add if there is no entrance or if there is a non-equivalent entrance.</li>
<li>I just straight up forgot an ! on a contains check. I moved to computeIfAbsent, so it is more obvious what the intent is.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3><a name="p-96555-incompatible-changs-6" class="anchor" href="#p-96555-incompatible-changs-6" aria-label="Heading link" rel="nofollow"></a>Incompatible Changs</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1248" rel="noopener nofollow ugc">#1248</a> Go To Symbol and Go To Declaration will no longer suggest decompiled modules or functions if source modules or functions of the same name or module/name/arity exists. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h1><a name="p-96555-readme-updates-7" class="anchor" href="#p-96555-readme-updates-7" aria-label="Heading link" rel="nofollow"></a>README updates</h1>
<h2><a name="p-96555-features-8" class="anchor" href="#p-96555-features-8" aria-label="Heading link" rel="nofollow"></a>Features</h2>
<h3><a name="p-96555-go-to-related-9" class="anchor" href="#p-96555-go-to-related-9" aria-label="Heading link" rel="nofollow"></a>Go To Related</h3>
<p>Go To Related is like Go To Declaration, but more general, for anything that is related to an element, but not its declaration.</p>
<p>In IntelliJ Elixir, Go To Related can be used to go to the decompiled version of a modular (<code>defimpl</code>, <code>defprotocol</code>, or <code>defmodule</code>) or a callable (<code>def</code>, <code>defp</code>, <code>defmacro</code>, <code>defmacrop</code>) definition.</p>
<h4><a name="p-96555-decompiled-module-10" class="anchor" href="#p-96555-decompiled-module-10" aria-label="Heading link" rel="nofollow"></a>Decompiled Module</h4>
<ol>
<li>Place the cursor on the name of the modular, such as <code>EExTest.Accounts</code> in <code>defmodule EExTest.Accounts do</code></li>
<li>Go To Related
<ul>
<li>Navigate &gt; Related Symbol</li>
<li><code>Ctrl+Cmd+Up</code></li>
</ul>
</li>
<li>Select a “Decompiled BEAM” target from the “Choose Target” context menu<br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/1/1ce9a13eee33161ba16d3cfa8d9954dcf09cbc31.png" data-download-href="https://forum.elixirforum.com/uploads/default/1ce9a13eee33161ba16d3cfa8d9954dcf09cbc31" title="Choose Target.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/1/1ce9a13eee33161ba16d3cfa8d9954dcf09cbc31_2_690x79.png" alt="Choose Target.png" width="690" height="79" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/1/1ce9a13eee33161ba16d3cfa8d9954dcf09cbc31_2_690x79.png, https://forum.elixirforum.com/uploads/default/original/2X/1/1ce9a13eee33161ba16d3cfa8d9954dcf09cbc31.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/1/1ce9a13eee33161ba16d3cfa8d9954dcf09cbc31.png 2x" data-dominant-color="454E5D"><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">Choose Target.png</span><span class="informations">881×101 17 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>You will be taken to the decompiled module<br>
<img src="https://forum.elixirforum.com/uploads/default/original/2X/5/5d4c698fc4307f2be800702c7dbda1779a25aefa.png" alt="Decompiled.png" width="489" height="36"></li>
</ol>
<h4><a name="p-96555-decompiled-call-definition-11" class="anchor" href="#p-96555-decompiled-call-definition-11" aria-label="Heading link" rel="nofollow"></a>Decompiled Call Definition</h4>
<ol>
<li>Place the cursor on the name of the call, such as <code>get_user!</code> in <code>def get_user!(id)</code></li>
<li>Go To Related
<ul>
<li>Navigate &gt; Related Symbol</li>
<li><code>Ctrl+Cmd+Up</code></li>
</ul>
</li>
<li>Select a “Decompiled BEAM” target from the “Choose Target” context menu<br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/7/7444a52a17c8425b308392bc3c8792f6cfc23a92.png" data-download-href="https://forum.elixirforum.com/uploads/default/7444a52a17c8425b308392bc3c8792f6cfc23a92" title="Choose Target.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/7/7444a52a17c8425b308392bc3c8792f6cfc23a92_2_690x81.png" alt="Choose Target.png" width="690" height="81" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/7/7444a52a17c8425b308392bc3c8792f6cfc23a92_2_690x81.png, https://forum.elixirforum.com/uploads/default/original/2X/7/7444a52a17c8425b308392bc3c8792f6cfc23a92.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/7/7444a52a17c8425b308392bc3c8792f6cfc23a92.png 2x" data-dominant-color="455061"><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">Choose Target.png</span><span class="informations">896×106 17.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></li>
<li>You will be taken to the decompiled module<br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/e/ed02df13e3471e56818849ccab14b990d44ace1d.png" data-download-href="https://forum.elixirforum.com/uploads/default/ed02df13e3471e56818849ccab14b990d44ace1d" title="Decompiled.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/e/ed02df13e3471e56818849ccab14b990d44ace1d.png" alt="Decompiled.png" width="331" height="169"><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">Decompiled.png</span><span class="informations">331×169 10.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></li>
</ol>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v9.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="96555" data-batch-url="/posts/batch_likers">
                        3
                      </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/56">Post #55</a>
	                </div>
	            </div>
              <div id="likers-container-96555" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="96555"
                     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 #55"></div>
  </section>
</div>
    <div class="postbit" id="101859" data-post-id="101859">
  <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-101859-version-1000-1" class="anchor" href="#p-101859-version-1000-1" aria-label="Heading link" rel="nofollow"></a>Version 10.0.0</h1>
<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">Donate</a></p>
<h1><a name="p-101859-thanks-2" class="anchor" href="#p-101859-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting the new for a <code>runWriteAction</code> when adding new JDKs in Small IDES
<ul>
<li>Cesar (<a href="https://github.com/cesarslzr" rel="noopener nofollow ugc">@cesarslzr</a>)</li>
</ul>
</li>
<li>For reporting that a modular element could become invalid during completion and not have a valid containing file.
<ul>
<li><a href="https://github.com/Rxzg" rel="noopener nofollow ugc">@Rxzg</a></li>
</ul>
</li>
<li>For reporting that <code>:crypto</code> wasn’t in the default module filters even though its NIFs can’t be interpreted.
<ul>
<li>Spencer (<a href="https://github.com/spencerdcarlson" rel="noopener nofollow ugc">@spencerdcarlson</a>)</li>
</ul>
</li>
<li>For reporting that the redefinition of <code>defmodule</code> in <a href="https://github.com/bitwalker/distillery" rel="noopener nofollow ugc">distillery</a> broke the GoTo Symbol contributor.
<ul>
<li>Tomoki Odaka (<a href="https://github.com/odk211" rel="noopener nofollow ugc">@odk211</a>)</li>
</ul>
</li>
<li>For reporting “Test framework quit unexpectedly” being reported instead of showing the compilation errors during tests, which turned out to be a deprecation in OpenAPI <strong>and</strong> a change in ExUnit output in Elixir 1.7 I missed.
<ul>
<li>Dev Team for <a href="https://spartascience.com/" rel="noopener nofollow ugc">Sparta Science</a> (<a href="https://github.com/sparta-developers" rel="noopener nofollow ugc">@sparta-developers</a>)</li>
</ul>
</li>
<li>For reporting that Elixir was bigger than Erlang, or at least the icons in IntelliJ 2018.3 EAP :trollface:.
<ul>
<li>Sergey Ignatov (creator of <a href="https://github.com/ignatov/intellij-erlang" rel="noopener nofollow ugc">IntelliJ Erlang</a>) (<a href="https://github.com/ignatov" rel="noopener nofollow ugc">@ignatov</a>)</li>
</ul>
</li>
<li>For reporting poor error message when removing module filters
<ul>
<li>Frances Morales (<a href="https://github.com/fmorales" rel="noopener nofollow ugc">@fmorales</a>)</li>
</ul>
</li>
<li>For reporting that I can’t make the fact that there is no use call a cache dependency
<ul>
<li>Artem Gordinsky (<a href="https://github.com/ArtemGordinsky" rel="noopener nofollow ugc">@ArtemGordinsky</a>)</li>
<li>Tomoki Odaka (<a href="https://github.com/odk211" rel="noopener nofollow ugc">@odk211</a>)</li>
</ul>
</li>
<li>For reporting that completion with nested modules was broken
<ul>
<li><a href="https://github.com/nulian" rel="noopener nofollow ugc">@nulian</a></li>
</ul>
</li>
<li>For reporting that <code>alias __MODULE__, as: Mod</code> did not work for resolving references through <code>Mod</code>.
<ul>
<li>Tomas Dosoudil (<a href="https://github.com/tomdos" rel="noopener nofollow ugc">@tomdos</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-101859-changelog-3" class="anchor" href="#p-101859-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-101859-v1000-4" class="anchor" href="#p-101859-v1000-4" aria-label="Heading link" rel="nofollow"></a>v10.0.0</h2>
<h3><a name="p-101859-enhancements-5" class="anchor" href="#p-101859-enhancements-5" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1272" rel="noopener nofollow ugc">#1272</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Go To Symbol and completion will only resolve in project source unless non-project sources are turned on.
<ul>
<li><code>deps</code> are properly marked as Libraries and no longer count as being in the project scope for the Go To tools.</li>
<li>In umbrella projects, when <code>in_umbrella</code> is used, the Project Module for each <code>apps/#{APP_NAME}</code> will be marked a dependency,</li>
<li>Library and Modules are properly connected as dependencies, so that only declared dependencies will resolve, lessening false completions and declarations when different OTP app share common Module or function names.</li>
</ul>
</li>
<li><code>deps</code> and the <code>_build/#{MIX_ENV}/lib/#{DEP_NAME}</code> will be marked as Excluded, so that Libraries appear in External Libraries at the bottom of the Project Pane.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1275" rel="noopener nofollow ugc">#1275</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Go To Class action (Cmd+O) to go to modules separately from all functions as would happen with Go To Symbols (Alt+Cmd+O).
<ul>
<li>
<p>New ModuleName index keeps track of only the names of modulars:</p>
<ul>
<li>defmodule</li>
<li>defimpl</li>
<li>defprotocol</li>
</ul>
<p>It is used to power gotoClassContributor for Go To Class action.</p>
</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1280" rel="noopener nofollow ugc">#1280</a> - Handle <code>commit</code> and <code>override</code> for <code>Mix.Dep</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1283" rel="noopener nofollow ugc">#1283</a> - Add <code>.eex</code> to <code>.ex</code> and <code>.exs</code> for accepted file extensions used to hyperlink files in stacktraces. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1285" rel="noopener nofollow ugc">#1285</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Resolve unaliased name when using <code>alias __MODULE__, as: Mod</code></li>
<li>Resolve usage of <code>Mod</code> in <code>alias __MODULE__, as Mod</code>
<ol>
<li><code>Mod</code></li>
<li><code>__MODULE__</code> in <code>alias __MODULE__</code></li>
<li><code>defmodule MyModule</code> that is enclosing <code>__MODULE__</code>.</li>
</ol>
</li>
<li>Disable <code>ProcessCanceledException</code> for <code>runIde</code> gradle task, to allow for easier manual testing of completion and Go To actions during development.</li>
<li>Completion of functions in current module when using <code>Mod.</code> after <code>alias __MODULE__, as: Mod</code>.</li>
<li>Show more context for <code>alias</code> calls in presentations, like “Choose Declaration” pop up for Go To Declaration.
<ul>
<li>Show resolved <code>__MODULE__</code> name (<code>alias MyModule</code>) when using <code>alias __MODULE__</code>.</li>
<li>Show full <code>alias MyModule, as: Mod</code> when listing <code>Mod</code> in <code>alias __MODULE__, as Mod</code>.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1293" rel="noopener nofollow ugc">#1293</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Exclude common directories when importing projects
<ul>
<li><code>cover</code> for test coverage</li>
<li><code>doc</code> for <code>ex_doc</code></li>
<li><code>logs</code> for log files</li>
<li><code>assets/node_modules/phoenix</code> for <code>phoenix</code></li>
<li><code>assets/node_modules/phoenix_html</code> for <code>phoenix_html</code></li>
</ul>
</li>
<li>Setup Libraries and Module dependencies when importing projects from Mix.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1299" rel="noopener nofollow ugc">#1299</a> - Regression test for <a href="https://github.com/KronicDeth/intellij-elixir/issues/1270" rel="noopener nofollow ugc">#1270</a>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1313" rel="noopener nofollow ugc">#1313</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Update gradle wrapper to 3.5 to allow for environment variable overrides</li>
<li>Setup datetime based pre-release versioning to ensure that correct version of pre-release plugin is used when testing Install Plugin From Disk.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1318" rel="noopener nofollow ugc">#1318</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Canary, pre-release builds (<code>vMAJOR.MINOR.PATCH-pre+YYYYMMDDHHMMSS</code>) from <code>master</code> branch
<ul>
<li>GitHub pre-release <a href="https://github.com/KronicDeth/intellij-elixir/releases" rel="noopener nofollow ugc">releases</a></li>
<li>Release on the <a href="https://plugins.jetbrains.com/plugins/list?channel=canary&amp;pluginId=7522" rel="noopener nofollow ugc">canary channel</a> in the <a href="https://plugins.jetbrains.com/plugin/7522-elixir" rel="noopener nofollow ugc">JetBrains Plugin Repository</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h3><a name="p-101859-bug-fixes-6" class="anchor" href="#p-101859-bug-fixes-6" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1277" rel="noopener nofollow ugc">#1277</a> - Don’t include <code>null</code> <code>useCall</code> as <code>__MODULE__</code> dependency. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1279" rel="noopener nofollow ugc">#1279</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Wrap <code>LibraryTable#removeLibrary</code> in write action.</li>
<li>Wrap <code>Library#modifiableModule#commit</code> in write action.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1282" rel="noopener nofollow ugc">#1282</a> - Check if <code>Mix.Dep</code> has already been seen to prevent recursive loops. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1287" rel="noopener nofollow ugc">#1287</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>More closely match <a href="https://github.com/elixir-lang/elixir/blob/v1.7.3/lib/ex_unit/lib/ex_unit/cli_formatter.ex" rel="noopener nofollow ugc">ExUnit.CliFormatter</a> output in Test Runner.
<ul>
<li>Don’t <code>inspect</code> ExUnit failure <code>reason</code> as <code>##teamcity</code> <code>message</code>.</li>
<li>Add captured logs to failure</li>
<li>Colorize test failures - including diff colorization</li>
</ul>
</li>
<li><code>.formatter.exs</code> input globs would not match file paths because it was default that needed <code>lib</code> on top and not version-dependent paths used in <code>resources/exunit</code>.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1291" rel="noopener nofollow ugc">#1291</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Ignore branch and hex options when finding path of Mix.Dep</li>
<li>Map Elixir 1.7 <code>:excluded</code> and <code>:skipped</code> (added in <a href="https://github.com/elixir-lang/elixir/pull/7245" rel="noopener nofollow ugc">elixir-lang/elixir#7245</a>) to <code>testIgnored</code> teamcity message, thereby restoring ignored test counts and markers from Elixir 1.6.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1293" rel="noopener nofollow ugc">#1293</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>When the entire deps directory has updated sync the children deps directories and then sync all modules instead of syncing them after each dep.</li>
<li>For an unknown reason, when sync occurs at <code>initComponent</code> time in <code>DepsWatcher</code> or <code>mix.Watcher</code>, the child directories of the project <code>basedDir</code> aren’t shown in the Project Pane until a change is applied in Project Structure.</li>
<li>Use <code>invokeAndWait</code> instead of <code>invokeLater</code> to ensure order of syncs.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1299" rel="noopener nofollow ugc">#1299</a> - When finding a <code>defmodule</code>, check that it is an ancestor of the entrance of the <code>ResolveState</code>, so that nested sibling modules are not scanned for potential call definition clauses, but only the outer module of the entrance. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1300" rel="noopener nofollow ugc">#1300</a> - Improve error message for <code>org.elixir_lang.debugger.settings.stepping.module_filter.editor.table.Model.getValueAt</code>, so we can detect if there is an off-by-1 error. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1304" rel="noopener nofollow ugc">#1304</a> - Remove <code>@2x</code> and <code>@3x</code> SVG icons that render wrong size in 2018.3 EAP. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1305" rel="noopener nofollow ugc">#1305</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Fix unused variables in <code>TeamCityExUnitFormatting</code>
<ul>
<li><code>reason</code> was completely unused.</li>
<li><code>details</code> should have been used.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1306" rel="noopener nofollow ugc">#1306</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li><code>flushBufferBeforeTerminating</code> was deprecated and in newer IntelliJ the call to <code>processStatuses</code> does not occur unless <code>flushBufferOnProcessTermination</code> is also overridden.</li>
<li>Treat <code>== Compilation error</code> in <code>STDOUT</code> as <code>ERROR</code> for ExUnit reporter</li>
<li>Convert <code>(CompileError)</code> of a test file to test failure.  The “Test framework quit unexpectedly” is converted to a failed run with a single test with the compilation error as the failure message.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1308" rel="noopener nofollow ugc">#1308</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Don’t treat redefinition of <code>defmodule</code> macro as module definition (as occurs in <a href="https://github.com/bitwalker" rel="noopener nofollow ugc">@bitwalker</a>’s <a href="https://github.com/bitwalker/distillery" rel="noopener nofollow ugc">distillery</a>’s <code>Mix.Tasks.Release.Init.MixMock</code>
<ul>
<li>Bump <code>AllName</code> <code>VERSION</code> to re-index and drop bad call definition head from <a href="https://github.com/KronicDeth/intellij-elixir/issues/1301" rel="noopener nofollow ugc">#1301</a>.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1310" rel="noopener nofollow ugc">#1310</a> - Don’t log compilation errors as test failures unless a test has started.   Test name being called <code>mix test</code> does not work, so log those compilation errors as normal build messages instead. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1311" rel="noopener nofollow ugc">#1311</a> - Don’t interpret <code>:crypto</code> by default: <code>:crypto</code> includes NIFs that can’t be reloaded and so kills the debugger. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1312" rel="noopener nofollow ugc">#1312</a> - Protect from <code>null</code> <code>containingFile</code> for modular names during completion. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1313" rel="noopener nofollow ugc">#1313</a> - Wrap <code>syncPublisher(JDK_TABLE_TOPIC)</code> in <code>invokeLater</code> <code>runWriteAction</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h3><a name="p-101859-incompatible-changes-7" class="anchor" href="#p-101859-incompatible-changes-7" aria-label="Heading link" rel="nofollow"></a>Incompatible Changes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1272" rel="noopener nofollow ugc">#1272</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Dependencies are now counted as external to the project, so the Go To tools, like Go To Symbol will no longer include matches for both project sources and dependencies sources together, instead they will follow the more JetBrains native behavior
<ul>
<li>Project sources will be shown by default</li>
<li>If there are no project matches, dependencies will be shown instead.</li>
<li>If you want to include dependency (non-project) matches, you can check the box or hit Cmd+O.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1293" rel="noopener nofollow ugc">#1293</a> - Modules and Libraries won’t be automatically setup when a project or module is opened, but instead only when <code>apps</code> or <code>deps</code> directories or subdirectories change. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h1><a name="p-101859-readme-updates-8" class="anchor" href="#p-101859-readme-updates-8" aria-label="Heading link" rel="nofollow"></a>README Updates</h1>
<h2><a name="p-101859-installation-9" class="anchor" href="#p-101859-installation-9" aria-label="Heading link" rel="nofollow"></a>Installation</h2>
<h3><a name="p-101859-canary-releases-10" class="anchor" href="#p-101859-canary-releases-10" aria-label="Heading link" rel="nofollow"></a>Canary releases</h3>
<p>Builds on <code>master</code> will produce pre-release builds of format <code>NEXT_VERSION-pre+YYYYMMDDHHMMSS</code>.</p>
<h4><a name="p-101859-inside-ide-using-jetbrains-repository-11" class="anchor" href="#p-101859-inside-ide-using-jetbrains-repository-11" aria-label="Heading link" rel="nofollow"></a>Inside IDE using JetBrains repository</h4>
<p>You will need to add the <code>canary</code> repository once to your IDE:</p>
<ol>
<li>Preferences</li>
<li>Plugins</li>
<li>Browse Repositories</li>
<li>Manage Repositories</li>
<li>Click +</li>
<li>Enter the IntelliJ Elixir <code>canary</code> URL: <code>https://plugins.jetbrains.com/plugins/list?channel=canary&amp;pluginId=7522</code></li>
<li>Click OK</li>
<li>Click OK to close the Custom Plugin Repositories dialog.</li>
</ol>
<p>With the <code>canary</code> repository setup:</p>
<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>
<h4><a name="p-101859-inside-ide-using-github-releases-12" class="anchor" href="#p-101859-inside-ide-using-github-releases-12" aria-label="Heading link" rel="nofollow"></a>Inside IDE using Github releases</h4>
<h5><a name="p-101859-in-browser-13" class="anchor" href="#p-101859-in-browser-13" aria-label="Heading link" rel="nofollow"></a>In browser</h5>
<ol>
<li>Go to <a href="https://github.com/KronicDeth/intellij-elixir/releases" rel="noopener nofollow ugc">releases</a>.</li>
<li>Download the latest pre-release zip.</li>
</ol>
<h5><a name="p-101859-in-ide-14" class="anchor" href="#p-101859-in-ide-14" aria-label="Heading link" rel="nofollow"></a>In IDE</h5>
<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>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v10.0.10/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="101859" 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/57">Post #56</a>
	                </div>
	            </div>
              <div id="likers-container-101859" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="101859"
                     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 #56"></div>
  </section>
</div>
    <div class="postbit" id="102197" data-post-id="102197">
  <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-102197-version-1001-1" class="anchor" href="#p-102197-version-1001-1" aria-label="Heading link" rel="nofollow"></a>Version 10.0.1</h1>
<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">Donate</a></p>
<h1><a name="p-102197-thanks-2" class="anchor" href="#p-102197-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting that real-world code may produce 10 names for one element.
<ul>
<li>Dmytro Lytovchenko (<a href="https://github.com/kvakvs" rel="noopener nofollow ugc">@kvakvs</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-102197-changelog-3" class="anchor" href="#p-102197-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-102197-v1001-4" class="anchor" href="#p-102197-v1001-4" aria-label="Heading link" rel="nofollow"></a>v10.0.1</h2>
<h3><a name="p-102197-bug-fixes-5" class="anchor" href="#p-102197-bug-fixes-5" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1322" rel="noopener nofollow ugc">#1322</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Eliminate freezes when calculating Module and Library dependencies during project import and dependency updates.
<ul>
<li>Run library syncing in tasks: When importing projects, run sync as a modal task while when <code>VirtualFileSystem</code> events occur, run sync as background tasks.  Either style of task is cancellable and importantly, it allows to show what is happening during the syncing.  This converts the unresponsive UI beachball on macOS during import to an updating progress bar.</li>
<li>Calculate dep sets iteratively with a work queue instead of recursively to limit the calculation of dep set for a root to 1 time.  Then use normal transitive walk to get complete dep set for module.  Vastly speeds up project import.</li>
<li>Cache dep set on package <code>PsiFile</code> to allow faster refreshes when indirect dependencies don’t change.</li>
</ul>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1323" rel="noopener nofollow ugc">#1323</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Log <code>nameSet</code> when it reaches suspect size (<code>10</code>) to allow triaging if it is a real bug or just something with a lot of valid names.</li>
<li>Fix inverted condition around when to warn and when to error and use <code>readAheadLength</code>.</li>
</ul>
</li>
</ul>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v10.0.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="102197" 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/58">Post #57</a>
	                </div>
	            </div>
              <div id="likers-container-102197" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="102197"
                     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 #57"></div>
  </section>
</div>
    <div class="postbit" id="103270" data-post-id="103270">
  <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-103270-version-v1010-1" class="anchor" href="#p-103270-version-v1010-1" aria-label="Heading link" rel="nofollow"></a>Version v10.1.0</h1>
<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">Donate</a></p>
<h1><a name="p-103270-thanks-2" class="anchor" href="#p-103270-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting that <code>packgePsiFileToDepSet</code> needed to be wrapped in a read action
<ul>
<li>Abey Onalaja (<a href="https://github.com/abeyonalaja" rel="noopener nofollow ugc">@abeyonalaja</a>)</li>
</ul>
</li>
<li>For requesting ExUnit Test New File template
<ul>
<li>Ryan Scheel (<a href="https://github.com/Havvy" rel="noopener nofollow ugc">@Havvy</a>)</li>
<li>Dylan Griffith (<a href="https://github.com/DylanGriffith" rel="noopener nofollow ugc">@DylanGriffith</a>)</li>
<li>Jimmi Fragkos (<a href="https://github.com/FraDim" rel="noopener nofollow ugc">@FraDim</a>)</li>
<li>Robin Kanters (<a href="https://github.com/robinkanters" rel="noopener nofollow ugc">@robinkanters</a>)</li>
<li>Dave Lampton (<a href="https://github.com/davelampton" rel="noopener nofollow ugc">@davelampton</a>)</li>
</ul>
</li>
<li>For reporting that <code>defmodule</code> one-liner in IEx autocomplete test was being treated as a call definition head in the GoToSymbolContributor.
<ul>
<li>Eugene (<a href="https://github.com/JohnBat26" rel="noopener nofollow ugc">@JohnBat26</a>)</li>
</ul>
</li>
<li>For opening a PR to fix deadlinks in the README that led me to auditing all the links in the README and fixing image links that were stale.
<ul>
<li>Francesco Lo Franco (<a href="https://github.com/kekko1212" rel="noopener nofollow ugc">@kekko1212</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-103270-changelog-3" class="anchor" href="#p-103270-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-103270-v1010-4" class="anchor" href="#p-103270-v1010-4" aria-label="Heading link" rel="nofollow"></a>v10.1.0</h2>
<h3><a name="p-103270-enhancements-5" class="anchor" href="#p-103270-enhancements-5" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1330" rel="noopener nofollow ugc">#1330</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>
<p>Add IntelliJ Elixir Help to Help menu that opens link in browser using plugin version to link to README.md on GitHub.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/4/418b1138c5b1d788ec5be602b64a413c14d6ae82.png" data-download-href="https://forum.elixirforum.com/uploads/default/418b1138c5b1d788ec5be602b64a413c14d6ae82" title="screen shot 2018-11-02 at 12 06 52 pm" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/4/418b1138c5b1d788ec5be602b64a413c14d6ae82.png" alt="screen shot 2018-11-02 at 12 06 52 pm" width="353" height="488"><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 2018-11-02 at 12 06 52 pm</span><span class="informations">353×488 35.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><p></p>
<p>The link will work on released versions that have a tag.</p>
</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1334" rel="noopener nofollow ugc">#1334</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Allow creating <code>ExUnit.Case</code> modules from template.  Template contains
<ul>
<li><code>use ExUnit.Case</code></li>
<li><code>alias</code> of the source module</li>
<li><code>@moduletag :capture_log</code></li>
<li><code>doctest</code></li>
<li><code>test</code> that checks that the source module exists.</li>
</ul>
</li>
<li>Convert <code>CreateElixirModuleAction</code> to Kotlin.</li>
<li>Drop “Elixir” prefix from templates name in Elixir File dialog since you already know you’re creating an Elixir File.</li>
</ul>
</li>
</ul>
<h3><a name="p-103270-bug-fixes-6" class="anchor" href="#p-103270-bug-fixes-6" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1327" rel="noopener nofollow ugc">#1327</a> - Fix deadlinks to Run Configurations, which broke when section was renamed Run/Debug Configurations and auto-anchor changed name. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1328" rel="noopener nofollow ugc">#1328</a> - Fix image links in <code>README</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1331" rel="noopener nofollow ugc">#1331</a> - Ensure <code>defmodule</code> one-liner isn’t mistaken for call definition head in Go To Symbol. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h2><a name="p-103270-readme-updates-7" class="anchor" href="#p-103270-readme-updates-7" aria-label="Heading link" rel="nofollow"></a>README Updates</h2>
<p>Fixed image layout and stale links.</p>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/VERSION/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="103270" 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/59">Post #58</a>
	                </div>
	            </div>
              <div id="likers-container-103270" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="103270"
                     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 #58"></div>
  </section>
</div>
    <div class="postbit" id="109055" data-post-id="109055">
  <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-109055-version-1020-1" class="anchor" href="#p-109055-version-1020-1" aria-label="Heading link" rel="nofollow"></a>Version 10.2.0</h1>
<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">Donate</a></p>
<h1><a name="p-109055-thanks-2" class="anchor" href="#p-109055-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting <code>:ref</code> was used for deps.
<ul>
<li>Francesco (<a href="https://github.com/chess4ever" rel="noopener nofollow ugc">@chess4ever</a>)</li>
</ul>
</li>
<li>For reporting <code>JBTerminalWidget</code> no longer supported <code>createTerminalSession</code> indicating <code>TerminalExecutionConsole</code> incompatibility with IntelliJ IDEA 2018.3.
<ul>
<li>Joaquin Alcerro (<a href="https://github.com/joaquinalcerro" rel="noopener nofollow ugc">@joaquinalcerro</a>)</li>
<li>Elliot Laurendeau (<a href="https://github.com/elaurendeau" rel="noopener nofollow ugc">@elaurendeau</a>)</li>
<li>Christiaan (<a href="https://github.com/christiaan-janssen" rel="noopener nofollow ugc">@christiaan-janssen</a>)</li>
<li>Hoang Tran (<a href="https://github.com/hoangtranwork" rel="noopener nofollow ugc">@hoangtranwork</a>)</li>
<li><a href="https://github.com/joeman29" rel="noopener nofollow ugc">@joeman29</a></li>
<li>Zdenek Sejcek (<a href="https://github.com/zdeneksejcek" rel="noopener nofollow ugc">@zdeneksejcek</a>)</li>
</ul>
</li>
<li>For reporting <code>:tag</code> was used for deps.
<ul>
<li>Eugene (<a href="https://github.com/virtual-light" rel="noopener nofollow ugc">@virtual-light</a>)</li>
<li>Tomislav (<a href="https://github.com/trajakovic" rel="noopener nofollow ugc">@trajakovic</a>)</li>
<li>Eric des Courtis (<a href="https://github.com/edescourtis" rel="noopener nofollow ugc">@edescourtis</a>)</li>
</ul>
</li>
<li>For reporting <code>:path</code> was used for deps.
<ul>
<li>Agnaldo de Oliveira (<a href="https://github.com/agnaldo4j" rel="noopener nofollow ugc">@agnaldo4j</a>)</li>
<li>Eric des Courtis (<a href="https://github.com/edescourtis" rel="noopener nofollow ugc">@edescourtis</a>)</li>
</ul>
</li>
<li>For reporting <code>VirtualPointerContainer</code> was sometimes disposed of when still being used to get SDK paths.
<ul>
<li>Lucas Henrique Mathias (<a href="https://github.com/lhmathias" rel="noopener nofollow ugc">@https://github.com/lhmathias</a>)</li>
</ul>
</li>
<li>For reporting Elixir debugger code had warnings.
<ul>
<li>Denis Gorbachev (<a href="https://github.com/DenisGorbachev" rel="noopener nofollow ugc">@DenisGorbachev</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-109055-changelog-3" class="anchor" href="#p-109055-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-109055-v1020-4" class="anchor" href="#p-109055-v1020-4" aria-label="Heading link" rel="nofollow"></a>v10.2.0</h2>
<h3><a name="p-109055-enhancements-5" class="anchor" href="#p-109055-enhancements-5" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1353" rel="noopener nofollow ugc">#1353</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Improve support for umbrella projects in Small IDEs like Rubymine by creating a separate module for each <code>mix.exs</code> when opening a directory (<code>DirectoryConfigurator</code>).  This matches the pre-existing support in Rich IDEs (IntelliJ Community &amp; Ultimate Edition) when using Import From External Model and Quick Import when opening a directory.</li>
<li>Ignore <code>assets</code> directory when looking for <code>mix.exs</code> files for Import From External Model, Quick Import and Directory Configurator.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1355" rel="noopener nofollow ugc">#1355</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Update Build Matrix
<ul>
<li>Add <code>2018.3</code>.
<ul>
<li>Update <code>gradlew</code> to <code>5.0</code>.</li>
<li>Update <code>org.jetbrains.intellij</code> to <code>0.3.12</code>.</li>
<li>Update <code>org.jetbrains.kotlin.kvm</code> to <code>1.3.10</code>.
<ul>
<li>Update Kotlin <code>apiVerision</code> to <code>1.3</code>.</li>
</ul>
</li>
<li>Update <code>de.undercouch.download</code> to <code>3.4.3</code>.</li>
<li>Don’t configure Kotlin in projects that don’t use it.</li>
</ul>
</li>
<li>Remove <code>2017.3</code> to keep version count at <code>3</code>.</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3><a name="p-109055-bug-fixes-6" class="anchor" href="#p-109055-bug-fixes-6" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1355" rel="noopener nofollow ugc">#1355</a> - Prevent <code>ConcurrentModificationException</code>s when updating <code>gradle</code> by using <code>allprojects</code> less. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1359" rel="noopener nofollow ugc">#1359</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Remove unused variables in Elixir debugger server.</li>
<li>Protect from <code>AssertionError</code> when <code>VirtualFileCache</code> is disposed.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1360" rel="noopener nofollow ugc">#1360</a> - Protect from <code>AssertionError</code> when <code>VirtualFilePointerContainer</code> is disposed. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1364" rel="noopener nofollow ugc">#1364</a> - Use <code>:path</code> for deps for paths external to project.  Unfortunately, even though they show up in the Project Structure, only <code>ebin</code> directories are shown as it is restricted to those marked as <code>CLASSES</code> and the <code>:path</code> <code>lib</code> is a <code>SOURCES</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1367" rel="noopener nofollow ugc">#1367</a> - Ignore <code>:tag</code> when finding path to dep. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1368" rel="noopener nofollow ugc">#1368</a> - No longer use the forked version of <code>TerminalExecutionConsole</code> as <code>2018.3</code>’s version doesn’t have the text echoing behavior that was being bypassed before. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1372" rel="noopener nofollow ugc">#1372</a> - Ignore <code>:ref</code> when finding path to dep. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/10.2.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="109055" 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/60">Post #59</a>
	                </div>
	            </div>
              <div id="likers-container-109055" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="109055"
                     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 #59"></div>
  </section>
</div>
    <div class="postbit" id="119030" data-post-id="119030">
  <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-119030-version-1030-1" class="anchor" href="#p-119030-version-1030-1" aria-label="Heading link" rel="nofollow"></a>Version 10.3.0</h1>
<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">Donate</a></p>
<h1><a name="p-119030-thanks-2" class="anchor" href="#p-119030-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For reporting that they expect types to show up.
<ul>
<li>carlos L (<a href="https://github.com/cocodrino" rel="noopener nofollow ugc">@cocodrino</a>)</li>
</ul>
</li>
<li>For reporting performance issues
<ul>
<li>Will Davies (<a href="https://github.com/wdavies973" rel="noopener nofollow ugc">@wdavies973</a>)</li>
<li>Gerard de Brieder (<a href="https://github.com/smeevil" rel="noopener nofollow ugc">@smeevil</a>)</li>
</ul>
</li>
<li>For including <a href="https://intellij-support.jetbrains.com/hc/en-us/articles/206544899-Getting-a-thread-dump-when-IDE-hangs-and-doesn-t-respond" rel="noopener nofollow ugc">thread dumps</a> when reporting performance issues
<ul>
<li>Gerard de Brieder (<a href="https://github.com/smeevil" rel="noopener nofollow ugc">@smeevil</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-119030-changelog-3" class="anchor" href="#p-119030-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-119030-v1030-4" class="anchor" href="#p-119030-v1030-4" aria-label="Heading link" rel="nofollow"></a>v10.3.0</h2>
<h3><a name="p-119030-enhancements-5" class="anchor" href="#p-119030-enhancements-5" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1404" rel="noopener nofollow ugc">#1404</a> - Add Type Specifications to Dbgi tab for :elixir_erl backend. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1407" rel="noopener nofollow ugc">#1407</a> - Bug Report issue template. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
<h3><a name="p-119030-bug-fixes-6" class="anchor" href="#p-119030-bug-fixes-6" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1408" rel="noopener nofollow ugc">#1408</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Cache all computed Elixir levels at the file, module, project, and SDK levels.  The computed Elixir level is used to determine how to emulate the various grammar changes made for the different Elixir versions.  This bug was potentially introduced as earlier as<a rel="nofollow">v7.0.0</a> (2017-12-15) and as late as <a href="https://github.com/KronicDeth/intellij-elixir/releases/tag/v7.5.0" rel="noopener nofollow ugc">v7.5.0</a> (2018-06-03) as that’s <a href="https://github.com/KronicDeth/intellij-elixir/commits/da149f8430cd378e964ae5a53a127754b3a00bc9/src/org/elixir_lang/file/LevelPropertyPusher.java" rel="noopener nofollow ugc">the history for <code>LevelPropertyPusher.java</code></a> and has affected all later versions.  If you ever experienced the 6.X series as faster than the 7.X series and later, this bug may be why and you should upgrade/reinstall immediately.</li>
</ul>
</li>
</ul>
<h1><a name="p-119030-readme-changes-7" class="anchor" href="#p-119030-readme-changes-7" aria-label="Heading link" rel="nofollow"></a>README Changes</h1>
<h2><a name="p-119030-features-8" class="anchor" href="#p-119030-features-8" aria-label="Heading link" rel="nofollow"></a>Features</h2>
<h3><a name="p-119030-beam-files-9" class="anchor" href="#p-119030-beam-files-9" aria-label="Heading link" rel="nofollow"></a><code>.beam</code> Files</h3>
<h4><a name="p-119030-beam-chunks-10" class="anchor" href="#p-119030-beam-chunks-10" aria-label="Heading link" rel="nofollow"></a>BEAM Chunks</h4>
<h5><a name="p-119030-dbgi-11" class="anchor" href="#p-119030-dbgi-11" aria-label="Heading link" rel="nofollow"></a><code>Dbgi</code></h5>
<h6><a name="p-119030-tab-12" class="anchor" href="#p-119030-tab-12" aria-label="Heading link" rel="nofollow"></a>Tab</h6>
<p>####### Elixir (<code>:elixir_erl</code> backend)<br>
######## Type Specifications</p>
<p>The Type Specifications tab is split between a tree of the Module, Module Attribute, and type specifications.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/1/172cc1fe168e5b6aa717128468dd51b6d97f27b0.png" data-download-href="https://forum.elixirforum.com/uploads/default/172cc1fe168e5b6aa717128468dd51b6d97f27b0" title="Tree.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/1/172cc1fe168e5b6aa717128468dd51b6d97f27b0.png" alt="Tree.png" width="434" height="154"><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">Tree.png</span><span class="informations">434×154 8.44 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>Clicking on a type specification will show only that type specification, but clicking on a higher in the tree will show all type specifications for the same module attribute or the entire Module.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/5/5300a3a88bada726ea54f7a6dc00d34fcf5c5155.png" data-download-href="https://forum.elixirforum.com/uploads/default/5300a3a88bada726ea54f7a6dc00d34fcf5c5155" title="Callback.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/5/5300a3a88bada726ea54f7a6dc00d34fcf5c5155_2_690x197.png" alt="Callback.png" width="690" height="197" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/5/5300a3a88bada726ea54f7a6dc00d34fcf5c5155_2_690x197.png, https://forum.elixirforum.com/uploads/default/optimized/2X/5/5300a3a88bada726ea54f7a6dc00d34fcf5c5155_2_1035x295.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/5/5300a3a88bada726ea54f7a6dc00d34fcf5c5155.png 2x" data-dominant-color="333536"><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">Callback.png</span><span class="informations">1061×303 31.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><br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/c/c0a0a46396366d0d81b2133b0d284496006416ae.png" data-download-href="https://forum.elixirforum.com/uploads/default/c0a0a46396366d0d81b2133b0d284496006416ae" title="Callbacks.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/c/c0a0a46396366d0d81b2133b0d284496006416ae_2_690x78.png" alt="Callbacks.png" width="690" height="78" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/c/c0a0a46396366d0d81b2133b0d284496006416ae_2_690x78.png, https://forum.elixirforum.com/uploads/default/optimized/2X/c/c0a0a46396366d0d81b2133b0d284496006416ae_2_1035x117.png 1.5x, https://forum.elixirforum.com/uploads/default/optimized/2X/c/c0a0a46396366d0d81b2133b0d284496006416ae_2_1380x156.png 2x" data-dominant-color="333232"><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">Callbacks.png</span><span class="informations">2982×339 88.8 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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/5/558416d0ad95589d4001d9be31863a94a74ab15a.png" data-download-href="https://forum.elixirforum.com/uploads/default/558416d0ad95589d4001d9be31863a94a74ab15a" title="Optional Callback.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/5/558416d0ad95589d4001d9be31863a94a74ab15a.png" alt="Optional Callback.png" width="521" height="282"><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">Optional Callback.png</span><span class="informations">521×282 20.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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/b/bedb692ac51ef4d7c2bf786e053c5c105b7e8235.png" data-download-href="https://forum.elixirforum.com/uploads/default/bedb692ac51ef4d7c2bf786e053c5c105b7e8235" title="Optional Callbacks.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/b/bedb692ac51ef4d7c2bf786e053c5c105b7e8235.png" alt="Optional Callbacks.png" width="576" height="285"><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">Optional Callbacks.png</span><span class="informations">576×285 29.1 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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/f/f22fac03c11e6a10f9048169d18040bc161c88f1.png" data-download-href="https://forum.elixirforum.com/uploads/default/f22fac03c11e6a10f9048169d18040bc161c88f1" title="Spec.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/f/f22fac03c11e6a10f9048169d18040bc161c88f1_2_690x316.png" alt="Spec.png" width="690" height="316" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/f/f22fac03c11e6a10f9048169d18040bc161c88f1_2_690x316.png, https://forum.elixirforum.com/uploads/default/original/2X/f/f22fac03c11e6a10f9048169d18040bc161c88f1.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/f/f22fac03c11e6a10f9048169d18040bc161c88f1.png 2x" data-dominant-color="36393B"><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">Spec.png</span><span class="informations">695×319 28.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><br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/6/65a38ecea990f4cab9a12a1a5aa631c438420337.png" data-download-href="https://forum.elixirforum.com/uploads/default/65a38ecea990f4cab9a12a1a5aa631c438420337" title="Specs.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/6/65a38ecea990f4cab9a12a1a5aa631c438420337_2_690x224.png" alt="Specs.png" width="690" height="224" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/6/65a38ecea990f4cab9a12a1a5aa631c438420337_2_690x224.png, https://forum.elixirforum.com/uploads/default/optimized/2X/6/65a38ecea990f4cab9a12a1a5aa631c438420337_2_1035x336.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/6/65a38ecea990f4cab9a12a1a5aa631c438420337.png 2x" data-dominant-color="353635"><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">Specs.png</span><span class="informations">1137×370 55.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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/6/6dbdae08677c8aa414d7bd1d0fb42769231e78f9.png" data-download-href="https://forum.elixirforum.com/uploads/default/6dbdae08677c8aa414d7bd1d0fb42769231e78f9" title="Type.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/6/6dbdae08677c8aa414d7bd1d0fb42769231e78f9.png" alt="Type.png" width="562" height="285"><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">Type.png</span><span class="informations">562×285 18.4 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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/1/1efa34804035a1d58164b5bada41754f7fc29f9f.png" data-download-href="https://forum.elixirforum.com/uploads/default/1efa34804035a1d58164b5bada41754f7fc29f9f" title="Types.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/1/1efa34804035a1d58164b5bada41754f7fc29f9f_2_690x194.png" alt="Types.png" width="690" height="194" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/1/1efa34804035a1d58164b5bada41754f7fc29f9f_2_690x194.png, https://forum.elixirforum.com/uploads/default/optimized/2X/1/1efa34804035a1d58164b5bada41754f7fc29f9f_2_1035x291.png 1.5x, https://forum.elixirforum.com/uploads/default/original/2X/1/1efa34804035a1d58164b5bada41754f7fc29f9f.png 2x" data-dominant-color="353736"><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">Types.png</span><span class="informations">1097×310 48.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>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/3/3b60cb06db94ef6e1ba4397bcda9fca908939888.jpeg" data-download-href="https://forum.elixirforum.com/uploads/default/3b60cb06db94ef6e1ba4397bcda9fca908939888" title="Module.png" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/optimized/2X/3/3b60cb06db94ef6e1ba4397bcda9fca908939888_2_690x226.jpeg" alt="Module.png" width="690" height="226" srcset="https://forum.elixirforum.com/uploads/default/optimized/2X/3/3b60cb06db94ef6e1ba4397bcda9fca908939888_2_690x226.jpeg, https://forum.elixirforum.com/uploads/default/optimized/2X/3/3b60cb06db94ef6e1ba4397bcda9fca908939888_2_1035x339.jpeg 1.5x, https://forum.elixirforum.com/uploads/default/optimized/2X/3/3b60cb06db94ef6e1ba4397bcda9fca908939888_2_1380x452.jpeg 2x" data-dominant-color="2F2F2E"><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">Module.png</span><span class="informations">2974×977 160 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><a href="https://github.com/KronicDeth/intellij-elixir/blob/v10.3.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="119030" data-batch-url="/posts/batch_likers">
                        4
                      </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/61">Post #60</a>
	                </div>
	            </div>
              <div id="likers-container-119030" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="119030"
                     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 #60"></div>
  </section>
</div>
    <div class="postbit" id="121417" data-post-id="121417">
  <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-121417-version-1040-1" class="anchor" href="#p-121417-version-1040-1" aria-label="Heading link" rel="nofollow"></a>Version 10.4.0</h1>
<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">Donate</a></p>
<h1><a name="p-121417-thanks-2" class="anchor" href="#p-121417-thanks-2" aria-label="Heading link" rel="nofollow"></a>Thanks</h1>
<ul>
<li>For requesting <code>espec</code> support
<ul>
<li>Don Lettrich (<a href="https://github.com/drl123" rel="noopener nofollow ugc">@drl123</a>)</li>
</ul>
</li>
<li>For reporting missing <code>runReadAction</code>
<ul>
<li>Jim James (<a href="https://github.com/jimjames99" rel="noopener nofollow ugc">@jimjames99</a>)</li>
</ul>
</li>
</ul>
<h1><a name="p-121417-changelog-3" class="anchor" href="#p-121417-changelog-3" aria-label="Heading link" rel="nofollow"></a>Changelog</h1>
<h2><a name="p-121417-v1040-4" class="anchor" href="#p-121417-v1040-4" aria-label="Heading link" rel="nofollow"></a>v10.4.0</h2>
<h3><a name="p-121417-enhancements-5" class="anchor" href="#p-121417-enhancements-5" aria-label="Heading link" rel="nofollow"></a>Enhancements</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1410" rel="noopener nofollow ugc">#1410</a>
<ul>
<li>ESpec Test Runner - <a href="https://github.com/alex-dukhno" rel="noopener nofollow ugc">alex-dukhno</a></li>
<li>ESpec Graphical Test Results - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
</ul>
</li>
</ul>
<h3><a name="p-121417-bug-fixes-6" class="anchor" href="#p-121417-bug-fixes-6" aria-label="Heading link" rel="nofollow"></a>Bug Fixes</h3>
<ul>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1410" rel="noopener nofollow ugc">#1410</a> - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a>
<ul>
<li>Only show Run/Debug ExUnit when <code>*_test.exs</code> files exist.</li>
<li>Only show Run/Debug ESpec when <code>*_spec.exs</code> files exist.</li>
</ul>
</li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1415" rel="noopener nofollow ugc">#1415</a> - Wrap <code>UnqualifiedNoArgumentCall.quote</code> <code>identifier.text</code> in <code>runReadAction</code>. - <a href="https://github.com/KronicDeth" rel="noopener nofollow ugc">@KronicDeth</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1419" rel="noopener nofollow ugc">#1419</a> - Fix typos in <code>CONTRIBUTING.md</code> - <a href="https://github.com/nschulzke" rel="noopener nofollow ugc">@nschulzke</a></li>
<li><a href="https://github.com/KronicDeth/intellij-elixir/pull/1420" rel="noopener nofollow ugc">#1420</a> - Prevent the module attribute annotator from running in EEx files. - <a href="https://github.com/nschulzke" rel="noopener nofollow ugc">@nschulzke</a></li>
</ul>
<h1><a name="p-121417-readme-changes-7" class="anchor" href="#p-121417-readme-changes-7" aria-label="Heading link" rel="nofollow"></a>README Changes</h1>
<h2><a name="p-121417-features-8" class="anchor" href="#p-121417-features-8" aria-label="Heading link" rel="nofollow"></a>Features</h2>
<h3><a name="p-121417-rundebug-configurations-9" class="anchor" href="#p-121417-rundebug-configurations-9" aria-label="Heading link" rel="nofollow"></a>Run/Debug Configurations</h3>
<h4><a name="p-121417-mix-espec-resourcesiconsrunmixtestsvg-10" class="anchor" href="#p-121417-mix-espec-resourcesiconsrunmixtestsvg-10" aria-label="Heading link" rel="nofollow"></a><code>mix espec</code> <img src="/resources/icons/run/mix/test.svg" alt="" role="presentation" width="" height=""></h4>
<p>The <code>mix espec</code> task gets a special type of Run Configuration, <code>Elixir Mix Espec</code>.  Using this Run Configuration type instead, of the basic <code>Elixir Mix</code> Run Configuration will cause the IDE to attach a special formatter to <code>mix espec</code>, so that you get the standard graphical tree of Test Results.</p>
<p>The Run pane will show Test Results.  If there is a compilation error before or during <code>mix espec</code>, it will be shown as a test failure.  If the compilation failure is in a <code>_spec.exs</code> file can it can be inferred from the stacktrace, the compilation error will show up as a test failure in that specific module.</p>
<h5><a name="p-121417-using-graphical-formatter-11" class="anchor" href="#p-121417-using-graphical-formatter-11" aria-label="Heading link" rel="nofollow"></a>Using graphical formatter</h5>
<p><strong>If you override the default formatters you will need to add the following code to your <code>spec_helper.exs</code>.</strong></p>
<p>If you override formatters similar to below</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">ESpec.configure fn(config) -&gt;
  config.formatters ...
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">ESpec.configure fn(config) -&gt;
  config.formatters [
      {ESpec.Formatters.Json, %{out_path: "results.json"}},
      {ESpec.Formatters.Html, %{out_path: "results.html"}},
      {ESpec.Formatters.Doc, %{details: true, out_path: "results.txt"}},
      {ESpec.Formatters.Doc, %{details: true, diff_enabled?: false, out_path: "results-no-diff.txt"}},
      {ESpec.CustomFormatter, %{a: 1, b: 2}},
    ]
end
</code></pre>
<p>Replace them with code that checks for the graphical formatter <code>TeamCityESpecFormatter</code> and uses only it when available.</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">ESpec.configure fn(config) -&gt;
  config.formatters(if Code.ensure_loaded?(TeamCityESpecFormatter) do
    [{TeamCityESpecFormatter, %{}}]
  else
    ...
  end)
end
</code></pre>
<pre data-code-wrap="elixir"><code class="lang-elixir">ESpec.configure fn(config) -&gt;
  config.formatters(if Code.ensure_loaded?(TeamCityESpecFormatter) do
    [{TeamCityESpecFormatter, %{}}]
  else
    [
      {ESpec.Formatters.Json, %{out_path: "results.json"}},
      {ESpec.Formatters.Html, %{out_path: "results.html"}},
      {ESpec.Formatters.Doc, %{details: true, out_path: "results.txt"}},
      {ESpec.Formatters.Doc, %{details: true, diff_enabled?: false, out_path: "results-no-diff.txt"}},
      {ESpec.CustomFormatter, %{a: 1, b: 2}},
    ]
  end)
end
</code></pre>
<h5><a name="p-121417-creating-mix-espce-run-configurations-manually-12" class="anchor" href="#p-121417-creating-mix-espce-run-configurations-manually-12" aria-label="Heading link" rel="nofollow"></a>Creating <code>mix espce</code> Run Configurations Manually</h5>
<ol>
<li>
<p>Run &gt; Edit Configurations…</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/c/c2ae3072c4207969914dd7f4fab3579a7f0b7019.png" data-download-href="https://forum.elixirforum.com/uploads/default/c2ae3072c4207969914dd7f4fab3579a7f0b7019" title="" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/c/c2ae3072c4207969914dd7f4fab3579a7f0b7019.png" alt="" role="presentation" width="334" height="153"><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"></span><span class="informations">334×153 16.5 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>
</li>
<li>
<p>Click +</p>
</li>
<li>
<p>Select “Elixir Mix ESpec”</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/d/d5713bddff4afafcad53612dc6583b28c836f77c.png" data-download-href="https://forum.elixirforum.com/uploads/default/d5713bddff4afafcad53612dc6583b28c836f77c" title="" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/d/d5713bddff4afafcad53612dc6583b28c836f77c.png" alt="" role="presentation" width="208" height="238"><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"></span><span class="informations">208×238 11.5 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>
</li>
<li>
<p>Fill in the “<code>mix espec</code> arguments” with the argument(s) to pass to <code>mix espec</code>.  Normally, this will be list of <code>*_spec.exs</code> files, relative to the “Working directory”.</p>
<p><strong>NOTE: Unlike <code>mix test</code>, <code>mix espec</code> does not support directories as arguments.</strong></p>
</li>
<li>
<p>(Optionally) fill in “<code>elixir</code> arguments” with the arguments to <code>elixir</code> before it runs <code>mix test</code>.</p>
</li>
<li>
<p>(Optionally) fill in "<code>erl</code> arguments"<code>with the arguments to</code>erl<code>before it runs</code>elixir`.</p>
</li>
<li>
<p>Fill in the “Working directory”</p>
<ul>
<li>Type the absolute path to the directory.</li>
<li>Select the path using directory picker by clicking the <code>...</code> button</li>
</ul>
</li>
<li>
<p>(Optionally) click the <code>...</code> button on the “Environment variables” line to add environment variables.</p>
</li>
<li>
<p>Click “OK” to save the Run Configuration and close the dialog</p>
</li>
</ol>
<p>With the Run Configuration defined you can either Run or Debug the <code>mix espec</code>s</p>
<h5><a name="p-121417-running-13" class="anchor" href="#p-121417-running-13" aria-label="Heading link" rel="nofollow"></a>Running</h5>
<ol>
<li>Click the Run arrow in the Toolbar to run the <code>mix test</code> task</li>
<li>The Run pane will open showing the Test Results<br>
<div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/f/f7a7a77ba46891ddc376096c0e0a33af1ef173e4.png" data-download-href="https://forum.elixirforum.com/uploads/default/f7a7a77ba46891ddc376096c0e0a33af1ef173e4" title="" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/f/f7a7a77ba46891ddc376096c0e0a33af1ef173e4.png" alt="" role="presentation" width="367" height="274"><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"></span><span class="informations">367×274 14 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>
</ol>
<h5><a name="p-121417-debugging-14" class="anchor" href="#p-121417-debugging-14" aria-label="Heading link" rel="nofollow"></a>Debugging</h5>
<ol>
<li>(Optionally) before debugging, customize the modules that will be interpreted.
<ol>
<li>Run &gt; Edit Configurations…</li>
<li>Click the “Interpreted Modules” tab next to default “Configuration” tab.</li>
<li>Enable/Disable “Inherit Application Module Filters”.  Will change the Module Filters show in the below “Do not interpreter modules matching patterns” list.</li>
<li>Uncheck any inherited module filters that you would rather be interpreted and therefore debuggable</li>
<li>Click + to add module filters that are specific to this configuration.  This can be useful if you know interpreting a specific module in your project’s dependencies or project leads to too much slowdown when debugging or causes the debugger to hang/crash.</li>
<li>Click - to remove configuration-specific module filters added with +.  Inherited module filters cannot be removed with -, they can only be disabled by unchecking.</li>
</ol>
</li>
<li>For how to use the debugger, including how to set breakpoints see the <a href="#debugger" rel="nofollow">Debugger</a> section.</li>
<li>Click the Debug bug in the Toolbar to debug the <code>mix test</code>s</li>
</ol>
<p>While you can create <code>Elixir Mix ESpec</code> run configurations manually using the <code>Run &gt; Edit Configurations...</code> menu, it is probably more convenient to use the context menu.</p>
<h5><a name="p-121417-creating-mix-espec-run-configurations-from-context-15" class="anchor" href="#p-121417-creating-mix-espec-run-configurations-from-context-15" aria-label="Heading link" rel="nofollow"></a>Creating <code>mix espec</code> Run Configurations from context</h5>
<p>The context menu must know that the the directory, file, or line you are right-clicking is a test.  It does this by checking if the current directory or an ancestor is marked as a Test Sources Root and contains or is a <code>*_spec.exs</code> file(s)</p>
<ol>
<li>In the Project pane, ensure your OTP application’s <code>espec</code> directory is marked as a Test Sources Root</li>
<li>Check if the <code>espec</code> directory is green.  If it is, it is likely a Test Sources Root.  This color may differ in different themes, so to be sure you can check the context menu</li>
<li>Right-click the <code>test</code> directory.</li>
<li>Hover over “Mark Directory As &gt;”
<ul>
<li>
<p>If “Unmark as Test Sources Root” is shown, then the directory is already configured correctly, and create from context will work.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/1/1a62d984ca9c1d501eeba7aa29ddcfcad8c2f352.png" data-download-href="https://forum.elixirforum.com/uploads/default/1a62d984ca9c1d501eeba7aa29ddcfcad8c2f352" title="" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/1/1a62d984ca9c1d501eeba7aa29ddcfcad8c2f352.png" alt="" role="presentation" width="678" height="787"><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"></span><span class="informations">678×787 93 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>
</li>
<li>
<p>If “Test Sources Root” is shown, then the directory need to be configured by clicking that entry</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/d/dc59eabe820d465de096399cb63eba30a800a986.png" data-download-href="https://forum.elixirforum.com/uploads/default/dc59eabe820d465de096399cb63eba30a800a986" title="" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/d/dc59eabe820d465de096399cb63eba30a800a986.png" alt="" role="presentation" width="613" height="702"><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"></span><span class="informations">613×702 71.8 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>
</li>
</ul>
</li>
</ol>
<h6><a name="p-121417-creatingrunning-mix-espec-run-configurations-from-directory-16" class="anchor" href="#p-121417-creatingrunning-mix-espec-run-configurations-from-directory-16" aria-label="Heading link" rel="nofollow"></a>Creating/Running <code>mix espec</code> Run Configurations from directory</h6>
<ol>
<li>
<p>Right-click the directory in the Project pane</p>
</li>
<li>
<p>Click “Run Mix ExUnit”, which will both create the Run Configuration and Run it.</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/4/4e750f6a9860a00593135cd136750c64dcfaf68e.png" data-download-href="https://forum.elixirforum.com/uploads/default/4e750f6a9860a00593135cd136750c64dcfaf68e" title="" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/4/4e750f6a9860a00593135cd136750c64dcfaf68e.png" alt="" role="presentation" width="404" height="467"><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"></span><span class="informations">404×467 33.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><p></p>
<ul>
<li>If you want to only create the Run Configuration, select “Create Mix ESpec” instead</li>
</ul>
</li>
</ol>
<p>Alternatively, you can use keyboard shortcuts</p>
<ol>
<li>Select the directory in the Project pane.</li>
<li><code>Ctrl+Shift+R</code> will create the Run Configuration and Run it.</li>
</ol>
<h6><a name="p-121417-creatingrunning-mix-espec-run-configurations-from-file-17" class="anchor" href="#p-121417-creatingrunning-mix-espec-run-configurations-from-file-17" aria-label="Heading link" rel="nofollow"></a>Creating/Running <code>mix espec</code> Run Configurations from file</h6>
<ol>
<li>Right-click the file in the Project pane</li>
<li>Click “Run Mix ESpec”, which will both create the Run Configuration and Run it.
<ul>
<li>If you want to only create the Run Configuration, select “Create Mix ESpec” instead</li>
</ul>
</li>
</ol>
<p>Alternatively, you can use keyboard shortcuts</p>
<ol>
<li>Select the directory in the Project pane.</li>
<li><code>Ctrl+Shift+R</code> will create the Run Configuration and Run it.</li>
</ol>
<p>Finally, you can use the editor tabs</p>
<ol>
<li>
<p>Right-click the editor tab for the test file you want to run</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/4/43f0464bdb1a19d3110f5491271945b3df133da4.png" data-download-href="https://forum.elixirforum.com/uploads/default/43f0464bdb1a19d3110f5491271945b3df133da4" title="" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/4/43f0464bdb1a19d3110f5491271945b3df133da4.png" alt="" role="presentation" width="455" height="473"><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"></span><span class="informations">455×473 37 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>
</li>
<li>
<p>Click “Run Mix ESpec”, which will both create the Run Configuration and Run it.</p>
<ul>
<li>If you want to only create the Run Configuration, select “Create Mix ESpec” instead</li>
</ul>
</li>
</ol>
<h6><a name="p-121417-creatingrunning-mix-espec-run-configurations-from-line-18" class="anchor" href="#p-121417-creatingrunning-mix-espec-run-configurations-from-line-18" aria-label="Heading link" rel="nofollow"></a>Creating/Running <code>mix espec</code> Run Configurations from line</h6>
<p>If you want to be able to run a single test, you can create a Run Configuration for a line in that test</p>
<ol>
<li>
<p>Right-click a line in the test file</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/7/722b8ee861244928d78b99d62e3de3fee30f4a22.png" data-download-href="https://forum.elixirforum.com/uploads/default/722b8ee861244928d78b99d62e3de3fee30f4a22" title="" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/7/722b8ee861244928d78b99d62e3de3fee30f4a22.png" alt="" role="presentation" width="576" height="333"><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"></span><span class="informations">576×333 39.1 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>
</li>
<li>
<p>Click “Run Mix ESpec”, which will both create the Run Configuration and Run it.</p>
<ul>
<li>If you want to only create the Run Configuration, select “Create Mix ESpec” instead</li>
</ul>
</li>
</ol>
<p>Alternatively, you can use keyboard shortcuts</p>
<ol>
<li>Place the cursor on the line you want to test</li>
<li><code>Ctrl+Shift+R</code> will create the Run Configuration and Run it.</li>
</ol>
<p><a href="https://github.com/KronicDeth/intellij-elixir/blob/v10.4.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="121417" 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/62">Post #61</a>
	                </div>
	            </div>
              <div id="likers-container-121417" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="121417"
                     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 #61"></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=7">Load more posts</a>
</div></template></turbo-stream>