# VS code is excellent!

**URL:** <https://discourse.julialang.org/t/vs-code-is-excellent/6381>\
**Category:** New to Julia\
**Tags:** vscode\
**Created:** [October 10, 2017, 5:32pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381 "2017-10-10T17:32:58Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![pitao](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pitao/32/116_2.png) [@pitao](https://discourse.julialang.org/u/pitao)\
**Post date:** [October 11, 2017, 7:10am UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/21 "2017-10-11T07:10:11Z")

</div>

In what respects is the VSCode port still inferior to Atom/Juno? And is it likely to catch up in the near future?

Does it support single step debugging graphically?

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [October 11, 2017, 2:27pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/22 "2017-10-11T14:27:09Z")

</div>

> [@pitao](#):
>
> Does it support single step debugging graphically?

Neither one does. For Julia 0.6 and up.

In my opinion, VS code at this point is ahead of Juno. Better experience overall.

---

<div class="post-metadata">

**Author:** ![mkborregaard](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mkborregaard/32/556_2.png) [@mkborregaard](https://discourse.julialang.org/u/mkborregaard)\
**Post date:** [October 11, 2017, 2:29pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/23 "2017-10-11T14:29:28Z")

</div>

I 💖 Juno

---

<div class="post-metadata">

**Author:** ![tpoisot](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tpoisot/32/19812_2.png) [@tpoisot](https://discourse.julialang.org/u/tpoisot)\
**Post date:** [October 11, 2017, 2:45pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/24 "2017-10-11T14:45:55Z")

</div>

I love Juno too mostly because atom has a (currently) much better package ecosystem than VS code offers. But VS code is much snappier!

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [October 11, 2017, 3:33pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/25 "2017-10-11T15:33:44Z")

</div>

> [@PetrKryslUCSD](#):
>
> In my opinion, VS code at this point is ahead of Juno. Better experience overall

VS Code is promising, but, off the top of my head, it’s missing inline evaluation, variable browser and side-by-side terminal and editor. Those are serious drawbacks.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [October 11, 2017, 3:36pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/26 "2017-10-11T15:36:56Z")

</div>

There is a terminal next to the editor??? And selections can be evaluated in the terminal, they are just not displayed right next to the code in the editor.

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [October 11, 2017, 3:51pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/27 "2017-10-11T15:51:03Z")

</div>

> [@PetrKryslUCSD](#):
>
> There is a terminal next to the editor???

Juno has an integrated Julia console that can be placed in arbitrary positions, while VS Code has an integrated terminal, but it is in a fixed position below the editor pane.

> [@PetrKryslUCSD](#):
>
> And selections can be evaluated in the terminal, they are just not displayed right next to the code in the terminal.

You mean next to the code in the _editor_? Yes, that’s what I mean by inline evaluation (not sure it it’s the correct technical term.) In Juno you can evaluate code without sending it to the console.

---

<div class="post-metadata">

**Author:** ![tpoisot](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tpoisot/32/19812_2.png) [@tpoisot](https://discourse.julialang.org/u/tpoisot)\
**Post date:** [October 11, 2017, 4:06pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/28 "2017-10-11T16:06:33Z")

</div>

In the interest of not having this thread devolve in an editor war, can we maybe instead have a “wiki” type thread with a list of the various ways to integrate Julia in an editor _and_ run code from the editor, and the features of each?

From the top of my head, there’s VSCode, Juno, Hydrogen (within Atom too), and Jupyter. I am probably missing a few.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [October 11, 2017, 4:13pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/29 "2017-10-11T16:13:42Z")

</div>

Granted, there are some aspects where Atom is more flexible. I personally like both VS code and Juno, but in my opinion VS code offers a better overall experience. Just a few reasons: Atom’s copy/paste to and from the console is awkward. Operations on folders and files are not as immediate as in VS code. Juno is at the moment incompatible with 0.7. I can run any terminal in VS code, whereas I can only interact with the integrated console in Juno, and on Windows that one is not fully functional.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [October 11, 2017, 4:15pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/30 "2017-10-11T16:15:22Z")

</div>

Agreed. It is however nice if one hears from other people who use (perhaps the same) development environment in ways rather different from your own. One can learn something…

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [October 11, 2017, 4:22pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/31 "2017-10-11T16:22:17Z")

</div>

I _also_ prefer VS Code. I was simply correcting the blanket statement that VS Code was now ahead of Juno. Well, you did say in your opinion, but it sounded a bit too conclusive.

I don’t think we’re engaging in an editor war here.

---

<div class="post-metadata">

**Author:** ![innerlee](https://avatars.discourse-cdn.com/v4/letter/i/b19c9b/32.png) [@innerlee](https://discourse.julialang.org/u/innerlee)\
**Post date:** [October 11, 2017, 4:35pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/32 "2017-10-11T16:35:56Z")

</div>

I see… I didn’t know that because never used the executing code function. My keybinding for `ctrl+enter` is the default `insert line after`. And the `send to terminal` is set to `alt+enter`. I like the setting because it sends a line or selected text to the active terminal, regardless of the language.

Are there any extra functionality or advantage of the julia version of `send to repl`?

```json
[
    { "key": "alt+enter", "command": "workbench.action.terminal.runSelectedText",
                           "when": "editorTextFocus" },
    { "key": "ctrl+enter", "command": "editor.action.insertLineAfter",
                           "when": "editorTextFocus && !editorReadonly" }
]

```

---

<div class="post-metadata">

**Author:** ![innerlee](https://avatars.discourse-cdn.com/v4/letter/i/b19c9b/32.png) [@innerlee](https://discourse.julialang.org/u/innerlee)\
**Post date:** [October 11, 2017, 4:46pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/33 "2017-10-11T16:46:13Z")

</div>

> [@DNF](#):
>
> inline evaluation

There is a [related issue](https://github.com/Microsoft/vscode/issues/3220) and it used to be of high priority… Maybe we can upvote it.

---

<div class="post-metadata">

**Author:** ![tuckermcclure](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tuckermcclure/32/1187_2.png) [@tuckermcclure](https://discourse.julialang.org/u/tuckermcclure)\
**Post date:** [October 11, 2017, 5:08pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/34 "2017-10-11T17:08:13Z")

</div>

I like both, but tend to lean on Atom+Juno for the following:

I believe VS Code can’t yet execute a whole file? I use that functionality a lot in Juno. [Edit: As @kristoffer.carlsson reports below, the current beta of VS Code will do this.]

Also, I like Juno’s progress bar, and some of my longer functions now have a `do` block version for calling out to a progress update function in which a user can do whatever they need, like updating that progress bar. It’s a small thing, but I really like it!

[Edit: VS Code has a plot pane. I removed a paragraph here that said otherwise.]

I use both editors on all platforms (Linux, macOS, and Windows). I often have VS Code open to work with C (where it’s clearly superior to Atom), so it would be convenient to use it with Julia as well. Plus, VS Code feels much less clumsy than Atom, and I feel like VS Code could win in the long run.

One thing to point out for those who haven’t tried VS Code yet: it’s not really related to the Visual Studio you might be familiar with. It’s a new platform altogether, but it has some of the strengths of the Visual Studio editor, especially for C. VS Code is far more similar to Atom, Brackets, etc., than to the Windows-oriented C++ IDE.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [October 11, 2017, 5:58pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/35 "2017-10-11T17:58:46Z")

</div>

- VS Code has a plot pane
- You can execute a whole file in VS Code (at least in the beta).

---

<div class="post-metadata">

**Author:** ![js135005](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/js135005/32/8219_2.png) [@js135005](https://discourse.julialang.org/u/js135005)\
**Post date:** [October 11, 2017, 6:05pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/36 "2017-10-11T18:05:54Z")

</div>

What’s the sequence to execute a whole file. I’m using the latest 8.0 beta but hadn’t found how to execute a whole file.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [October 11, 2017, 6:10pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/37 "2017-10-11T18:10:22Z")

</div>

Go to the command palette and look for “Execute File”. You can keybind that to whatever you want.

---

<div class="post-metadata">

**Author:** ![js135005](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/js135005/32/8219_2.png) [@js135005](https://discourse.julialang.org/u/js135005)\
**Post date:** [October 11, 2017, 6:14pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/38 "2017-10-11T18:14:24Z")

</div>

Thank you very much. Didn’t realize that had been added. I’ve almost completely switched from Juno to VS Code. I’ve also gotten a plot pane to work from it.

---

<div class="post-metadata">

**Author:** ![aleksip](https://avatars.discourse-cdn.com/v4/letter/a/cdc98d/32.png) [@aleksip](https://discourse.julialang.org/u/aleksip)\
**Post date:** [October 11, 2017, 8:02pm UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/39 "2017-10-11T20:02:42Z")

</div>

You can also install an extension called “Code Runner” that you can use to run whole files. It has support for quite a few languages (also Julia).

---

<div class="post-metadata">

**Author:** ![Steven\_Sagaert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/steven_sagaert/32/29578_2.png) [@Steven\_Sagaert](https://discourse.julialang.org/u/Steven_Sagaert)\
**Post date:** [October 12, 2017, 8:38am UTC](https://discourse.julialang.org/t/vs-code-is-excellent/6381/40 "2017-10-12T08:38:12Z")

</div>

What I don’t like is the coloring of julia code. Maybe it’s not just a VS Code thing and Atom/Juno have the same problem (I don’t know , I haven’t tried them in a long time because when I tried using Juno a couple of years ago it was very slow and hence unusable).

Case in point:  
module, struct, function are colored blue but their closing “end” is colored pink because the system colors control statements like if/for/while pink and it thinks the “end” is the end of those. That’s confusing and sucks! I think the best and simplest solution would be to also color all control statements blue. I don’t want too many different colors anyway.

[Previous page](https://discourse.julialang.org/t/vs-code-is-excellent/6381.md?page=1)

[Next page](https://discourse.julialang.org/t/vs-code-is-excellent/6381.md?page=3)
