VS Code extension v0.7.0-beta release

We have a beta release for version v0.7.0 of the julia extension for VS Code. Please give it a test drive, we hope to release v0.7.0 in about a week, but would like more folks to try the beta on their system before we release this to a larger group.

This new version has massive amount of improvements and bug fixes to the IntelliSense features, mostly thanks to @ZacLN, and some other new features:

  • In general the IntelliSense features should work with many more corner cases, be more robust etc.
  • We use the VS Code task system for running builds, tests and benchmarks now. If you open a folder, the extension will automatically detect whether that folder has a build, test or benchmark script. If it does, it will add detected tasks to the default list of tasks in VS Code, and you can run those tasks via the VS Code task runner.
  • We now support the rename refactoring in the editor.
  • We added a reload modules command.

To try the beta, go to https://github.com/JuliaEditorSupport/julia-vscode/releases/tag/v0.7.0-beta.2 and download the vsix file and then in VS Code execute the “Extension: Install from VSIX…” command. You probably have to uninstall any existing julia extension before you install the beta.

If you find bugs, please report them at GitHub - julia-vscode/julia-vscode: Julia extension for Visual Studio Code. If you have tried the extension and everything worked, please also report back. You can just respond to this message here. Ideally also let us know what platform you are on.

If we end up with more beta releases I will announce them as responses to this message here.

Best,
David & ZacLN

18 Likes

It looks great!

With your permission, a question, since both VS Code and Juno are based on Atom, why not create one effort?
Either create official Julia IDE around VS Code or merge your efforts with Juno.
Wouldn’t that be more effective?

Just out of curiosity.

Thank You.

They are not both based on Atom. VS Code is not Atom, though both Atom and VS Code are built on Electron. But Atom has its own package system and addons that Juno builds on top of. So it’s not the same.

But there are tools that can be shared between them. This has been discussed in the Juno and julia-vscode Gitters, and the devs seem to talk quite often. Check out JuliaEditorSupport for a wide variety of tools for IDEs:

and check the chatrooms / issues if you want to get involved.

2 Likes

Nice! Is there a reason why the changelog for this extension is not being updated since 0.5.1?

You can take a look at the latest changelog here. It will only show up on the marketplace when we publish a new released version, so in about a week.

To be a bit more specific, a lot of the functionality in the VS Code extension actually is in LanguageServer.jl, which in principle can be used from many different IDEs. There are folks working on integrating this with other IDEs (Emacs, Neovim and I can’t find a link to the Atom integration attempts right now, but they are also happening). The non-language server stuff in the VS Code extension is very VS Code specific, so I don’t think that can be easily shared.

1 Like

The first touches on an Atom implementation are https://github.com/pfitzseb/atom-julia-lsp-client

1 Like

I thought 0.6.x was a release, no? It didn’t appear in the Changelog tab in VS Code, though.

I only updated the changelog after 0.6 was published, i.e. I forgot to update it during the last release cycle :slight_smile:

Could it also be used in Spyder IDE?

I was under the, wrong apparently, impression that VS Code is also built on top of Atom.

Thank You.

When this is finished it should be easy

1 Like

FWIW, I’ve been using the beta extension now for a few days and it seems more stable than previous builds & the new functionality is great!

Does it support the Juno workflow of choosing a module and eval-ing code in the editor in the context of that module?
I’ve come to rely on that, but I’d also like to check out VS Code.

No, we don’t have that yet. See Evaluating code into module · Issue #153 · julia-vscode/julia-vscode · GitHub. We need to figure out how to disable the REPL prompt temporarily, as described in that issue and one that is linked. I would certainly like to add that, though.

I’ve used GitHub - timholy/Revise.jl: Automatically update function definitions in a running Julia session lately, and that might help with that scenario.

2 Likes

Cool, thanks. It might also be possible to reuse Atom.jl to help with this issue instead of reinventing that wheel.

I’ve wanted evaluation in a module, too. I just hacked together a quick REPL mode to do this:

https://github.com/tshort/REPLinModule.jl

This works with VS Code because VS Code is fairly REPL oriented (I like that). If you initiate this mode in VS Code Julia REPL, any code in the file you’re in will be sent/evaluated in this mode.

3 Likes

I’m using the rc1 now and it seems it is not able to recognize “nested” where.
Though I’m not entirely sure what I did is valid syntax… using it on the REPL doesn’t cause any problems…

image

We have a release candidate for v0.7.0 here. Would be great if folks could try that and report back (especially also if things work!) and unless we find some major bugs I would release v0.7.0 to the marketplace tomorrow.

Thanks for reporting, could you open an issue on github for this? I think we’ll just leave this for the v0.7.0 release and will fix this in a point release (we do want to get v0.7.0 out!).

I am using the extension on windows 10, but it the extensions pane both 0.7.0-beta-2 and 0.7.0-rc1 keep the blue reload button no matter how many time I reload, close VSC(1.14.2) or restart the computer.

I had to manually remove the previous release before installing the new one.

1 Like

That works! That is the first time it happens, I had to remove one by one since 0.5.0-beta