# \[ANN\] Emacs Linter for Julia

**URL:** <https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384>\
**Category:** Community\
**Tags:** lint\
**Created:** [June 21, 2017, 11:08am UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384 "2017-06-21T11:08:11Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![gdkrmr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdkrmr/32/2791_2.png) [@gdkrmr](https://discourse.julialang.org/u/gdkrmr)\
**Post date:** [June 21, 2017, 11:08am UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/1 "2017-06-21T11:08:11Z")

</div>

[https://github.com/gdkrmr/flycheck-julia](https://github.com/gdkrmr/flycheck-julia)

Finally there is a Julia linter for Emacs.

Because it is my first `elisp` project it still has a lot of rough edges and feedback/help is appreciated, bug reports on github.

Installation from MELPA or MELPA stable, the package name is `flycheck-julia`!!

Cheers,  
Guido

Update: On MELPA now!

---

<div class="post-metadata">

**Author:** ![gdkrmr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdkrmr/32/2791_2.png) [@gdkrmr](https://discourse.julialang.org/u/gdkrmr)\
**Post date:** [June 21, 2017, 4:07pm UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/2 "2017-06-21T16:07:06Z")

</div>

No Emacs users, maybe everyone is at JuliaCon? Someone should start a poll on editor usage for Julia.

---

<div class="post-metadata">

**Author:** ![Paethon](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/paethon/32/9278_2.png) [@Paethon](https://discourse.julialang.org/u/Paethon)\
**Post date:** [June 21, 2017, 4:10pm UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/3 "2017-06-21T16:10:21Z")

</div>

Generally I am using Emacs with the exception of Juno for Julia. Maybe I should try switching 🙂

Unfortunately I am a pretty big sucker for auto-complete …

---

<div class="post-metadata">

**Author:** ![rsrock](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rsrock/32/115_2.png) [@rsrock](https://discourse.julialang.org/u/rsrock)\
**Post date:** [June 21, 2017, 6:42pm UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/4 "2017-06-21T18:42:42Z")

</div>

Check your likes. I for one am going to grab this now. I had a much more primitive version in my init.el, but I like that this sets up a linting server.

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [June 21, 2017, 9:40pm UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/5 "2017-06-21T21:40:44Z")

</div>

I’m very much an Emacs user (from the days of the original Tops-20 TECO based Emacs!)  
Like you suspected, we’re all at JuliaCon 😉

---

<div class="post-metadata">

**Author:** ![Evey](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/evey/32/214967_2.png) [@Evey](https://discourse.julialang.org/u/Evey)\
**Post date:** [June 22, 2017, 7:30am UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/6 "2017-06-22T07:30:11Z")

</div>

Emacs user, not at JuliaCon. Will try this now! 😊

EDIT: Maybe this is an issue with flycheck or my setup, but it seems to spend a fair amount of time blocking whenever it runs. I don’t know if this is normal, I haven’t used flycheck before (I use jedi for Python), but it’s a real nuisance that there is that little bit of delay every few seconds.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [June 22, 2017, 7:56am UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/7 "2017-06-22T07:56:16Z")

</div>

Emacs user here (so much that I wrote [julia-repl](https://github.com/tpapp/julia-repl)). I gave a like above, but will defer trying flycheck-julia until I am a bit less busy. Lack of immediate feedback probably means that people are are JuliaCon, busy with something else, or are working on perfecting their `init.el` 🙂

---

<div class="post-metadata">

**Author:** ![gdkrmr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdkrmr/32/2791_2.png) [@gdkrmr](https://discourse.julialang.org/u/gdkrmr)\
**Post date:** [June 22, 2017, 10:07am UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/8 "2017-06-22T10:07:49Z")

</div>

I am using ESS, is it possible to use `julia-repl` from ESS or do I have to use `julia-mode` directly?

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [June 22, 2017, 11:25am UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/9 "2017-06-22T11:25:04Z")

</div>

You have to use julia-mode.

The only advantage of julia-repl is terminal-dependent libraries — ESS uses `comint`, which does not provide a terminal. Gallium was the original motivation for writing it, but while that is not working, you gain little over ESS.

---

<div class="post-metadata">

**Author:** ![ScottPJones](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/scottpjones/32/146_2.png) [@ScottPJones](https://discourse.julialang.org/u/ScottPJones)\
**Post date:** [June 22, 2017, 4:04pm UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/10 "2017-06-22T16:04:04Z")

</div>

Oooooh! I’ve got to try that out (maybe tonight, after fun poster session and drinking with lots of really great Julians - who needs sleep?)

---

<div class="post-metadata">

**Author:** ![gdkrmr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdkrmr/32/2791_2.png) [@gdkrmr](https://discourse.julialang.org/u/gdkrmr)\
**Post date:** [June 25, 2017, 8:42pm UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/11 "2017-06-25T20:42:11Z")

</div>

Update: Finally on MELPA as `flycheck-julia`!

---

<div class="post-metadata">

**Author:** ![gdkrmr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdkrmr/32/2791_2.png) [@gdkrmr](https://discourse.julialang.org/u/gdkrmr)\
**Post date:** [June 28, 2017, 1:25pm UTC](https://discourse.julialang.org/t/ann-emacs-linter-for-julia/4384/12 "2017-06-28T13:25:21Z")

</div>

I am trying to get the unit tests to work, solutions are welcome:

This one works just fine when I run the inner part `(with-temp-buffer ...)` interactively when the server is already running: [https://github.com/gdkrmr/flycheck-julia/blob/dev/test/flycheck-julia-test.el#L67](https://github.com/gdkrmr/flycheck-julia/blob/dev/test/flycheck-julia-test.el#L67) but fails when I do `make test`, see here for the failed test: [Travis CI - Test and Deploy Your Code with Confidence](https://travis-ci.org/gdkrmr/flycheck-julia/jobs/247875733)
