arookieofcandl0ng-ai c938d712b5 fix(editor): pause expensive decorations during fast scroll bursts (#401)
* fix(editor): pause expensive decorations during fast scroll bursts

Add a scrollThrottle plugin that flags the editor with a .cm-scrolling
class while the wheel is moving. While the flag is up the sticky-scroll
header and indent guides are hidden via theme CSS, and their view
plugins skip per-viewport re-measures/rebuilds; a trailing scrollSettled
effect re-runs them once the wheel rests for 140ms. This keeps fast
mouse-wheel scrolling from painting rows of stale decorations over
freshly rendered code.

Fixes l0ng-ai/openidea#375

* fix(editor): keep decorations painted during scroll bursts

The scroll throttle hid the sticky header and indent guides entirely while
scrolling, which flickered on every burst - and the sticky header is exactly
what you want to see while scrolling. Drop the display/background hiding from
the theme and keep the previous paint instead: the plugins skip re-measuring
during a burst and catch up once on the trailing scrollSettled update.

* fix(editor): throttle the first scroll event and queued sticky measurements

---------

Co-authored-by: l0ng-ai <[email protected]>
2026-11-01 10:09:47 +08:00
2026-10-22 18:55:10 +08:00
2026-10-28 10:45:25 +08:00
2026-10-31 22:38:36 +08:00
2026-10-31 22:38:36 +08:00
2026-10-22 18:55:10 +08:00
2026-10-31 22:38:36 +08:00
2026-10-30 11:48:05 +08:00
2026-10-22 18:55:10 +08:00
2026-10-22 18:55:10 +08:00

OpenIDEA

The IDE you know, rebuilt in Rust.

Download  ·  Benchmark  ·  Build  ·  Discord

https://github.com/user-attachments/assets/234dd54c-1255-4b3a-b35c-533d78d737c0

OpenIDEA brings the IntelliJ IDEA way of working — its keymap, its tool windows, its search-everything habits — to a native app with a Rust core.

Editor, code insight, debugger, Git, terminal, database and HTTP clients, for 60+ languages. Builds for macOS, Windows and Linux.

Benchmark

Opening freqtrade (Python, ~770 files) with warm caches, median of 5 runs:

OpenIDEA IntelliJ IDEA 2026.2.3
Window with the project 0.9 s 3.1 s
Ready (CPU settled) 1.1 s 13.2 s
Memory (USS, all processes) 169 MB 2011 MB
CPU time until ready 2.4 s 47.9 s
Idle CPU 4 % of a core 7 % of a core
Quit 0.3 s 5.9 s

A release build of OpenIDEA from main and IDEA with default settings and plugins, on Windows 11, 32-core AMD, 62 GB RAM. IDEA analyses Python more deeply, so "ready" doesn't mean the same work on both sides. Both are measured from the outside, the same way: see perf/compare to run it on your machine and projects.

Build

pnpm install
pnpm tauri dev

Rust 1.96, Node 22, pnpm and the Tauri prerequisites.

Native notebook execution tests are opt-in and need two distinct Python environments with ipykernel installed:

OPENIDEA_TEST_PYTHON=/first/env/bin/python \
OPENIDEA_TEST_PYTHON_SECOND=/second/env/bin/python \
cargo test -p ide-notebook --test kernel_runtime -- --ignored --test-threads=1

License

Apache 2.0. Bundled third-party assets are listed in THIRD_PARTY_LICENSES.md.

Not affiliated with JetBrains. IntelliJ IDEA is a trademark of JetBrains s.r.o.

Languages
TypeScript 54.7%
Rust 41.8%
CSS 2.1%
Python 0.5%
Java 0.4%
Other 0.3%