# IDE: alternatives to VS Code?

**URL:** <https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526>\
**Category:** General Usage\
**Tags:** ide\
**Created:** [November 12, 2024, 8:17am UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526 "2024-11-12T08:17:27Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![BambOoxX](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bambooxx/32/22179_2.png) [@BambOoxX](https://discourse.julialang.org/u/BambOoxX)\
**Post date:** [November 13, 2024, 8:57pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/21 "2024-11-13T20:57:56Z")

</div>

Not to derail either, but is debug mode faster nowadays for package development ? I started julia only a few years back, around 1.5 i think, and my past experience is awful with that. So I’m mostly running → `error`-ing (a lot) / `@info`-ing → `Revise`-ing.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [November 13, 2024, 11:23pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/22 "2024-11-13T23:23:15Z")

</div>

I’m afraid nothing has improved on the debugger side. And, if anything my perception is that it got worse with more erratic behavior of the breakpoints (stopping on removed BPs, not stopping on others when the debugging file is modified)

---

<div class="post-metadata">

**Author:** ![DNF](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dnf/32/10191_2.png) [@DNF](https://discourse.julialang.org/u/DNF)\
**Post date:** [November 13, 2024, 11:29pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/23 "2024-11-13T23:29:51Z")

</div>

This is different from my experience. From my unreliable memory, since 1.5 it has become drastically better. The ability to select which modules to run in compiled mode is newer than 1.5, isn’t it?

I used the debugger successfully today, at least, and it’s okay-ish responsive.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [November 13, 2024, 11:32pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/24 "2024-11-13T23:32:31Z")

</div>

> [@DNF](#):
>
> and it’s okay-ish responsive.

Yes, I agree it is. But that is far from being a particular good experience (I use the debugger almost every day).

---

<div class="post-metadata">

**Author:** ![PhilippA](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/philippa/32/21676_2.png) [@PhilippA](https://discourse.julialang.org/u/PhilippA)\
**Post date:** [November 13, 2024, 11:39pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/25 "2024-11-13T23:39:45Z")

</div>

Support for Positron would be so great! [https://youtu.be/8uRcB34Hhsw?si=RNlhc0k2oxvqJLtE](https://youtu.be/8uRcB34Hhsw?si=RNlhc0k2oxvqJLtE)

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [November 14, 2024, 12:03am UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/26 "2024-11-14T00:03:37Z")

</div>

Not only is debugger slow, but the extensions implementation is often broken. Recently it could only `@run` once per session (hanging afterward). Today, I found that if I tried to use the debug console, Julia crashed immediately.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [November 14, 2024, 1:00am UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/27 "2024-11-14T01:00:13Z")

</div>

> [@mrufsvold](#):
>
> Recently it could only `@run` once per session (hanging afterward).

That one @davidanthoff kindly fixed it about 2 weeks ago.

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [November 14, 2024, 1:11am UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/28 "2024-11-14T01:11:46Z")

</div>

I was shorter in that message that I should have been. I’m extremely grateful for the tireless and thankless work @davidanthoff and others are doing! My only point was that the bugs aren’t one off, so I only reach for the debugger as a last defense because I don’t trust that it’s rock solid.

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)\
**Post date:** [November 14, 2024, 9:41am UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/29 "2024-11-14T09:41:34Z")

</div>

With the debugger in Julia it’s like with my old office’s door handle that would, not always, but often enough, give me an electric shock. As a result I was always hesitant to touch it.

---

<div class="post-metadata">

**Author:** ![lmiq](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lmiq/32/18314_2.png) [@lmiq](https://discourse.julialang.org/u/lmiq)\
**Post date:** [November 14, 2024, 10:36am UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/30 "2024-11-14T10:36:53Z")

</div>

Anyone knows of a native good alternative for Android? (Large tablets in mind).

(I’m using code-server which is rather ok, but it lacks a bunch of plugins, as copilot and remote - SSH).

---

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [November 14, 2024, 10:58am UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/31 "2024-11-14T10:58:40Z")

</div>

> [@jlapeyre](#):
>
> I just installed zed for the first time (on fedora, using the installation shell script).  
> I tried it for five minutes: What worked out of the box:

And something that didn’t work ?

---

<div class="post-metadata">

**Author:** ![TheCedarPrince](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/thecedarprince/32/17323_2.png) [@TheCedarPrince](https://discourse.julialang.org/u/TheCedarPrince)\
**Post date:** [November 14, 2024, 3:48pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/32 "2024-11-14T15:48:31Z")

</div>

> [@tamasgal](#):
>
> All of my setups broke at some point, sometimes even without any apparent changes from my side. So in the end I am always falling back to my local minimum → docs and code side by side 😆

> [@tamasgal](#):
>
> I totally gave up on IDE features like refactoring, extract, definition look-up, project-wide rename, usable tab-completion etc. for Julia.

I had no idea there was another person in the Julia community who also has a super barebones development and scripting set-up! This is how my spartan Vim session looks this morning:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/0/7/0730ce698ca889478bbc656df047c73290084521.png)

(Sorry for the tangent!)

---

<div class="post-metadata">

**Author:** ![asbisen](https://avatars.discourse-cdn.com/v4/letter/a/a9a28c/32.png) [@asbisen](https://discourse.julialang.org/u/asbisen)\
**Post date:** [November 14, 2024, 8:37pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/33 "2024-11-14T20:37:02Z")

</div>

What I have found helpful with zed is to add the following block to `keymaps.json`

```json
{
    "context": "Editor && mode == full",
    "bindings": {
      "cmd-y": ["workspace::SendKeystrokes", "cmd-c ctrl-` cmd-v enter"]
    }
  }

```

This allows me to have a Julia session open in the terminal pane and that allows me the select a block of text and press `CMD + y` to execute that block in the terminal. Poor man’s hack till they get inline REPL bug fixed.

---

<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:** [November 14, 2024, 8:39pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/34 "2024-11-14T20:39:52Z")

</div>

> [@mrufsvold](#):
>
> Not only is debugger slow, but the extensions implementation is often broken. Recently it could only `@run` once per session (hanging afterward). Today, I found that if I tried to use the debug console, Julia crashed immediately.

Two things:

First, the debugger part in the VS Code extension went through a major change this summer. I won’t bore you with the details, but those kind of very large changes are rare. It does mean, though, that it is likely some new bugs crept in during that change. My hope is that we can fix the remaining bugs, and then beyond that I don’t see anything with that amount of code churn for the debugger on the roadmap. The big upside of this change in the summer was that the debug adapter can now be used beyond VS Code, and we’ve started to see it utilized in emacs and vim, and in the VS Code extension it now is also available for notebooks and test items.

Second, can you open a bug report about the debug console thing you ran into it? I just tested a basic debug console stuff on my end, and it seemed to work, so we would probably need some more details.

---

<div class="post-metadata">

**Author:** ![mrufsvold](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mrufsvold/32/31600_2.png) [@mrufsvold](https://discourse.julialang.org/u/mrufsvold)\
**Post date:** [November 14, 2024, 8:42pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/35 "2024-11-14T20:42:39Z")

</div>

I definitely will! I’m in the midst of a big deliverable so I haven’t managed to narrow to a MWE. The stress might have contributed to my curtness earlier 😅

---

<div class="post-metadata">

**Author:** ![neophytedave](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/neophytedave/32/202273_2.png) [@neophytedave](https://discourse.julialang.org/u/neophytedave)\
**Post date:** [November 14, 2024, 8:52pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/36 "2024-11-14T20:52:28Z")

</div>

Let’s hear it for static electricity. Try first contacting the door knob with something metallic. See if that works. 🙂

---

<div class="post-metadata">

**Author:** ![jlapeyre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jlapeyre/32/4514_2.png) [@jlapeyre](https://discourse.julialang.org/u/jlapeyre)\
**Post date:** [November 15, 2024, 3:54pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/37 "2024-11-15T15:54:20Z")

</div>

> [@e3c6](#):
>
> And something that didn’t work ?

No, I just did not get a chance to try very much. I didn’t find anything broken.

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [November 21, 2024, 5:36pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/38 "2024-11-21T17:36:03Z")

</div>

8 posts were split to a new topic: [Maintenance of VSCode Julia extension?](https://discourse.julialang.org/t/maintenance-of-vscode-julia-extension/122907)

---

<div class="post-metadata">

**Author:** ![Dan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dan/32/42581_2.png) [@Dan](https://discourse.julialang.org/u/Dan)\
**Post date:** [November 15, 2024, 11:48pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/41 "2024-11-15T23:48:24Z")

</div>

Everyone actively engaging with Julia has opinions regarding this.

Instead of biasing towards those eager to write posts on this thread, it would be better to have a quick poll to gauge the Discourse audience. Ideally, the poll should have less than five questions.

Personally, hitching the wagon to VSCode too much doesn’t seem ideal. Julia should learn from the rise of LSP: the important issue is to make a clean API and a decent implementation of this API’s server which can then be adapted to any IDE. There are several facets to this API (and it is essentially a superset of the LSP API).

---

<div class="post-metadata">

**Author:** ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)\
**Post date:** [November 16, 2024, 12:36pm UTC](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526/42 "2024-11-16T12:36:01Z")

</div>

I tried out Cursor (with great integrated AI code support) and have never looked back. I teach classes of up to 200 and they love it. Very easy to migrate from VSCode. Similar interface, but in some ways simpler, but with additional features. [Only one slight issue… creating a new Jupyter notebook should be one-click and it’s not currently (but I’ll bet they will fix that)]

[NB: to get the best AI helper there is a small monthly subscription fee, but it has the best Julia code/programming support I have seen.]

[Previous page](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526.md?page=1)

[Next page](https://discourse.julialang.org/t/ide-alternatives-to-vs-code/122526.md?page=3)
