# \[ANN\] Annonuncing PlutoVSCodeDebugger.jl

**URL:** <https://discourse.julialang.org/t/ann-annonuncing-plutovscodedebugger-jl/103030>\
**Category:** Package Announcements\
**Created:** [August 21, 2023, 1:07pm UTC](https://discourse.julialang.org/t/ann-annonuncing-plutovscodedebugger-jl/103030 "2023-08-21T13:07:21Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![disberd](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@disberd](https://discourse.julialang.org/u/disberd)\
**Post date:** [August 21, 2023, 1:07pm UTC](https://discourse.julialang.org/t/ann-annonuncing-plutovscodedebugger-jl/103030/1 "2023-08-21T13:07:21Z")

</div>

Dear All,

I am very happy to announce [PlutoVSCodeDebugger](https://github.com/disberd/PlutoVSCodeDebugger.jl), 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:

![image](https://global.discourse-cdn.com/julialang/original/3X/5/9/596ab95f018ebdcc38881f50271c1a93d6adcdd9.png)

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](https://disberd.github.io/PlutoVSCodeDebugger.jl/) 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!

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [August 22, 2023, 12:37am UTC](https://discourse.julialang.org/t/ann-annonuncing-plutovscodedebugger-jl/103030/2 "2023-08-22T00:37:52Z")

</div>

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 😉

---

<div class="post-metadata">

**Author:** ![disberd](https://avatars.discourse-cdn.com/v4/letter/d/8edcca/32.png) [@disberd](https://discourse.julialang.org/u/disberd)\
**Post date:** [August 22, 2023, 6:33am UTC](https://discourse.julialang.org/t/ann-annonuncing-plutovscodedebugger-jl/103030/3 "2023-08-22T06:33:11Z")

</div>

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!
