[ANN] Annonuncing PlutoVSCodeDebugger.jl

Dear All,

I am very happy to announce PlutoVSCodeDebugger, a package that was just recently registered on the General Registry.

From the package README:

This package provides a very experimental connection between a Pluto Notebook and the Debugger on a running VSCode instance (the VSCode instance must be running on the same machine as the Pluto Server)

To connect VSCode to Pluto and exploit the @run and @enter commands, follow the steps below:

  • Copy the julia code to connect an external REPL from your VSCode window by calling the VSCode command Julia: Connect external REPL.
  • Bring this package into the notebook scope by having a cell with using PlutoVSCodeDebugger
  • Connect VSCode by calling the @connect_vscode macro by giving as an argument a begin...end block that contains the code pasted at point 1.

After executing the cell with @connect_vscode you should see a popup on VSCode like the one below confirming the successfull connection:


After succesfull connection you can directly start using the @enter and @run macros inside your Pluto notebook.

You can also use the exported @vscedit to jump at function definitions in VSCode from the Pluto notebook for convenience of setting up breakpoints. This function works similarly to the @edit macro from InteractiveUtils.

Check the documentation for more details on how to use this package.

I already find this package very helpful for my usual workflow that is highly centered around Pluto notebooks, and I hope it can also be of use to other people!


This is amazing, I can’t believe you were able to pull this off! I barely understand how we got the debugger working in pure VS Code in the first place :wink:


Actually I’d say most of the work is in the vscode extension and probably in JuliaInterpreter. So thank you, @pfitzseb and all the others that contributed to those.

I had just the idea the other day of trying to connect the Pluto notebook using the “Connect to external Julia REPL” and it basically worked :D.

The first version of the package was around 100 lines of code and took half a day to make so I am also quite baffled and happy that it worked so smoothly :D.

I guess this is another example of how composable julia packages can be!