IntelliJ Elixir 10.5.0
-
The correct home path for
kiex
is~/.kiex/elixirs/elixir-VERSION/lib/elixir
as that contains the truelib
andbin
directory, but users may select other directories by mistake, so doing the following adjustments: -
Adjust
bin
home path tolib/elixir
. -
Adjust
elixirs/elixir-VERSION
home path toelixirs/elixir-VERSION/lib/elixir
. -
In RubyMine, attach OTP applications as separate projects with Elixir facets instead of directly creating
ELIXIR_MODULE
modules inDirectoryConfigurator
. This matches the manual steps of opening the OTP apps as separate directories after opening the root of the project.- Mark directories when adding facet
- Sync libraries when adding facet or attaching to root project. Ensures External Libraries show up for all OTP applications.
-
Convert Small IDE projects with
ELIXIR_MODULE
s:-
Remove
ELIXIR_MODULE
*.iml
files -
Remove
ELIXIR_MODULE
entries root project’smodules.xml
file. -
Lack of modules in project in
doOpenProject
will triggerDirectoryProjectConfigurator
s to be run, which will setup the project and runDirectoryConfigurator
to attach theapps
OTP apps and Elixir facets.- Only support automatic attaching multiple OTP apps as separate projects in Rubymine. In IntelliJ normal support for multiple Modules in one Project still works.
-
Remove
-
Increase suspect
nameSet
size to15
to supportgeo
.geo
has 13String.Chars
implementations. -
Check that HomePath has
ebin
paths when validation. Prevents selecting false HomePaths forkiex
. -
Adding missing ESpec template. When reviewing #1410 I missed that the template wasn’t in
resources
. 🤦♂️ -
Ignore
targets
when calculatingDep
path. -
Ignore
organization
when calculatingDep
path. -
Get view provider document in read action.
-
Support
rebar.config
deps that are name only. -
Always use
containingFile
forQualifiableAlias
maxScope
forgetReference
. Prevents cache capturingmaxScope
, which can vary based on invocation. -
Create new project before attaching it in Small IDEs. When attaching a directory to a project during startup, saving is disallowed, so the attached directory only has a
workspace.xml
in its.idea
when the attach is attempted. Attaching requires the.idea/*.iml
Module file, so the attaching fails, saying the directory is an unsupported format.Experimentation showed that manually attaching the directory also did not work, but opening the directory in a separate window, then opening and attaching it again would make the directory have the full project files. To mimic this manual process:
-
The internals of
doOpenProject
are copied - A save of the project files is forced, bypassing the normal “startup” save blocker
- The project is attached to the root project. Tested to work when upgrading from 10.4.0 to 10.5.0-pre in Rubymine when no project was already open.
-
The internals of
-
Check if project can be attached instead of if RubyMine Although GoLand supports attaching projects, it doesn’t work for non-Go projects, so it is also excluded. How the support appears in each non-IntelliJ IDEA is shown below:
IDE Works? Android Studio YES Android Studio is built on top of IntelliJ, so it has full multi-Module support. It is not Small IDE. CLion NO No Attach to Project support to multiple module support. DataGrip No DataGrip doesn’t have a Project View and doesn’t support Attach to Project. You can still run tests if you directly open the file. GoLand NO Modules show up, but independent projects are not attached as in other Small IDEs, so disabled. In general, the Go settings, like Test Runners always win, so it is recommended to not use GoLand at all for Elixir development. PHPStorm YES The projects are listed in Directories. The Languages & Frameworks > Elixir shows all 3 projects. Right-clicking on the marked Test directory will not show the Elixir Run Configuration, Python ones win, but subdirectories and *_test.exs
will show up in the context menu.PyCharm YES The root project is listed in Project. app/*
projects are listed listed as Project Dependencies of the root Project. The Languages & Frameworks > Elixir shows all 3 projects. Right-clicking on the marked Test directory will not show the Elixir Run Configuration, Python ones win, but subdirectories and*_test.exs
will show up in the context menu.Rider No Solution system is separate from Project system. Rubymine YES The projects are listed in Project Structure. The Languages & Frameworks > Elixir shows all 3 projects. Right-clicking on the marked Test directory will not show the Elixir Run Configuration, Python ones win, but subdirectories and *_test.exs
will show up in the context menu.WebStorm NO No Attach to Project support or multiple module support. -
Don’t count Android Studio as a Small IDE. It includes Project Structure menu with multiple-language, multiple-Module per Project support from IntelliJ.
Read next Version 1.0.4 of external_state released