# Elixir IDE discussion

**URL:** <https://forum.elixirforum.com/t/elixir-ide-discussion/7295>\
**Category:** Dev Env & Tools\
**Tags:** code-editors\
**Created:** [July 28, 2017, 5:31pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295 "2017-07-28T17:31:37Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![OvermindDL1](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/32/2677_2.png) [@OvermindDL1](https://forum.elixirforum.com/u/OvermindDL1)\
**Post date:** [July 28, 2017, 2:38pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/1 "2017-07-28T14:38:55Z")

</div>

/an-aside

> [@Benefits of elixir other than OTP](https://forum.elixirforum.com/t/benefits-of-elixir-other-than-otp/7260/5):
>
> Examples: [Screen Recording 2017-07-19...](https://cl.ly/lclg), [Screen Recording 2017-07-19...](https://cl.ly/ldFW)

Why is it not completing the module name too? Atom’s does. Also why does it not fill in the arguments with defaults that you can `<tab>` between like in Atom as well? Can you ctrl+click (or some other hotkey) to go to the definition of a function call or a module as well?

_/me has tried VSCode a few times and not been impressed as of yet, but it’s been a while and is always up for replacing Atom if finding at least feature-parity_

I keep trying intellij’s elixir, but intellij is just soooooo sloooooooooow… ☹

---

<div class="post-metadata">

**Author:** ![OvermindDL1](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/32/2677_2.png) [@OvermindDL1](https://forum.elixirforum.com/u/OvermindDL1)\
**Post date:** [July 28, 2017, 2:59pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/2 "2017-07-28T14:59:09Z")

</div>

> [@Benefits of elixir other than OTP](https://forum.elixirforum.com/t/benefits-of-elixir-other-than-otp/7260/9):
>
> Not only that IntelliJ is/feels faster, it also looks good even if one does not use the default Win XP colortheme…

I’ve not tried anything eclipse with elixir so I could not say, but I do know at least that intellij itself is so slow, even scrolling is laggy. ^.^;

---

<div class="post-metadata">

**Author:** ![brightball](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/brightball/32/17192_2.png) [@brightball](https://forum.elixirforum.com/u/brightball)\
**Post date:** [July 28, 2017, 3:31pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/3 "2017-07-28T15:31:49Z")

</div>

This doesn’t make sense to me.

IntelliJ gained popularity almost entirely because it was so much faster than the alternatives. I started using it back in 2005 when I was doing Java work and Eclipse or Netbeans were the other viable options. They were both so slow they were unusable and would eventually bring my entire machine to a crawl.

IntelliJ by contrast was so fast I couldn’t believe it and it’s always continued to be fast. I’ve used RubyMine heavily over the last few years and just recently switched to IntelliJ Ultimate because I’ve got so many languages plugged in that it just made more sense…but it’s been zippy every step of the way.

The only time I ever had a performance issue was after I switched to Fedora I noticed that startup times were around 20 seconds long and it turned out to be because of lack of a hostname reference in /etc/hosts. Soon as that was taken care of, everything was great.

---

<div class="post-metadata">

**Author:** ![OvermindDL1](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/32/2677_2.png) [@OvermindDL1](https://forum.elixirforum.com/u/OvermindDL1)\
**Post date:** [July 28, 2017, 3:49pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/4 "2017-07-28T15:49:33Z")

</div>

> [@Benefits of elixir other than OTP](https://forum.elixirforum.com/t/benefits-of-elixir-other-than-otp/7260/12):
>
> IntelliJ gained popularity almost entirely because it was so much faster than the alternatives. I started using it back in 2005 when I was doing Java work and Eclipse or Netbeans were the other viable options. They were both so slow they were unusable and would eventually bring my entire machine to a crawl.

Oh it is faster than Netbeans and Eclipse both as a Java IDE. However ‘as an IDE’ compared to other IDE’s (I like to compare it to KDevelop, vim, and emacs, and lately atom as well, which are all ones that I use pretty heavily) and it is dog-slow in comparison to those. So yes, in comparison to other Java IDE’s, it is fast, but it is not fast in the overall IDE ecosystem. ^.^

---

<div class="post-metadata">

**Author:** ![brightball](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/brightball/32/17192_2.png) [@brightball](https://forum.elixirforum.com/u/brightball)\
**Post date:** [July 28, 2017, 4:03pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/5 "2017-07-28T16:03:26Z")

</div>

I meant back in 2005 it was already fast and has gotten faster since. It’s still faster than any alternative with even remotely equivalent functionality. Usually the slowest part is letting it finish indexing your codebase on startup which will vary based on size. Unless you are opening/closing the entire IDE constantly I’m extremely skeptical of poor performance claims.

---

<div class="post-metadata">

**Author:** ![OvermindDL1](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/32/2677_2.png) [@OvermindDL1](https://forum.elixirforum.com/u/OvermindDL1)\
**Post date:** [July 28, 2017, 4:19pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/6 "2017-07-28T16:19:57Z")

</div>

> [@Benefits of elixir other than OTP](https://forum.elixirforum.com/t/benefits-of-elixir-other-than-otp/7260/14):
>
> I meant back in 2005 it was already fast and has gotten faster since. It’s still faster than any alternative with even remotely equivalent functionality. Usually the slowest part is letting it finish indexing your codebase on startup which will vary based on size. Unless you are opening/closing the entire IDE constantly I’m extremely skeptical of poor performance claims.

Well what I experience most often are 2 big things:

1. Random freezes every few minutes where it freezes for 5-15 seconds when heavily using it.
2. Anytime there is any decent amount of code on the screen and I scroll then it does this low-FPS jumping movement that makes me a bit motion sick.

Both of which look very bad on it.

Compared to KDevelop, which I find an absolute king of IDE’s (at least for C++). It’s intellisense is better, faster, more detailed (I can even go through multiple levels of macro nesting and see each step unfold), and better yet is it never freezes or hurgurks with low-fps when scrolling. ^.^

Even Atom does not have that slow scrolling issue (although it does freeze on occasion, but those are more around freezing for 1 second every few minutes, which is more dealable).

And I tend to keep my IDE’s (KDevelop, emacs, vim, atom, intellij) running for weeks at a time without reloading, so no reloading issue there. ^.^

Let’s see, atom has been up for 39 days, 2 hours, and 23 minutes.

This computer has been up for… er… 509 days, 17 hours, and 53 minutes, I should probably reboot… (I’d like to see my work computer be up for this long… ^.^).

But overall the slowest part of intellij is easily the rendering performance, it is pretty abysmal. The rest of it seems pretty fast though, _especially_ compared to other IDE’s built in Java.

---

<div class="post-metadata">

**Author:** ![brightball](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/brightball/32/17192_2.png) [@brightball](https://forum.elixirforum.com/u/brightball)\
**Post date:** [July 28, 2017, 4:24pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/7 "2017-07-28T16:24:15Z")

</div>

That’s really strange. Never experienced anything like it.

Atom on the other hand, just kills my computer if it’s left open overnight.

---

<div class="post-metadata">

**Author:** ![OvermindDL1](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/32/2677_2.png) [@OvermindDL1](https://forum.elixirforum.com/u/OvermindDL1)\
**Post date:** [July 28, 2017, 4:31pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/8 "2017-07-28T16:31:55Z")

</div>

> [@Benefits of elixir other than OTP](https://forum.elixirforum.com/t/benefits-of-elixir-other-than-otp/7260/16):
>
> That’s really strange. Never experienced anything like it.

Probably because Atom uses GPU-accelerated rendering where IntelliJ does all Java (with some C++ bindings) rendering, thus all on CPU. Intellij’s ‘rendering’ performance problems would likely be solved if they used a decent GUI toolkit (like QT5) instead of the horror amalgamation it uses currently (a _weird_ mix of C++, Java, and some really low level bindings last I looked, all to avoid Swing).

> [@Benefits of elixir other than OTP](https://forum.elixirforum.com/t/benefits-of-elixir-other-than-otp/7260/16):
>
> Atom on the other hand, just kills my computer if it’s left open overnight.

If so you should submit a bug report, they have been really fierce on performance bugs the past year and things like it dying become priority 1 bugs. Are you sure you do not have a bad plugin installed? It has some great debugging tools built in.

For note, KDevelop uses QT. ^.^

---

<div class="post-metadata">

**Author:** ![brightball](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/brightball/32/17192_2.png) [@brightball](https://forum.elixirforum.com/u/brightball)\
**Post date:** [July 28, 2017, 4:34pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/9 "2017-07-28T16:34:49Z")

</div>

I’ll give it another look. Ended up just using Sublime for a text editor though.

---

<div class="post-metadata">

**Author:** ![seanwash](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/seanwash/32/1847_2.png) [@seanwash](https://forum.elixirforum.com/u/seanwash)\
**Post date:** [July 28, 2017, 5:20pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/10 "2017-07-28T17:20:23Z")

</div>

Good questions! I’ve never tried Atom’s elixir plugins, I’ll give them a shot today!

---

<div class="post-metadata">

**Author:** ![law](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/law/32/5172_2.png) [@law](https://forum.elixirforum.com/u/law)\
**Post date:** [July 28, 2017, 5:31pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/11 "2017-07-28T17:31:37Z")

</div>

I switched from Intellij to Atom when we switched from Ruby to Elixir because of the same constant freezing issues on osx. I found my computer just runs better without rubymine running. Maybe some of the differences people are seeing are due to Windows vs OSX versions?

Atom’s not perfect either - not having an Elixir formatter is an annoyance, and I can’t figure out how to select a string in my iex window, but on the whole it’s a much smoother experience.

It feels like this discussion has derailed a bit, perhaps the IDE discussion should be split into a new thread?

---

<div class="post-metadata">

**Author:** ![OvermindDL1](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/32/2677_2.png) [@OvermindDL1](https://forum.elixirforum.com/u/OvermindDL1)\
**Post date:** [July 28, 2017, 5:55pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/12 "2017-07-28T17:55:50Z")

</div>

> [@law](#):
>
> It feels like this discussion has derailed a bit, perhaps the IDE discussion should be split into a new thread?

Very true, done. ^.^

---

<div class="post-metadata">

**Author:** ![seanwash](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/seanwash/32/1847_2.png) [@seanwash](https://forum.elixirforum.com/u/seanwash)\
**Post date:** [July 28, 2017, 6:42pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/13 "2017-07-28T18:42:53Z")

</div>

Thanks! I was going to suggest the same thing 🙂

I’ve been using Atom most of the morning and the autocomplete is pretty good! Are there any customizations you’ve made, or are you rolling with stock elixir extensions?

---

<div class="post-metadata">

**Author:** ![kwando](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kwando/32/4092_2.png) [@kwando](https://forum.elixirforum.com/u/kwando)\
**Post date:** [July 28, 2017, 6:44pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/14 "2017-07-28T18:44:19Z")

</div>

Bumping up the maximum allowed memory for the Intellij JVM usually makes it perform better. JVM loves chewing memory.

---

<div class="post-metadata">

**Author:** ![axelson](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/axelson/32/26351_2.png) [@axelson](https://forum.elixirforum.com/u/axelson)\
**Post date:** [July 28, 2017, 7:27pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/15 "2017-07-28T19:27:13Z")

</div>

Does the Atom package work with umbrella projects? Autocompletion isn’t currently working for me.

---

<div class="post-metadata">

**Author:** ![sztosz](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/sztosz/32/1251_2.png) [@sztosz](https://forum.elixirforum.com/u/sztosz)\
**Post date:** [July 28, 2017, 7:44pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/16 "2017-07-28T19:44:16Z")

</div>

I tried Atom, but it’s really slow for me, and i have no idea how to change this stupid default behaviour of cmd+click on osx which put’s another cursor when it’s clicked. There seems to be, sadly, no way to redefine this to something actually useful.

I use daily Rubymine for work, and the only slowdown I see is when I open a new project that was never yet indexed by Rubymine, it takes teens of seconds for bigger projects, but then works without any slowdown. And it’s go to definition, or go to usage has no match actually, and let me navigate code very swiftly. That is why I tried IDEA for Elixir and I am really satisfied with what it offers. I tried vs-code with elixir plugin too, and it was OK too, but IDEA plugin made by @KronicDeth is simply better.

---

<div class="post-metadata">

**Author:** ![PatNowak](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/patnowak/32/31275_2.png) [@PatNowak](https://forum.elixirforum.com/u/PatNowak)\
**Post date:** [July 28, 2017, 7:50pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/17 "2017-07-28T19:50:36Z")

</div>

I tried to use IntelliJ’s plugin but it wasn’t that good as I expected (issues with autocompletion and coloring syntax). Atom is a bit crashy, but for me it’s the best one with Elixir & Phoenix plugins.

---

<div class="post-metadata">

**Author:** ![law](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/law/32/5172_2.png) [@law](https://forum.elixirforum.com/u/law)\
**Post date:** [July 28, 2017, 8:47pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/18 "2017-07-28T20:47:31Z")

</div>

The Autocomplete items list seems to mostly update on compile, so I try to compile often. The build-elixir package is good for that. Compile on save was a bad idea for me though, it was very disruptive.

I also use linter-elixir-credo and atom-elixir.

---

<div class="post-metadata">

**Author:** ![ryh](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ryh/32/13063_2.png) [@ryh](https://forum.elixirforum.com/u/ryh)\
**Post date:** [July 28, 2017, 9:04pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/19 "2017-07-28T21:04:20Z")

</div>

Emacs with Alchemist mode. I’ve tried the other editors, but the key chords in Emacs are what I’m comfortable with.

I wanted to have a cool text editor with a cool theme, but I’ve just settled down with Emacs with the default theme and a few choice customizations 🙂

---

<div class="post-metadata">

**Author:** ![OvermindDL1](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/32/2677_2.png) [@OvermindDL1](https://forum.elixirforum.com/u/OvermindDL1)\
**Post date:** [July 28, 2017, 9:40pm UTC](https://forum.elixirforum.com/t/elixir-ide-discussion/7295/20 "2017-07-28T21:40:40Z")

</div>

> [@seanwash](#):
>
> I’ve been using Atom most of the morning and the autocomplete is pretty good! Are there any customizations you’ve made, or are you rolling with stock elixir extensions?

Hmm, I have a lot of extensions, let me list the ones that are obviously elixir related or buff it (I might be missing some):

- atom-autocomplete-erlang
- atom-elixir
- atom-elixir-playground
- auto-complete-elixir
- autocomplete-erlang
- build-elixir
- busy-signal
- elixir-cmd
- elixir-pry
- file-icons
- git-status
- git-time-machine
- highlight-selected
- iex
- intentions
- language-elixir
- language-erlang
- linter
- linter-elixir-credo
- linter-elixirc
- linter-ui-default
- minimap
- minimap-bookmarks
- minimap-cursorline
- minimap-find-and-replace
- minimap-git-diff
- minimap-highlight-selected
- minimap-linter
- minimap-pigments
- minimap-selection
- minimap-titles
- phoenix-elixir-snippets
- tree-view-git-status

And an absolute _TON_ more for things like ocaml, javascript, ton of base file types, etc… etc… I have many hundreds of packages installed. ^.^;

> [@kwando](#):
>
> Bumping up the maximum allowed memory for the Intellij JVM usually makes it perform better. JVM loves chewing memory.

I very much had to do that with mine when I edited a few java projects last, kept crashing until I did. Also not a professional indicator. ^.^;

> [@axelson](#):
>
> Does the Atom package work with umbrella projects? Autocompletion isn’t currently working for me.

Not tried, I don’t use umbrella’s. I prefer making individual distinct libraries then a ‘mega’ project that just depends on all of those (with little to no code in it). It’s a pattern I’ve used since the erlang days, but it works wonderfully with it.

> [@sztosz](#):
>
> I tried Atom, but it’s really slow for me, and i have no idea how to change this stupid default behaviour of cmd+click on osx which put’s another cursor when it’s clicked. There seems to be, sadly, no way to redefine this to something actually useful.

That is configurable. You can hit `Ctrl+.` to turn on the key resolver, then do ‘something’ and it pops up at the bottom what was bound and what happened, and you can just rebind those keys in your settings or so. My `Ctrl+Click`, since I use the hyperclick package (and lots of addons, I forgot to list it above), will open up the definition file for whatever I clicked on.

> [@sztosz](#):
>
> I use daily Rubymine for work, and the only slowdown I see is when I open a new project that was never yet indexed by Rubymine, it takes teens of seconds for bigger projects, but then works without any slowdown. And it’s go to definition, or go to usage has no match actually, and let me navigate code very swiftly. That is why I tried IDEA for Elixir and I am really satisfied with what it offers. I tried vs-code with elixir plugin too, and it was OK too, but IDEA plugin made by @KronicDeth is simply better.

This is something a lot of people keep saying is the indexing, but I never noticed that slowing down Intellij, it ran in the background just fine without slowing anything down (intellisense did not work until it was done, but eh) so that was actually a slow-down that I never experienced with Intellij, it’s background processing seems just fine.

> [@PatNowak](#):
>
> I tried to use IntelliJ’s plugin but it wasn’t that good as I expected (issues with autocompletion and coloring syntax). Atom is a bit crashy, but for me it’s the best one with Elixir & Phoenix plugins.

Post the crash logs. It should absolutely not crash, they are hard on that currently.

> [@law](#):
>
> The Autocomplete items list seems to mostly update on compile, so I try to compile often. The build-elixir package is good for that. Compile on save was a bad idea for me though, it was very disruptive.
> 
> I also use linter-elixir-credo and atom-elixir.

I like compile-on-save, I use a linter that lints that along with credo’s linter. What is disruptive?

> [@ryh](#):
>
> Emacs with Alchemist mode. I’ve tried the other editors, but the key chords in Emacs are what I’m comfortable with.
> 
> I wanted to have a cool text editor with a cool theme, but I’ve just settled down with Emacs with the default theme and a few choice customizations 🙂

Heh, I use elixir via emacs a lot too, it is very nice, just lacks a few features I use too often in atom. ^.^;

[Next page](https://forum.elixirforum.com/t/elixir-ide-discussion/7295.md?page=2)
