New: Julia for JetBrains IDEs (Flexible Julia)

Just updated again and many of the issues I was seeing with undefined variables / code analysis were fixed or at least reduced to warnings.

One issue I see still is that when a package exports a value that sometimes doesn’t seem to be picked up as a defined symbol when using the package, for example in LibCURL.jl:

Many of those exported values show up as not defined here: gRPCClient.jl/src/Curl.jl at main · JuliaIO/gRPCClient.jl · GitHub

I’m not using a language server, just testing the builtin code analysis.

1 Like


@ufechner7: I added this as a right click option. would that work for you? It will basically run

include(“push_relabel.jl”)
or
include(“C:/java/workspace/julia-test/push_relabel.jl”)

I have a feeling that putting it at the repl window is otherwise more confusing because then you have to decide on “which” file was meant (is it the active one? what if I am looking at another but want to run a specific file).

Well, the VSCode Julia extension provides such a button:

The little triangle at the top right.

I don’t find it confusing.

You can even select one of three options:

Whether these options make sense is a different question.

2 Likes

ok… i’m not convinced that is the best option, but I guess we can copy it for now :slight_smile:

1 Like

@ufechner7 added for 2026.6.1:

3 Likes

Thank you so much, I appreciate it!

1 Like

Out of curiosity, is Jetbrains planned to release an IDE like PyCharm for Julia ?

1 Like

I have no idea and no affiliation to JetBrains (though I am in touch with them). But I’m guessing probably not. Though Julia is growing, I am not sure it has the user base yet. But who knows?!

However, the Flexible Julia plugin is meant to fill the gap and since it works inside any of the JetBrains IDEs, you can also just use it inside PyCharm, so you have the best of both worlds without switching IDEs for your project.

With a bit of luck (and if you leave a positive review for us - please :slight_smile: ), we could potentially make it onto the “staff pick” list of the marketplace, which would mean a larger user base sees us, potentially making this a real goto option for Julia developers (and those who take an interest in the language)

9 Likes

New Release: Flexible Julia 2026.6.1

New Features:

  • Working Directory Option: Choose between project root (default, like VS Code) or file directory when running files
  • External Folders: Add external library folders via Settings → Language → Julia - stored in project configuration
  • External Library Validation: Symbol validation now respects external libraries
  • Auto SDK Selection: SDK now auto-selected from Manifest.toml julia_version on project open (#44)

Fixes:

  • Additional incorrect symbol validation issues resolved

A few quality-of-life improvements in this one. The working directory as requested @ufechner7 - you can now choose whether “Run File” uses the project root (VS Code behavior) or the file’s directory.

The external folders feature is also handy if you’re working with libraries outside your project structure - add them in settings and they’ll be properly recognized for symbol validation and navigation. Thanks @Petr. Apart from that various minor fixes.


@ufechner7: Thanks for suggesting the working directory option!
@PetrKryslUCSD: External folder feature is in - appreciate the idea!
@csvance: Thanks for flagging the external library validation issue!
@xgdgsc: Thank you for reporting and testing the SDK auto-selection from Manifest.toml!

4 Likes

I tried it out, and now there is a run button at the upper right of the REPL window that allows me to run the file, open in the editor, which is great!

What is a bit confusing: At the top of the editor window there is another run button that doesn’t work:

Any idea?

That looks like the standard Jetbrains runtime config to me:

For those to work, you must click on Current File then edit a runtime environment then continue. I have to check if I can also get the file itself to be recognized as runnable.

2 Likes

New Release: Flexible Julia 2026.6.2

New Features:

  • Dynamic Package Recognition: Inspections now query Julia for installed packages - no more false warnings on valid imports (#34)
  • Improved Hover Documentation: Better @doc string lookup and presentation
  • Lazy Runtime Configurations: Run current file and symbol directly from the top of the page

Fixes:

  • False positive “loop variable shadows outer variable” on for-loop variables (#34)
  • False positive “undefined variable” for global x followed by assignment (#34)
  • False positive “unused variable” for keyword arguments like deadline = 90000000 in function calls (#34)
  • Multi-assignment destructuring (a, b, c = split(line, ",")) no longer flags variables as undefined (#34)
  • Struct field access after dict lookup (aitem.prop1) no longer flags field names (#34)
  • Wrong documentation shown for imported symbols - now uses module-qualified lookup (#46, #47)
  • Base submodules (Threads, Sys, Iterators) and common packages now recognized (#34)
  • Included file imports: using CSV in Module.jl now visible in include("sub.jl") (#34)
  • Send to REPL from end line or multi-line statements now sends entire block (#22)
  • Error highlighting on correct Base.zero method definition with custom types (#49)
  • Package installation notification persisting after packages were already installed (#39)


Massive inspection cleanup. This release tackles a long list of false positives that have been bugging people - from loop variable shadowing to multi-assignment destructuring to keyword arguments.

We also improved on the way @doc is looked up and presented on hover.

Lastly: you can now also run the files directly from within the file or via “current file”

There are still some issues remaining with regards to highlighting / error detection & warnings, but we are inching closer (thanks again @xgdgsc for holding my hand on this…)


@xgdgsc: Huge thanks for the detailed false positive reports, we are slowing tackling them all.
@ufechner7: Thanks for reporting the documentation lookup issues!
@smartiegangs: Appreciate catching another grammar edge case!

You are all amazing sparing partners here (this includes you @PetrKryslUCSD, so thank you!

5 Likes

Quick update, cause I thought this was cool:

I am adding a Julia Jupyter implementation, so that you can create proper jupyter notebooks with mixed markdown and jupyter cells, running in its own kernel & session.

10 Likes

New Release: Flexible Julia 2026.7.0

New Features:

  • Jupyter Support: Custom Jupyter wrapper for running Julia code in notebook files - mix markdown with inline code blocks
  • Run Button Redesign: Split into one-click execute + mode selector dropdown for faster workflow (#50)

Fixes:

  • SDK version warning showing when compatible version already installed (#44)
  • Type annotations not colored in function parameters (#34)
  • Symbol indexing (:sym) in brackets not colored (#34)
  • REPL stack trace paths not clickable when Julia runs with --color=yes (ANSI escape codes were breaking regex matching)
  • Julia View button in REPL toolbar only opening but not toggling/closing (#51)
  • Alt+Shift+Enter now sends the next block when cursor is between cells (#22)

Jupyter! We got Jupyter support! You can now run Julia in our custom notebook files. Select from File → new Jupyter notebook and get to work. We wrote a custom interpreter that opens a new session and runs code independently. Mix markdown with code blocks, execute inline - the usual notebook workflow but inside JetBrains.

The run button also got a small but useful redesign. You now have a one-click execute button plus a dropdown for switching modes. Small thing, but it’s one less click.

The new release to be making its way to JetBrains as we speak - you can expect it to roll out in a day or two (or checkout the link i posted below if you don’t feel like waiting).



@xgdgsc: Thanks for reporting the SDK version warning!
@ufechner7: Thanks for catching the Julia View toggle issue!
@smartiegangs: Appreciate the grammar edge case report!
@Marius: Thanks for tracking down the ANSI escape code issue - that was a tricky one!

8 Likes

Jupyter support is huge!!!

3 Likes

And a lot of fun!

Anyone can try out the release version by manually installing

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

File - Settings - Plugins - Install from Disk.

It should otherwise become available either tonight or Monday.

2026.7.0 is now available on the marketplace :slight_smile:

New Release: Flexible Julia 2026.7.1

New Features:

  • Julia Install Selector: Updated version picker for SDK management
  • Package Manager: Various improvements to the package management experience

Performance:

  • Cached PSI tree traversals in inspections and annotators for large files (#54)
  • Added cancellation checks for responsive tab switching during analysis (#54)

Fixes:

  • Multi-line code duplication in REPL when sending via Alt+Shift+Enter or cell execution (#22)
  • High CPU usage (100-300%) when specific large Julia files open in foreground tab (#54)
  • Symbol literals flagged as “undefined variable” and inconsistent coloring for PascalCase symbols (#34)
  • License expiration notification hanging IDE during installation (#56)
  • Non-selective using statements showing wrong documentation (#47)
  • Missing docstrings on hover for symbols imported from local packages (#53)

Just added this bugfix release that addreses some stability and performance issues. Certain large Julia files could spike to 100-300% CPU just by having them open in the foreground, I was unable to reproduce but noticed that the annotator and lexer were sometimes recursing up and down the tree in an inefficient way. So I am now caching PSI tree traversals and adding proper cancellation checks in hopes of that fixing the issue.

Also cleaned up some annoying inspection issues - symbol literals getting flagged as undefined, and documentation lookups not working correctly for non-selective imports and local packages.



@dudalev: Thanks for reporting the CPU usage issue - that was a big one!
@xgdgsc: Appreciate the reports on multi-line duplication and annotator bugs!
@ufechner7: Documentation fixes are in - thanks for the detailed reports!


As a heads up - i think I will add a documentation panel to our julia window next. Idea is to make it easier to look up some of the language specifics, but could also allow us to add tutorials or so in the future. We shall see.

3 Likes

New Release: Flexible Julia 2026.7.2

Fixes:

  • A bug that broke debugging with an error about “using” not being supported inside a function

This is the definition of a hotfix. I recently refactored the debug integration, trying to harden it for some cases. That introduced a new bug that potentially broke debugging for many. So please upgrade if you can.

The patch is already on the marketplace waiting for its approval. But for all of you, who cannot wait, here’s the download link:

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

(Install via File - Settings - Plugins - Install from Disk)


@Vladislav Kalinovsky: Thank you so much for reporting!

2 Likes

With every update it gets better and better, I haven’t even started VSCode in weeks. Going to talk to my manager tomorrow about getting licenses for the team :smiling_face_with_sunglasses:

2 Likes