[ANN] VS Code extension 1.2 released

Hey everyone,

we just released version 1.2 of the Julia extension for VS Code, which brings a bunch of new features, most importantly

  • a new plot navigator,
  • integration for persistent tmux processes,
  • many notable changes to static code analysis,
  • and a new debugger UI that allows you to switch between compiled and interpreted mode on a per-function basis.

Check out the full changelog here.

As always, feel free to post issues over at the julia-vscode repo and enable crash reporting if possible – it really helps tremendously with providing a stable extension.

The big focus for the next minor release is to get rid of local indexing, which is probably the biggest pain point currently; hopefully the infrastructure work put into the last to releases allows for a speedy release, so stay tuned.

Best,
David, Sebastian, Shuhei, Zac

79 Likes

The Debugger change is huge, thanks for this. When I had to debug large files, I often have to siwtch into compiled mode and put tons of breakpoints to go to the nested-function of interest. This is now direct and greatly improve the debugging experience.
Cheers ! :heart_eyes:

3 Likes

Does the tmux thing offer a way on Windows to connect to an external REPL from VSCode or is this a Linux only feature? I have never used tmux but I want to use an external REPL both to restart less often and to use my second screen more effectively.

2 Likes

Yeah, that should work with the Julia: Connect external REPL command. Totally forgot I implemented that :smiley:

12 Likes

Cool, so it can find any open repl or is there a process I need to follow?

1 Like

The command should show instructions – it basically gives you a code snippet you need to copy into your REPL session.

Edit: I think there’s an issue with loading the REPL integration in this workflow though. Will fix.

4 Likes

Ok I tried this, one problem is that the paths don’t work because of unescaped backslashes. When I fixed that, the command ran but I didn’t see any change in VSCode. alt+enter on 1+1 did however print 2 in the REPL.

Argh. Windows. Right. Will fix that too :wink:

What changes were you expecting? Everything should work exactly the same as if you had an integrated terminal.

2 Likes

Not sure, any kind of indication that I’m connected to an external REPL session. If I come to an open VSCode window and I don’t know if there’s already a repl connected, how can I find out?

Fair point. You can check whether the workspace is populated or you can see the module selector in the lower right. Not sure how to make this more obvious without adding another status bar item.

Ok one more question, if I close and reopen VSCode, how do I close the old session in the REPL (or does it close automatically if VSCode exits), so that I can connect to the new window?

You don’t need to do anything except reconnect to the old REPL.

Ok thanks I will try it out some more, this is very cool! The terminal vs code vs plot pane placement in VSCode was bugging me for a long time, now I can show those huge dataframes on the other screen :slight_smile:

1 Like

https://github.com/julia-vscode/julia-vscode/pull/2182
should improve the experience quite a bit :slight_smile:

8 Likes

awesome!

The tmux and debugger are both huge things for me. Thanks!

1 Like

As somebody who just recently switched from Atom can I make two requests on urgent fixes:

  • the ALT+ENTER execution seems very unreliable in determining the enclosing scope. I now end up always highlighting which is a pain
  • the inline results were formatted much more nicely in Atom (+ could easily get rid of them when no longer needed)

Otherwise the transition has been very smooth. Thank you.

How so? It should be much more robust than Juno, even though a bit unresponsive initially.

Not much we can do about that, unfortunately, but you should be able to clear them the same in Juno.

In my personal experience - far from it. I’m especially when I’m editing a module and want to evaluate a new function definition it will often evaluate the entire file.

Another common case is when I am in a test script where the tests are enclosed in @testset ... begin end then executing a line within those with ALT+ENTER will always execute the entire file.

Seems to me this is using only indentation to determine code blocks?

(PS: I dislike Revise for some reason…)

Does Juno just have custom views rather than just printing the output into a window when you hover?