## Problem When you hold ⌘ (Ctrl on Windows/Linux) and hover a symbol, the navigation link had three problems: - **Slow to appear.** The underline and pointer cursor only showed after the hover (documentation) request came back. A slow or stuck documentation request held the link back. - **Errors were remembered.** If the definition request was cancelled or the server returned an error, the word was cached as having no target. Hovering it again never retried. - **Stuck requests blocked the word.** A definition request that never answered blocked any new request for that word. ## Changes (`src/editor/lsp/navigation.ts`) - The link is underlined as soon as a definition is found. The short summary is filled in when the hover request returns. - Cancellation and server errors count as temporary failures. They are no longer cached, so the next hover retries. - A definition request expires after 3 seconds and can be retried. If its response arrives later, it is ignored. - Responses for a word the pointer has already left, or that arrive after the editor plugin is destroyed, are dropped. ## Tests - Four new tests in `src/editor/lsp/syntaxFallback.test.ts`: the link shows without waiting for documentation, a temporary error is retried, a stuck request is retried and its late answer ignored, and a late answer for the previous word is ignored. The first three fail without this change. - `pnpm vitest run src/editor/lsp`: 179 passed. `pnpm typecheck` and eslint report no errors. - Checked in the running app (`fixtures/ts-app`, `cart.ts`): ⌘-hover over `Cents` showed the underline and pointer cursor after 312 ms and the type summary after 356 ms. ⌘-click opened `money.ts` at the definition.
The IDE you know, rebuilt in Rust.
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.
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.