Atom Code Editor - General Discussion, Blog Posts, Wiki

Popular Elixir Packages

List of popular Atom.io Elixir Packages. These can be installed via atom’s package center or a command line with apm install [package]:

atom-elixir

atom-elixir-playground

autocomplete-elixir

(@OvermindDL1: love it)

Config:

  • Atom must be opened at a level with a mix.exs file - either umbrella or an application. If opened in a higher repo folder, autocomplete will not work.
  • Be sure to set elixir file path and erlang directory path in the package settings.

build-elixir

elixir-cmd

language-elixir

linter-elixir-credo

(@OvermindDL1: love it)

  • Enables linting as you type(!)
  • TIP: If you are using umbrella application, then a single .credo.exs config file can be placed in the umbrella app’s config folder.

phoenix-elixir-snippets

This contains snippets not only for the phoenix *.ex files (controllers, views, etc.), but also for templates. Very handy if you don’t want to keep typing <%= for ... %> and the like :smile:

phoenix-migrations-navigation-atom

This allows you to quickly open the most recent migration in a phoenix app.

  • Must have Atom opened with the phoenix app at the root.

Related Threads

4 Likes

The mods (or people promoted to Level 4 I think) can split topics too, but since we cannot, here is my relevant post from there. :slight_smile:

I have installed:

  • atom-elixir
  • atom-elixir-playground (I’m not sure if I’ve ever touched this one yet though)
  • autocomplete-elixir (love it)
  • build-elixir
  • elixir-cmd
  • language-elixir
  • linter-elixir-credo (love it)
  • phoenix-elixir-snippets

I’m not entirely sure all which commands and functionality I use from which, but I like my work-flow.

EDIT: I also use Elm, and the atom-plugins for elm well out-do that for other IDE’s.

3 Likes

I’m still new to Elixir (three months now), and here is what I have tried so far with Atom:
language-elixir (obvious ;))
autocomplete-elixir
atom-elixir

I haven’t tried the linter-elixir-credo yet, but when I do incorporate credo I think I’ll give it a go.

My primary goal is to get a solid intellisense experience (at a minimum) and I simply cannot get it going.

Here is a screenshot using autocomplete-elixir:

It does not pick up the functions, but it does pick up the module scopes. This is a common occurrence (and yes, it does already compile).

Lately with atom-elixir, I can’t even get the autocomplete to pop up.

I already have one issue filed at both atom-elixir and autocomplete-elixir (regarding different issues), but as I’ve already stated: each one is developed and maintained by a single person.

1 Like

My intention here is not to turn this into a troubleshooting thread though (although that would be fine by me if we could resolve it). But if it helps others get their stack up and going, I’m all for it.

I really think that this is a key blocker for the language, which as I’ve already stated a number of times, is superlative.

1 Like

Hmm, it seems to work fine for me (not perfectly instant-appearing, though this is a quite a large project): https://overminddl1.com/screenshots/work/Atom-Elixir-0.gif
Example Usage

I’m just typing random stuff, occasionally have to stop to think of what to type next but it lets you see what is appearing at least. ^.^

2 Likes

Yes, that looks pretty good!

Now instead of troubleshooting, let’s look a little meta here. Maybe this is an environment problem. This day and age, with high release-cycle (agile) methodologies, we’re looking at multiple concurrent versions possibly. Also, the execution environment is diverse as well…multiple OSs, each of those with multiple versions.

So, no matter what the particular issue with my setup is, the point is that to increase productivity, something as essential as the developing environment (IMO of course) needs to be maintained and cared for to attract a broader target audience. Right now, and in the past, Erlang is niche for gurus with a focus on availability and concurrency. Elixir, as far as I can tell, is placing a higher emphasis on approachability with a broader audience: Solid documentation (:heart:), especially solid getting started documentation, great community tools (active and robust elixir forum + slack for new users, mailing list + IRC for existing gurus), superlative user-facing support via the best GitHub issue tracking I’ve ever seen, and a well established syntax (albeit Ruby, which I did not come from that environment).

Ok, I’ve said my piece on that stuff enough I think. As for this particular problem (backing away from the meta), I will probably file an issue here in the near future and hope that it gets responded to at some point in time in the future.

1 Like

Hah. I was looking into one of the other packages you mentioned, elixir-cmd, and at the bottom of its readme it has:

it is active when the project has a mix file in its root directory

At some point in the past, I started using Atom at the base directory of my repo and not the umbrella app. This has brought back the functions. I wonder if atom-elixir works now.

Edit: Submitted a PR for the readme.

2 Likes

Heh, yeah almost all atom language packages work by assuming you open the project directory as the root, almost none can work otherwise. :stuck_out_tongue_winking_eye:

2 Likes

Indeed. But should a newcomer to the ecosystem have to have that kind of special knowledge? I only ask in reference to ease the onboarding process. It’s always obvious once you know the answer!

2 Likes

Hi all, I’ve made the first post a Wiki for you - anyone at Trust Level 1 or higher can add/edit info into it :023:

@ibgib, as the wiki owner, please keep any eye on things (help prevent spammers adding links etc). If at any point you can no longer oversee it let us know and we can assign someone else to it - thanks :slight_smile:

Made an edit to add a package list to the wiki-post, feel free to add more (though I think I’m using them all?) ^.^

EDIT: Hmm, think adding my image might be useful to show it off on the first post? Maybe one of the package readme animations might be better?

Up to you :023:

Here’s our Spacemacs Wiki if you fancy seeing what we’ve done there :slight_smile:

@OvermindDL1 I’ve played briefly with credo, but I’ve not used the atom plugin at all. Would you mind adding some setup for how you config & use this? (linter-elixir-credo)

I just use a standard .credo.exs file in my root project directory to configure it, have it part of my project, installed the atom addon, not a whole lot to it, it is just a plugin into the linter package.

1 Like

Is anyone having issues with EEx syntax highlighting? Mine doesn’t highlight any HTML.

@sotojuan Mine has highlighting like this. I am supposing it (yours) has an .eex extension? Also, which packages do you have installed?

Yeah IDK why mine isn’t working: http://i.imgur.com/WlneVYd.png

Using latest atom (1.9.9), latest language-elixir, latest atom-elixir. Might try reinstalling them.

I notice in that screenshot that you don’t have a mix file in the root of the atom window. I’ve found many packages require a mix file in the root in order to work.

I finally ended up installing credo recently, and these simple notes helped. The live linting is extremely fast!

1 Like

The error was that I used .eex and not .html.eex! :slight_smile: The syntax highlighter likes that better :sweat_smile:

1 Like