VS code is excellent!

Is there in VS Code an option to have a “workspace”, i.e. having multiple Julia modules open in a browser session. I use this in Atom and have not found it in VS Code

In Atom at least it’s very easy to just edit the index.less file for your syntax theme.

There is an extension in vscode (vscodevim) that basically enables an almost vim way of working with the editor. I’m not sure if everything vim is 100% in there, but from what I can tell most of it is.

2 Likes

Thanks for this tip and instructions - I’ve been looking for a good IDE for Julia for a while and have been disappointed with Juno and the SublimeText REPL. I installed vscode this morning and it might actually end up being the IDE I stick with…

Does anyone know what this error means?

ERROR: LoadError: LoadError: Package metadata directory /Users/tpevny/.vscode/extensions/julialang.language-julia-0.8.0-beta.4/scripts/languageserver/julia_pkgdir/v0.6/METADATA doesn't exist; run Pkg.init() to initialize it.

Thanks for help.

That feature is currently being developed: Multi-root workspace

But is there a way, how I can get rid of this? It keeps switching focus from console to output, which renders VS code useless.

I think you should open an issue about it.

How do you arrive at this? I’ve been running the beta4 together with julia 0.6 without issues.

I have no idea, how this has happened. It has just happened and restart did not help.

I will open an issue.

1 Like

Hello.
Do we also need to install IJulia packages and all its dependencies and configure them?
Do you think is better that Jupyter, Atom or Zeppelin (for Julia).

I’m sorry, I’m not familiar with Zeppelin.

I love how many typos/syntax errors VS code catches – so many potential bugs caught instantly!

My two cents are this:
I’ve never liked the idea of only using notebooks, because I like to gather the functions I write into files I can later call from other programs, and I don’t like the idea of browser editing, so no jupyter for me.

Atom/Juno is very very nice with regards to interactively working with julia (you basically get a notebook-like interaction on top of having a good general editor). Also the possibility to introspect variable values after calculating them just by clicking some arrows on the workspace is very nice for a beginner.

However, I can’t stand that my characters don’t instantly show up when I type or select them (even on my desktop with 7700k etc), made me consider VSCode in the first place. This got compounded with the fact that for some reason calculations I ran inside atom took around 20% longer (which becomes quite annoying if you perform them every day). This is probably because Atom gathers more information during the running (automatic highlighting of points of error etc), which again is very useful for beginners. The VSCode extension just provides a terminal window with a repl inside to which it sends code.
Also with the recent updates the julia extension in vscode got really a lot better. The only missing thing to me is automatic evaluation of blocks like Atom does it.

So those are the reasons why I prefer VSCode over Atom and Jupyter. With regards to the dependencies, as far as I remember I don’t think you need to install anything aside from the extension, and point it to the julia executable you want to use (as documented).

1 Like

Are you using any linter plugins? Those really really tank performance (and I generally dislike them)…
In general I don’t think VSCode is that far ahead in performance, especially after the latest perf improvements for Atom, but YMMV.

No I didn’t enable any linting features. I didn’t know there was a new version with improved performance for Atom, I think I’ll check it out once more and see how I feel :grinning:.
Thanks for letting me know!

One technical question?:
Does VS Code use the same client-server philosophy than other GUIs?
I mea, does it communicate with a Julia session with ports?
Or Julia is embedded in a different way?

I have always had problems with the first method, with Julia, R, it’s slower and it interacts with the antivirus and firewall even if you define exclusion rules.

from what I can tell it just pushes text to a terminal. but you can always try it out right? :stuck_out_tongue:

It uses named pipes for server communication

And what is the difference between that named pipes and the method used by other tools such as Jupyter or Rstudio?