# New: Julia for JetBrains IDEs (Flexible Julia)

**URL:** <https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658>\
**Category:** Tooling\
**Created:** [December 21, 2025, 5:19am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658 "2025-12-21T05:19:07Z")\
**Posts on this page:** 20\
**Page:** 6

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 17, 2026, 11:40am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/102 "2026-01-17T11:40:19Z")

</div>

I was able to configure PyCharm to use the Python version provided by the Conda version installed when executing “using PythonPlot”.

I can use it to create plots, even though I need to explicitly call `plt.show()` in the Python console.

When using Julia, this worked with the plugin version `2026.4.0`, but it no longer works with `2026.4.1` or `2026.4.2`.

I get:

```julia-auto
julia> using PythonPlot

julia> plot(rand(3))
Python: [<matplotlib.lines.Line2D object at 0x77a3e23a1a90>]

julia> PythonPlot.show()
<sys>:0: UserWarning: FigureCanvasAgg is non-interactive, and thus cannot be shown

```

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 17, 2026, 12:16pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/103 "2026-01-17T12:16:16Z")

</div>

Ah, must come from my changes for panning. Will fix, thanks

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 18, 2026, 7:27am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/104 "2026-01-18T07:27:10Z")

</div>

**New Release: Flexible Julia 2026.4.3**

New Features:

- Undefined Variable Inspection: Unresolved variables now highlighted as errors, with 200+ Julia built-ins recognized
- Smarter Inlay Hints: Option to hide unresolved type hints (like `eltype`) until proper type resolution is available
- Auto-load Revise.jl: Automatically loads Revise on REPL start for hot code reloading (VS Code-style workflow)
- Reorganized Inlay Hints: Now follows standard IntelliJ categories (Parameter hints, Types, Lambdas, Method chains)

Fixes:

- F2 rename refactoring broken due to plugin.xml group ID mismatch
- `type` keyword no longer reserved - you can use `type` as variable/field name again
- Remote REPL now refreshes variables after reconnection and properly restarts interactive shell
- PythonPlot/PyPlot plots not displaying since 2026.4.1 (regression fix)
- Unused variable inspection now detects top-level variables with proper gutter marks

* * *

 ![Screenshot 2026-01-18 065038](https://global.discourse-cdn.com/julialang/original/3X/b/1/b19e2f686cd2a87be17de86cf888af6b466a8964.png)  
 ![Screenshot 2026-01-18 063354](https://global.discourse-cdn.com/julialang/original/3X/a/1/a17b259f1456e8b59ebb101dbbe9e0ea590309ea.png)  
 ![Screenshot 2026-01-18 060508](https://global.discourse-cdn.com/julialang/original/3X/1/7/1729b53b0b423d1fd6760d67d0af8cbdc2461e74.png)

* * *

So we are adding inbuilt code validation. Combined with unused variable detection, you get much better feedback while writing code.

I also added Revise.jl to auto-load on startup. This was a request by @xgdgsc and I think it makes complete sense. You can turn it off in the settings of course.

Other than that: a range of bugfixes as usual…

* * *

@xgdgsc: Huge thanks for all the detailed bug reports and feature requests - this release is basically your wishlist!  
@ufechner7: Thanks for catching the PythonPlot regression!

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 18, 2026, 11:50am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/105 "2026-01-18T11:50:22Z")

</div>

Thank you so much for the quick update!

Plotting with PythonPlot works now!  
Zoom and pan work, too!

Small issue: Clicking the “Fit to window” button never enlarges the figure beyond 100%. So it works only if the window is smaller than the figure.

You need to call `figure()` to create a new figure, but I think this is normal. Perhaps `figure()` should be called automatically when the “Clear” button is clicked.

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 18, 2026, 12:52pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/106 "2026-01-18T12:52:35Z")

</div>

I’ll check it out

---

<div class="post-metadata">

**Author:** ![taaem](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/taaem/32/220424_2.png) [@taaem](https://discourse.julialang.org/u/taaem)\
**Post date:** [January 20, 2026, 4:18pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/107 "2026-01-20T16:18:53Z")

</div>

Thank you for this Plugin!

Is there a way to have support for syntax highlighting for [LaTeXStrings.jl](https://github.com/JuliaStrings/LaTeXStrings.jl)?  
It basically provides a string type L"…", where you don’t have to escape the LaTeX special characters ($,)

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 20, 2026, 4:25pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/108 "2026-01-20T16:25:01Z")

</div>

I’m happy to add it! Can you create a ticket under [GitHub · Where software is built](https://github.com/ilscipio/flexible-julia-jetbrains-plugin/issues) ? That way it doesn’t get lost 🙂

never mind - already adding it 🙂

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 20, 2026, 5:17pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/109 "2026-01-20T17:17:35Z")

</div>

I just uploaded a new release version 2026.5.0: it contains your changes.

 ![Screenshot 2026-01-20 180010](https://global.discourse-cdn.com/julialang/original/3X/5/b/5bef38bc0398fefa89ec6f15a2cee1d304c5aa80.png)

It usually takes JetBrains up to 48hrs to approve our version. In the meanwhile you can manually install it via Settings - Plugins - install from disk:

[https://plugins.jetbrains.com/plugin/download?rel=true&updateId=937823](https://plugins.jetbrains.com/plugin/download?rel=true&updateId=937823)

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 20, 2026, 8:10pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/110 "2026-01-20T20:10:42Z")

</div>

**New Release: Flexible Julia 2026.5.0**

New Features:

- LaTeX String Syntax: `L"..."` support for LaTeXStrings.jl with proper highlighting
- `@run` Macro: Debug from REPL with full IDE integration
- Plot Debug Logging: Data point tracing for handling 32K+ point datasets
- Module Include Resolution: `using` imports in parent modules now recognized in included files

Fixes:

- Temp directory leak: old `julia_hook_*` directories now cleaned on startup
- Variables panel not updating on Julia 1.12+ (async context/world age fix)
- Nested struct field completion (`p.address.city` now shows fields)
- `end` keyword highlighting in array indexing (`arr[1:end]`)
- False positive “unused parameter” with string interpolation (`"Hello $name"`)
- False positive “undefined variable” for do-blocks, tuple unpacking, symbols
- False positive “unused variable” for keyword arguments in function calls
- Send to REPL now sends surrounding code block instead of just current line
- Variable panel restores after reconnecting to tmux session
- PyPlot/PythonPlot race condition crash - hook installation now synchronous

* * *

 ![Screenshot 2026-01-20 181527](https://global.discourse-cdn.com/julialang/original/3X/b/a/baf3d747504735244b7fa7f6750c020184f2a41a.png)  
 ![Screenshot 2026-01-20 181451](https://global.discourse-cdn.com/julialang/original/3X/4/6/460a6874e7121b0a06c5f810a20d2ab0d620cf1e.png)  
 ![Screenshot 2026-01-20 181309](https://global.discourse-cdn.com/julialang/original/3X/1/9/19b555be1e1b42738180d83958dc9bbdc7d56620.png)

* * *

Big inspection cleanup in this release. The false positive warnings for do-blocks, tuple unpacking, string interpolation, and keyword arguments were getting annoying - all fixed. Also nested struct completion finally works now.

As for new features: Thanks to @taaem, we now also support LatexStrings: `L"..."`

And thanks to RGerzaguet we now also support terminal debugging via `@run`. This autoloads Debugger.jl - so you only need to remember @run. This is only a first implementation of it though, I will see that I integrate it further into the actual IDE debugging processes for one of the future releases (if possible). Oh and we fixed a bug that limited the size of plots to 10k. Now you can have much larger plots.

* * *

@xgdgsc: Thanks for the detailed bug reports on variable inspection!  
@ufechner7: Appreciate the PyPlot investigation!  
@RGerzaguet: Plot limits feature noted - and thanks for the `@run` request!  
@taaem: LaTeX strings are in - enjoy!

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 21, 2026, 2:29pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/111 "2026-01-21T14:29:41Z")

</div>

Plotting with PyPlot works now in different modes as explained in: [Plotting with PyPlot does not work in the REPL · Issue #3 · ilscipio/flexible-julia-jetbrains-plugin · GitHub](https://github.com/ilscipio/flexible-julia-jetbrains-plugin/issues/3)

Key points:

- disable Revise
- disable multithreading with `-t 1,0`
- use the command `gcf()` to display the figure

It could still be made easier to configure in the GUI, but at least it works.

@madppiper Thank you so much!

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 21, 2026, 4:46pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/112 "2026-01-21T16:46:27Z")

</div>

JetBrains approved 2026.5.0 - so you can update the plugin from inside the IDE now

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 25, 2026, 7:23am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/113 "2026-01-25T07:23:37Z")

</div>

**New Release: Flexible Julia 2026.5.1**

New Features:

- Full Debugger Integration: `@run` macro now provides complete IDE debugging experience with stack frames, variables panel, and step/continue buttons (#36)
- Cell/Block Detection: “Send to REPL” now auto-detects and sends entire code blocks instead of single lines (#22)
- Remote Variable Restore: Variables panel automatically refreshes after reconnecting to tmux/screen sessions (#27)

Fixes:

- LanguageServer crash after initializing / Lambda hints NPE (#37)
- False positive “undefined variable” for `where` clauses, selective imports, and module-level `const` (#34)
- Struct dot-completion now shows both fields AND methods (`ats.` shows `a,b,c` plus `filtA(ats::Ats)`) (#9)
- Parameter type inference now uses direct PSI accessors instead of fragile tree search (#9)

* * *

## ![Screenshot 2026-01-25 072940](https://global.discourse-cdn.com/julialang/original/3X/5/7/57906616bff0d94cefe9de8922e7a261be16ebff.png)

This was a bugfix release for the most part (with some major grammar improvement), but I also completed the full integration of repl debugging with the JetBrains debugger. So @run will now open a new debugsession inside JetBrains IDEs that is tied to the repl debug session. Variables will be mirrored in both the Debug panel and our Julia panel. Plots and Datatables will be shown inside our Julia window too. You can use F8,F9 etc to jump over lines and it will call n/c in the repl debug. Terminating one session automatically closes the other.

Apart from that, many bugfixes and ones that came back due to recent restructuring. Send to repl works now as expected and we get better autocomplete.

* * *

@RGerzaguet: Thank you for the debugger feedback and thorough testing of the `@run` macro integration!  
@taaem: Thanks for catching the LanguageServer crash!  
@xgdgsc: Continued appreciation for the detailed bug reports across multiple issues - the inspection fixes wouldn’t have happened without you!  
@Petr: I will look into how ways for us to include external folders next - thanks for reporting 🙂

**Update:** I published a quick bugfix release 2026.5.2, replacing 2026.5.1 (it fixes tmux errors and one with repl behavior and some minor remaining grammar issues)

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [January 27, 2026, 3:50pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/114 "2026-01-27T15:50:40Z")

</div>

Just a note: the “external folders” mention refers to the workspace concept in VS Code: there it is possible to add the entire folder of a package (or packages) to the workspace to enable symbol lookup. Very handy when LS gives trouble.

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 29, 2026, 1:48pm UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/115 "2026-01-29T13:48:09Z")

</div>

**New Release: Flexible Julia 2026.6.0**

New Features:

- Breakpoints in `@run` Sessions: Full breakpoint support during REPL debugging - `bp add "file":line`, `bp show`, `bp rm` (#36)
- Bidirectional Breakpoint Sync: Breakpoints now sync between IDE gutter and Julia REPL - set them wherever you prefer (#36)
- Line-Based Breakpoint Removal: New `bp remove "file":line` command (in addition to Debugger.jl’s index-based approach)
- Manifest.toml SDK Detection: Julia version now read from Manifest.toml for smarter SDK selection (#44)
- Improved Completion Priority: LS/JETLS results now ranked higher in merged mode

Fixes:

- REPL freeze after documentation hover due to EDT blocking (#43)
- Plugin starting LSP in non-Julia projects (#41)
- Parser error with `end-(m-i)` arithmetic in array indexing (#42)
- Bug that caused some hover documentation to not show

* * *

![Recording 2026-01-29 144501](https://global.discourse-cdn.com/julialang/original/3X/c/d/cd2aad0709fb714ebe3b02af9b4dfbc389e79587.gif)

* * *

Made big progress with synchronizing IDE and repl debug sessions. You can now set breakpoints directly from the REPL with `bp add "file":line` - and they sync bidirectionally with the IDE gutter. Set a breakpoint in the gutter, it shows up in your REPL session. Add one via `bp add`, it appears in the IDE etc etc

Also fixed an annoying freeze that happened when hovering for documentation - that one was blocking the EDT and locking up the REPL. And again some issues with our own on hover documentation and some minor grammar issues.

* * *

- @RGerzaguet: Thanks for suggesting breakpoint support and the detailed feedback on the debugger workflow - I think we really got something working now
- @xgdgsc: As always, thank you for the testing!  
@smartiegangs: Thanks for reporting the REPL crash with hover documentation - because of it, I also discovered some issues in our own on hover documentation files

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 30, 2026, 3:03am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/116 "2026-01-30T03:03:58Z")

</div>

**Question:**  
What is the suggested way to execute a Julia script?

In the REPL I would just type

```julia-auto
include("examples/my_example.jl")

```

or similar.

It would be nice if there were a `run` button that does this, executing the currently open script using `include` in the REPL with the project folder as the current directory.

---

<div class="post-metadata">

**Author:** ![xgdgsc](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xgdgsc/32/608_2.png) [@xgdgsc](https://discourse.julialang.org/u/xgdgsc)\
**Post date:** [January 30, 2026, 3:29am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/117 "2026-01-30T03:29:13Z")

</div>

There’ s right click menu “run file in Julia REPL” command. Although the working dir is the script dir.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 30, 2026, 3:37am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/118 "2026-01-30T03:37:32Z")

</div>

I see. So what would be nice:

- having a button for this action
- a configuration checkbox “use project directory for running scripts”

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 30, 2026, 7:01am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/119 "2026-01-30T07:01:14Z")

</div>

I am a bit cautious to add this, as it seems like a duplication of the already existing runtime/debug configuration to me.

Can you explain the usecase again and how it would differ?

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [January 30, 2026, 7:28am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/120 "2026-01-30T07:28:06Z")

</div>

For most of my packages I have many examples:

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

I don’t want to create a runtime configuration for each example.

I want to be able to open the example and click on `run` to execute it.

---

<div class="post-metadata">

**Author:** ![madppiper](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/madppiper/32/220029_2.png) [@madppiper](https://discourse.julialang.org/u/madppiper)\
**Post date:** [January 30, 2026, 7:36am UTC](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658/121 "2026-01-30T07:36:31Z")

</div>

ok, that makes sense i guess. And you need to set the work directory for this, too?

If it is only about using the project directory or not, we could add a second right click action + keyboard shortcut.

I can also of course add a button to the repl itself if others find that useful?

[Previous page](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658.md?page=5)

[Next page](https://discourse.julialang.org/t/new-julia-for-jetbrains-ides-flexible-julia/134658.md?page=7)
