devanddevadapter 742e504719 fix(terminal): keep IME commit gating after a composition (#1231)
Typing CJK punctuation such as `;` or `,` with fcitx5 in the Linux
AppImage sent each character twice: WebKitGTK commits it as
insertFromComposition + compositionend without compositionstart, so
xterm's CompositionHelper finalized the previous composition's stale
position and emitted a suffix. ImeCommitGate was meant to drop that second
emission, but compositionStart() disabled it for the rest of the session
and cancelled its rebase. The gate now works per commit: compositionstart
stands down only for its own composition, every keydown 229 starts a fresh
commit, and the textarea is rebased after each commit.

A keydown the IME did not take (Enter, an arrow, a letter outside the IME)
ends the open commit, so a key pressed right after a directly committed
punctuation mark is not dropped by the commit's timeout.

Closes #1230

Co-authored-by: devadapter <23102962+devadapter@users.noreply.github.com>
2026-11-05 07:35:24 +08:00
2026-11-04 22:16:25 +08:00
2026-10-22 18:55:10 +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  ·  Plugins  ·  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.

Plugins

Plugins add actions, completion, quick fixes, tool windows, custom editors, themes, file icons and languages. They run as sandboxed WebAssembly components; themes, icon themes and languages need no code at all.

Install them from Settings › Plugins, or start your own with openidea-plugin new — see Writing OpenIDEA plugins and the official plugins. The plugin API is still a preview.

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.

S
Description
The IDE you know, rebuilt in Rust. IntelliJ IDEA–style keymap, tool windows and search-everywhere in a fast native app: editor, code insight, debugger, Git, terminal, database and HTTP clients for 60+ languages.
Readme Apache-2.0
60 MiB
Languages
TypeScript 56.4%
Rust 39.9%
CSS 2.2%
Python 0.5%
Java 0.4%
Other 0.4%