VS code is excellent!

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?

Neither one does. For Julia 0.6 and up.

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

I :sparkling_heart: Juno

5 Likes

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

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.

1 Like

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.

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.

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.

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.

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.

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ā€¦

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.

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?

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

There is a related issue and it used to be of high priorityā€¦ Maybe we can upvote it.

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.

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

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.

Go to the command palette and look for ā€œExecute Fileā€. You can keybind that to whatever you want.

1 Like

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.

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).

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.

1 Like