l0ng-ai 5f6e2a9c85 fix(workbench): Reset project state when a window switches projects
Opening another project in the same window left the previous project's state in
module-level stores: Amend and the commit message carried over, debug sessions kept
running, and Git Log, usages, hierarchy, inspection, HTTP client, recent locations,
navigation history and notifications still showed the old project.

Reset each of them on a project root change, stop the old debug sessions, ask about
unsaved changes before leaving a project, close the settings window (it would apply
to the new project) and end the indexing task when a scan is cancelled.
2026-10-22 20:26:04 +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
2026-10-22 18:55:10 +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
2026-10-22 18:55:10 +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
2026-10-22 18:55:10 +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
2026-10-22 18:55:10 +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
2026-10-22 18:55:10 +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
2026-10-22 18:55:10 +08:00

OpenIDEA

An open-source desktop IDE in the spirit of IntelliJ IDEA, built with Rust and Tauri.

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

Warning

OpenIDEA is early-stage software (0.1). Expect rough edges and breaking changes.

Features

  • Editor — CodeMirror 6 with tree-sitter highlighting, folding, multi-caret, live templates and an IDEA-style keymap.
  • Code insight — LSP-backed completion, navigation, find usages, rename and refactorings, diagnostics and inspections, plus a fast project-wide index.
  • Search — Search Everywhere, Go to File / Symbol / Action, Find in Files.
  • Run & debug — run configurations, DAP debugging, test runner, coverage and a profiler.
  • Build tools — Maven and Gradle project sync and builds.
  • Version control — Git (status, diff, commit, history, branches, blame) and GitHub pull requests.
  • Tools — integrated terminal, database client (PostgreSQL, MySQL, SQLite, SSH tunnels), HTTP client, Docker, scratch files and TODO view.
  • Languages — 60+ languages via declarative definitions in languages/: detection, comments, language server and debug adapter in one TOML file each.
  • Plugins — sandboxed WebAssembly plugins against the wit/plugin.wit interface; see plugins/ for examples.

Building from source

Requirements: Rust 1.96+, Node.js 22+, pnpm, and the Tauri prerequisites for your platform.

pnpm install
pnpm tauri dev      # run the app in development mode
pnpm tauri build    # produce a release bundle

Language servers and debug adapters are not bundled; OpenIDEA finds them on PATH or offers to download them on first use.

Development

pnpm typecheck && pnpm lint && pnpm test       # frontend
cargo nextest run --workspace                  # backend tests
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all
pnpm gen:bindings                              # regenerate src/bindings.ts after IPC changes
pnpm perf && pnpm perf:rust                    # performance checks vs perf/budgets.json

Project layout:

Path Contents
crates/ide-* Backend crates, one domain each (VFS, index, LSP, DAP, VCS, run, …)
src-tauri/ Tauri app: state and thin IPC command adapters
src/ React UI: platform/ (IPC, actions, keymaps), workbench/, ui/ (design system), features/
languages/ Language definitions
plugins/, wit/ Example plugins and the plugin interface

License

Apache License 2.0; see NOTICE. Bundled third-party assets, including icons from the IntelliJ Platform, are listed in THIRD_PARTY_LICENSES.md.

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%