New: Julia for JetBrains IDEs (Flexible Julia)

Thanks - that means a lot.

Generally speaking, however, I cannot stress enough how amazing this community is. The plugin only progresses this quickly, because you managed to 1) create such a supportive vibe and 2) have so many people reporting bugs, making feature-suggestions and contributing time to it. It really is a key driver behind any progress here…

Speaking of which - we got 2026.8.0 coming up, will report in a few minutes

9 Likes

New Release: Flexible Julia 2026.8.0 (+ 2026.8.1 hotfix)

New Features:

  • Notebook REPL: Full notebook implementation with REPL support
  • @enter Macro: Pauses debugger at first line (@run now continues to first breakpoint - matches Debugger.jl convention)
  • @breakpoint Macro: Set/show/clear breakpoints directly from the julia> prompt
  • Remote Notebooks: Notebook support for remote/tmux sessions via REPL kernel with kernel type switcher dropdown (#59)
  • Docs Panel: New Docs tab in Julia Scientific panel with tree sidebar, module/category browsing, search/filter, and REPL-fetched documentation
  • Welcome Dialog: New install dialog with review/feedback links and optional guided tour of plugin features

Fixes:

  • Large struct printing exhausting network bandwidth in remote REPL sessions (#60)
  • Notebook execution hanging on some environments due to stdout pipe buffering (#58)
  • Debugger crashing when JuliaInterpreter.jl installation fails - now shows helpful error message
  • NaN values breaking the Julia IPC connection
  • Nested docstring lookups (#53) — fixed in 2026.8.1 hotfix


Now we got Documentation!
I added a new docs panel to our Julia tab - it loads the documentation i added for the internal logic and also integrates a repl based search (in case we are missing other documents). I also added a quick tutorial that pops up once after install (there is a checkbox you can set to never see it again).

Apart from that the jupyter notebooks got some major upgrade. Full REPL session support is new and can be selected via dropdown - and yes, it works with remote/tmux sessions too. So now you get to choose if the jupyter notebooks load their own context, or share the one repl session you have opened. Regardless of which one you choose, the output will be both printed inside of the notebook and within our Julia window.

Apart from that, I also updated the debugger to also support the enter function. @enter pauses at the first line, @run continues to the first breakpoint, and @breakpoint lets you manage breakpoints from the prompt.

If you don’t want to wait for the official JetBrains approval process to finish, you can also manually install the plugin via File - Settings - Plugins - Install from Disk:

https://plugins.jetbrains.com/plugin/download?rel=true&updateId=959546


@xgdgsc: Thanks for reporting the remote REPL bandwidth and notebook hanging issues!
@ufechner7: Hotfix for nested docstrings is out - thanks for the report!

6 Likes

Quick note: i had to reupload the version - https://plugins.jetbrains.com/plugin/download?rel=true&updateId=959546

1 Like

2026.8.1 is now available through the marketplace

2 Likes

New Release: Flexible Julia 2026.8.3

New Features:

  • Improved Hover Documentation: Better styling and presentation (#57)

Fixes:

  • Auto-select next Julia SDK on minor version upgrade via juliaup (#61)
  • False positive “Undefined variable” warnings in include()d files - extractIncludePath was searching keyword args instead of positional args (#34)
  • Debugger connection lost when displaying large DataFrames - oversized DAP messages now skipped gracefully
  • Variables, tables, and plots now appear in Julia View after @run begin...end debug sessions and when stepping over


Mostly bugfixes in this one. The false positive warnings in included files were particularly annoying - turned out the include path extraction was looking at keyword args instead of positional args. Fixed.

The debugger disconnect when viewing large DataFrames. Rather than crashing the connection, oversized DAP messages are now skipped gracefully. You’ll still see your variables, just without the ones that would blow up the connection.

Also made sure Julia View actually updates during @run begin...end sessions - variables, tables, and plots now show up properly while stepping through code.


@xgdgsc: Thanks for catching the false positive and SDK auto-select issues!
@ufechner7: Appreciate the feedback on hover documentation styling!
@jschneppendahl: Thanks for reporting the DataFrame debugger disconnect

5 Likes

New Release: Flexible Julia 2026.9.0

New Features:

  • New Project Wizard: Create Julia projects directly from the IDE with proper setup

Fixes:

  • LSP crashes, freezes, and manual restart requirements (#66)
  • Various debugger improvements: no more broken IPC connections, crashes, or hangs
  • Run/debug session stability improvements
  • SDK auto-detection now prefers newest installed version instead of alphabetically first
  • Status bar environment widget no longer hardcodes @v1.10 - shows actual SDK version


The new project wizard is the visible addition - you can now create Julia projects directly from the IDE with proper structure and configuration. (This has been on my list for a long while, actually)

Apart from that, I rewrote major parts of both the debugger and language server integration. This fixes a range of issues with crashes of either and system freezes.

Also fixed some annoyances: SDK auto-detection was picking versions alphabetically (so 1.10 before 1.9… yeah), and the status bar was hardcoded to show @v1.10 regardless of your actual SDK. Both fixed.


@jschneppendahl: Thanks for reporting the debugger issues!
@xgdgsc: Appreciate the continued bug testing
@jdad: Thanks for recommending the project wizard and catching the SDK detection bugs!

8 Likes

Also a quick reminder: Anybody is invited to send me feedback, feature wishes, bug reports or hi fives.

You can do so via Github , email or private message. I also check the channel #jetbrains on our community slack. I read them all. :slight_smile:

2 Likes

Could you explain the principle of jetbrains plugins ? I use Clion for C++. Is the Julia plugin usable with Clion ? What is the jetbrains tool which provides the best experience with the Julia plugin ?

2 Likes

@LaurentPlagne :

Yup. It is compatible to all the JetBrains IDEs.

There is no preference on our end. Most probably use it with Pycharm, I personally use IntelliJ, but it works the same in all.

We did a full grammar implementation from the ground up and developed all the panels etc from scratch, so there is no real dependencies.

So give it a go and tell me what you think :slight_smile:

4 Likes

The grammar seems to work very well in almost every case now. I know macros might be tricky to handle, but I noticed a problem with using the @compact macro in Lux.jl. Lux.jl is a pretty important package for working with NeuralODE for SciML type applications, so it would be good if this didn’t flag as an error.

Here is a MWE, happens on 2026.8.3:

using Lux

function NODELuxModel(
dims_u,
dims_du,
dims_latent
)
    model = @compact(
        U=Dense(dims_u, dims_latent),
        DU=Dense(dims_latent, dims_du)
    ) do inp
        # Do stuff here with U and DU but it doesn't matter for the example
    end
end

I get this error:

<assign level operator>, <bitwise level operator>, <comparison level operator>, <expr>, <multiply level operator>, <pipe level operator>, <plus level operator>, <type declaration>, JuliaTokenType.#=, JuliaTokenType.&&, JuliaTokenType.(, JuliaTokenType.,, JuliaTokenType.->, JuliaTokenType.::, JuliaTokenType.;, JuliaTokenType.EOL, JuliaTokenType.IMPLICIT_MULTIPLY_SYM, JuliaTokenType.LINE_COMMENT, JuliaTokenType.abstract type, JuliaTokenType.end, JuliaTokenType.primitive type, JuliaTokenType.{ or JuliaTokenType.|| expected, got 'do'
1 Like

On it :slight_smile:

1 Like

Thank you. I will try it :slight_smile:

A quick bugfix release before I add new features:

New Release: Flexible Julia 2026.9.1

New Features:

  • File-Based Indexes: New indexing system for improved grammar performance
  • Find Usages: Now actually works - added DefaultWordsScanner and fixed reference matching

Fixes:

  • Macro calls with do blocks now parse correctly - e.g. @compact(args...) do ... end
  • @generated function with :(...) quote expressions now parses correctly (fixes Lux.jl compact.jl)
  • quote...end blocks now support all statement types (multi-assign, for loops, etc.)
  • Comprehensions now allow line breaks after for keyword
  • Interpolated member access obj.$(field) in metaprogramming

Grammar release! Find Usages was essentially broken before - now it works properly. Also tackled a bunch of parsing edge cases that were causing issues with metaprogramming-heavy code.

The @compact macro from Lux.jl was a good stress test - do-blocks, generated functions with quote expressions, interpolated member access. All parsing correctly now.

File-based indexes should also make things snappier when working with larger codebases.


@csvance: Thanks for reporting that grammar bug :slight_smile:

The bugfix can be downloaded here, while we wait for JetBrains approval
https://plugins.jetbrains.com/plugin/download?rel=true&updateId=966170

2 Likes

Question in another chat: “I haven’t followed the jetbrains plugin. Do you know what the state of debugging is there?”

1 Like

So debugging has been implemented in full.

We support both local and remote debugging in REPL and JetBrains run/debug scriupts. The debugger has been fully integrated into JetBrains, so you can also start it via run/debug, rather than REPL, which will then open a new session. You can set breakpoints in file and via REPL. Regardless how you start/stop the debugger and/or set breakpoints, the variables, plots and dataframes will update in our Julia panel. The breakpoints will also be synched with REPL when you start the repl debugger. And you can always use JetBrains internal F8, F9 to go to the next breakpoint or skip forward etc. The IDEs native debug view also works.

Both @run and @enter work in REPL. We also added a new way to add & remove breakpoints by file and line in debug mode, which is missing from debugger but makes it easier to control the breakpoints (you’d otherwise have to call the bp list first and remove them by index)

From the other thread (Julia debugging is extremely slow - #12 by tue)

I just tried flexible Julia and while it was able to pass the troublesome line without issue, it unfortunately crashes on a later line. However the debugger is missing a debugging console and the error message it returns when crashing is not really very useful.
So while it seems promising it also doesn’t seem to have all the options I need in order to use it for general Julia debugging.

Thanks for this.

I replied. Not sure what he means. But happy to improve on it as always :slight_smile:

New Release: Flexible Julia 2026.9.2

New Features:

  • Julia Profiler: CPU sampling profiler with flame graph, call tree, and method list views
  • Step Into (F7): Now works properly (warning: not in compiled mode), F8/F9 stepping is silent, stale variables no longer leak
  • Extended Debug Commands: nc, se, si, sg, u <line>, o
  • Break on Error: Debugger pauses at throw site on uncaught exceptions for full stack/variable inspection (#72)
  • Debug Console REPL: Evaluate expressions interactively during debugging with syntax highlighting - ALT+F8 opens this (#73)
  • Multiline Expression Evaluation: Now works correctly in debugger (#73)
  • Live Compiled Mode Toggle: Switch between compiled/interpreted mode mid-debug-session (#69)
  • Debugger Dependency Isolation: DebugAdapter.jl loads from isolated environment, user projects not modified (#69)
  • Launch Script Support: Custom executable override in run configurations (#67)
  • Julia Threads Configuration: Thread settings in run/debug configurations (#67)
  • JULIA_DEPOT_PATH Support: Plugin no longer hardcodes ~/.julia (#68)

Fixes:

  • Plots/DataFrames not displaying during debugging
  • Step commands not working correctly
  • REPL debug (@run): variables now show real types instead of “Any” in Variables tab
  • REPL debug (@run): DataFrames and matrices now appear in Data tab
  • Panel colors now update correctly when theme changes


New: profiling and better debugging!
This release is all about debugging & profiling. We basically rewrote large parts of the debugger again.

Step Into (F7) finally works. Break on error lets you pause at the exact throw site with full stack and variable inspection. The debug console REPL means you can evaluate expressions mid-session with proper syntax highlighting. And you can now toggle between compiled and interpreted mode without restarting your debug session.

The profiler is new - CPU sampling with flame graphs, call trees, and method lists. Should help track down performance issues without leaving the IDE.

Also fixed the dependency isolation issue - DebugAdapter.jl now loads from its own environment, so your project’s Manifest.toml stays untouched.


@ufechner7: Thanks for requesting REPL and threading configuration!
@tue: Appreciate the detailed debugging issue reports - led to a lot of improvements!
@RGerzaguet: Debugger dependency isolation is in - no more Manifest pollution!
@arnaud-ma: Thanks for the depot path fix and XDG compliance suggestion!

4 Likes

It takes JetBrains probably until monday to validate the release. In the meanwhile you can install it manually via:

File - Settings - Plugins - Install from Disk

https://plugins.jetbrains.com/plugin/download?rel=true&updateId=969788

Quick question: should the break on error mode be the default for the Debugger? On one hand I think it is quite useful, but then again it could be annoying in larger applications where an exception can occur regularly due to timeouts or so.

Also: should we set number of threads to auto as a default for all sessions? Right now it is undefined, so the start parameter is not set. So it is an extra configuration step for people.