github l0ng-ai/openidea v0.1.36
OpenIDEA v0.1.36

3 hours ago
Architecture Windows macOS Linux
x86-64 (64-bit) EXE   MSI Intel AppImage   DEB   RPM
AArch64 (ARM64) EXE   MSI Apple Silicon AppImage   DEB   RPM

For remote development (Linux x86-64 / Linux ARM64 / macOS x86-64 / macOS ARM64): openidea-server, checksums below

Already installed: OpenIDEA updates itself, use Check for Updates

Changelog

Plugins (Preview)

  • Plugin system. Plugins are sandboxed WebAssembly components that can add actions, completion, quick fixes, navigation, tool windows, custom editors and web views, settings, themes, file icon themes and languages. They ask for your consent before using the network, programs or secrets. Plugin API 1.0 is a preview and may still change before it is declared stable.
  • Marketplace in Settings › Plugins and on the welcome screen, with official and community plugins, categories and version compatibility. Official plugins include Harbor Night, Material Icons, Solidity, String Tools, Key Promoter, Git Toolbox, Checkstyle, AI Completion, MyBatis, CSV Editor, Excalidraw, Graphviz, Regex Tester and License Header.
  • IntelliJ theme plugins import as OpenIDEA themes; icon themes can match by pattern and replace built-in icons.
  • openidea-plugin scaffolds, builds, checks and links plugins. See Writing OpenIDEA plugins.

Run and debug

  • Import run configurations from JetBrains projects (.run/*.run.xml, .idea/workspace.xml) and from .vscode/launch.json.
  • The configuration chooser pins favourites, lists recently started ones first and marks running ones with Rerun and Stop; Stop lists every running process with Stop All.
  • Choose the JRE and module of an Application configuration and the Node interpreter of an npm configuration; path fields have browse buttons and the dialog resizes.
  • Tomcat deployments update from compiled classes instead of rebuilding the WAR.
  • Completion in Evaluate, the Variables evaluate field and the Debug console; multi-line values stay on their row, and muted breakpoints show as grey dots.
  • Build Project for CMake projects.

Java, Kotlin and build tools

  • Pull Members Up / Push Members Down for Java.
  • Gradle: modules are imported from Gradle itself (includeFlat, included builds, computed includes), dependencies are analysed per configuration, and version catalog accessors navigate to their TOML entries, including catalogs from published artifacts.
  • Maven: compiler levels are inherited from parent POMs and pluginManagement, profile modules are included, and unlinked reactor modules are no longer imported.
  • jdtls gives memory back when idle and no longer shows as not responding.

Version control

  • Merge editor with conflicts visible wherever they come from, and a diff viewer that recognizes moved and edited code.
  • Clone from your GitHub account's repositories; the Clone dialog supports shallow clones.
  • The Push dialog shows the changed files of outgoing commits; commit changes group by staging state.
  • Manage Remotes from the Git Log branches pane, filter the log by several repositories, and Git › Add is bound to ⌥⌘A / Ctrl+Alt+A.
  • Comparisons open in their own resizable windows.

Languages and editor

  • PHP: PHPUnit and Composer support and a PHP interpreter setting.
  • ClickHouse data sources and a GraphQL window.
  • Syntax errors are marked in files no language server checks; language servers learn about files changed outside the editor and can register the files they watch; per-server features and code-action filters.
  • oxfmt is a first-class formatter next to Prettier.
  • New scratch files start from a language template; the TODO preview is editable.
  • Open a file at a line and column from the command line.

Agents

  • Reference folders from @ completion; environment variables for built-in agents.
  • Claude usage limits and session cost in the agent task header; answer permission requests from the conversation.
  • Idle agents stop, tasks run locally by default and worktrees live next to the project.

Terminal, remote and deployment

  • Split the terminal tool window into tab groups.
  • Forward ports of the remote host; Docker run configurations and database commands work against the remote server.
  • Deployment adds a standalone comparison, selected-file sync and folder browsing for mappings.

Desktop

  • French and Korean translations, and many more strings translated.
  • Undo restores files deleted in the Project view; dragged tabs reorder live.
  • Windows: all font faces and per-user fonts are listed, child processes get the login shell's variables, and killed process trees are waited for.
  • macOS: a fullscreen window group stays in one Space; wavy and dotted underlines show.
  • The Settings window opens faster and even when a startup step fails.

All changes

  • fix(vcs): wrap long refs in Git log commit details by @guozhiqiang123 in #999
  • fix(markdown): make Structure autoscroll work with Preview only by @jaw52 in #1037
  • fix(sdk): pass the calling window to project-scoped commands and keep project modules out of venv/pip runs by @pcastro93 in #964
  • feat(markdown): set the preview font size apart from the UI font by @jaw52 in #1045
  • feat(php): PHPUnit and Composer support, PHP interpreter setting and … by @ravuthz in #959
  • feat(terminal): split the tool window into tab groups, as IDEA by @StarryKira in #864
  • feat(vcs): 改进仓库克隆界面并支持浅克隆 by @whyareyouserious in #866
  • feat(vcs): recognize moved and edited code in the diff viewer by @shohruh-genius in #868
  • fix(deployment): accept absolute local paths in mapping and name menu entries after the server by @florentvdry in #885
  • feat(vcs): make the merge editor work like IntelliJ's merge tool by @ntbang0901 in #902
  • feat(vcs): make unresolved merge conflicts visible wherever they come from by @ntbang0901 in #905
  • fix(vcs): maximize diffs and keep file navigation by @kkMihai in #907
  • fix(terminal): git bash 补全——Windows 上 POSIX shell 也以登录 shell 启动 by @a-rookie-of-C-language in #1036
  • fix(windows): enlarge taskbar icon artwork and lettering by @l0ng-ai in #703
  • fix(sdk): follow scoop shims to the jdtls release script by @a-rookie-of-C-language in #804
  • fix(run): UTF-8 default charset for application JVMs forked by Maven and Gradle on Windows by @l0ng-ai in #751
  • feat(format): make oxfmt a first-class formatter next to Prettier by @d0whc3r in #1010
  • fix(run): find gradlew.bat / mvnw.cmd in the run directory on Windows by @l0ng-ai in #777
  • fix(tools): skip an unreachable revocation check when curl downloads on Windows by @kevinh458 in #833
  • fix(titlebar): prevent expanded main menu from covering toolbar widgets (#725) by @Bl0ck154 in #729
  • fix(remote): serve the database commands from the remote server by @a-rookie-of-C-language in #1029
  • feat(run): import run configurations from .vscode/launch.json by @andreabasile in #1030
  • fix(maven): inherit the compiler level from parent POMs and pluginManagement by @l0ng-ai in #1064
  • feat(agents): show Claude usage limits and session cost in the agent task header by @matthiasdemauroy in #1041
  • fix(agents): stop idle agents, run tasks locally by default, keep worktrees next to the project by @l0ng-ai in #1050
  • fix(ui): reorder dragged tabs live with a placeholder, like IDEA by @fuqiuluo in #1054
  • fix(vim): handle IME composition in Normal mode by @xtr-hub in #1055
  • feat(gradle): import modules from Gradle itself (includeFlat, included builds) and run through Gradle by @ntbang0901 in #715
  • fix(project-view): classify large Java and Kotlin files cut off in their body by @l0ng-ai in #1075
  • fix(ui): start pointer drags only while the primary button is held by @ntbang0901 in #1071
  • feat(deployment): browse for the folders of a mapping by @l0ng-ai in #1078
  • fix(maven): unlink modules of a reactor so jdtls stops importing them by @l0ng-ai in #1059
  • feat(vcs): Manage Remotes from the Remote node of the Git Log branches pane by @l0ng-ai in #1081
  • fix(tasks): show a progress title's executable path as the program name by @l0ng-ai in #1061
  • feat(vcs): group commit changes by staging state by @florentvdry in #1080
  • fix(github): find pull requests in every git repository of the project by @l0ng-ai in #1084
  • feat(find): browse for the Directory scope's folder in Find in Files by @l0ng-ai in #1085
  • feat(plugins): plugin system with extension points, consent, Wasm runtime and plugin API 1.0 by @l0ng-ai in #971
  • fix(editor): show wavy and dotted underlines on macOS by @l0ng-ai in #1086
  • feat(editor): mark syntax errors in files no language server checks by @l0ng-ai in #1087
  • fix(maven): include the modules of the profiles chosen in the Maven tool window by @l0ng-ai in #1092
  • feat(build): Build Project for CMake projects by @l0ng-ai in #1093
  • fix(vcs): link filtered Git Log commits past the commits a filter hides by @l0ng-ai in #1094
  • fix(settings): Export Settings includes IDE view options by @l0ng-ai in #1095
  • fix(remote-dev): list this machine's SSH configurations in a remote project's window by @l0ng-ai in #1097
  • fix(remote): Docker run configurations take their environment from the remote host by @l0ng-ai in #1098
  • fix(editor): the editor color scheme follows a switch between light and dark themes by @l0ng-ai in #1100
  • feat(debugger): completion in Evaluate, the Variables evaluate field and the Debug console by @l0ng-ai in #1102
  • feat(project-tree): Undo restores files deleted in the Project view by @l0ng-ai in #1103
  • fix(debugger): muted breakpoints show as grey dots, not as disabled ones by @l0ng-ai in #1104
  • feat(vcs): the Push dialog shows the outgoing commits' changed files by @l0ng-ai in #1105
  • fix(tools): offer to install only the first missing server of interchangeable ones by @andreabasile in #1082
  • feat(run): import JetBrains run configurations (.run/*.run.xml, .idea/workspace.xml) by @andreabasile in #1039
  • feat(run): browse for .env files from the Environment variables field by @l0ng-ai in #1106
  • feat(vcs): select several repositories in the Git log Repository filter by @l0ng-ai in #1107
  • feat(run): browse buttons on path fields and a resizable Run/Debug Configurations dialog by @l0ng-ai in #1108
  • feat(build-tools): navigate Gradle version catalog accessors to their TOML entries by @l0ng-ai in #1109
  • feat(lsp): per-server features and code-action-kinds filter by @andreabasile in #1099
  • fix(settings): open the Settings window's content even when a startup step fails; log frontend errors by @l0ng-ai in #1110
  • fix(agents): show a pending question in full in the permission banner by @l0ng-ai in #1111
  • fix(vcs): prefill the New Branch dialog with the current branch name by @a-rookie-of-C-language in #1073
  • feat(run): Stop lists the running processes with Stop All when several run by @l0ng-ai in #1113
  • fix(search): keep Search Everywhere's keys from the editor's actions behind it by @l0ng-ai in #1114
  • fix(vcs): refresh packed refs after file replacement by @marianomd in #1115
  • fix(i18n): translate the Delete question, prompt labels and the shortcut recorder placeholder by @l0ng-ai in #1116
  • fix(debugger): identifier boundary check for astral letters under V8 by @l0ng-ai in #1117
  • feat(run): mark running configurations in the chooser, with Rerun and Stop by @l0ng-ai in #1118
  • feat(run): pin configurations to the top of the chooser by @l0ng-ai in #1119
  • feat(run): choose the Node interpreter of an npm configuration by @l0ng-ai in #1120
  • feat(run): list recently started configurations at the top of the chooser by @l0ng-ai in #1121
  • feat(i18n): add Korean by @fhrmrk in #1122
  • feat(app): open a file at a line and column from the command line by @l0ng-ai in #1123
  • Revert "feat(i18n): add Korean" (#1122) by @l0ng-ai in #1124
  • feat(vcs): clone from the repositories of your GitHub account by @l0ng-ai in #1125
  • feat(remote-dev): forward ports of the remote host by @l0ng-ai in #1131
  • feat(ui): make preview panes selectable and copyable by @qtvbwfn in #1127
  • fix(todo): only count real comment markers around TODO keywords by @qtvbwfn in #1128
  • feat(todo): edit the file right in the TODO preview by @qtvbwfn in #1129
  • fix(lsp): tell language servers about files changed outside the editor by @l0ng-ai in #1135
  • feat(run): update a Tomcat deployment from compiled classes instead of rebuilding the WAR by @l0ng-ai in #1140
  • fix(i18n): translate notification titles passed through helpers by @l0ng-ai in #1142
  • fix(todo): colour TODO comments in the TODO tool window's preview by @l0ng-ai in #1143
  • feat(run): import the Node interpreter of JetBrains npm configurations by @l0ng-ai in #1144
  • fix(remote): keep the host in a remote window's title by @l0ng-ai in #1146
  • fix(editor): keep an editor color scheme chosen together with the theme by @fhrmrk in #1138
  • feat(gradle): navigate to version catalogs imported from published artifacts by @l0ng-ai in #1149
  • fix(i18n): name each Docker prune and Compose operation in a full sentence by @l0ng-ai in #1150
  • fix(deployment): Windows absolute mapping paths, and a flaky plugin syntax test by @l0ng-ai in #1130
  • fix(i18n): translate Git operation titles and their notifications by @l0ng-ai in #1154
  • feat(agents): environment variables for built-in agents by @l0ng-ai in #1157
  • fix(java): give jdtls memory back when idle and stop it showing as not responding by @l0ng-ai in #1137
  • feat(i18n): add Korean by @fhrmrk in #1126
  • feat(i18n): add French and check every locale's catalogs by @J-Dudek in #730
  • fix(run): keep temporary run configurations following the toolchain settings by @l0ng-ai in #1167
  • fix(i18n): translate the GitHub pull request operations' progress and failure titles by @l0ng-ai in #1169
  • feat(database): add ClickHouse data sources by @kkMihai in #865
  • fix(agents): answer a permission request from its line in the conversation by @l0ng-ai in #1170
  • fix(markdown): preview headings in the preview's text colour by @l0ng-ai in #1171
  • fix(vcs): open comparisons in independently resizable native windows by @xdpan1234 in #818
  • fix(java): preserve mapped toolchain paths and refresh Maven run settings by @l0ng-ai in #1147
  • feat(deployment): add standalone comparison and selected-file sync by @marianomd in #1070
  • feat(run): choose the JRE and the module of an Application configuration by @l0ng-ai in #1172
  • fix(editor): release a decision to leave whose project change never came by @l0ng-ai in #1178
  • perf(settings): open the Settings window shell before its startup chain by @ppxb in #1175
  • feat(window): graphql window by @kidp2h in #1166
  • feat(vcs): bind Git › Add to ⌥⌘A / Ctrl+Alt+A by @l0ng-ai in #1159
  • fix(run): remove temporary configurations from Edit Configurations for good by @l0ng-ai in #1180
  • feat(gradle): analyze a Gradle project's dependencies per configuration by @l0ng-ai in #1181
  • feat(plugins): let icon themes match by pattern, replace built-in icons and describe their settings page by @pdasilem in #1177
  • fix(process): give child processes the login shell's variables the IDE lacks by @l0ng-ai in #1195
  • feat(refactor): Java Pull Members Up / Push Members Down by @fhrmrk in #1183
  • fix(debugger): keep multi-line values on their row in the variables tree by @l0ng-ai in #1196
  • feat(plugins): import IntelliJ theme plugins by @ldg030201 in #1184
  • fix(window): keep a fullscreen project window group in one Space on macOS by @l0ng-ai in #1218
  • feat(plugins): community plugins, version compatibility and categories in the marketplace by @l0ng-ai in #1226
  • fix(fonts): enumerate all faces and per-user fonts on Windows by @norandom in #908
  • test(plugins): don't time the plugin host tests against the runner's speed by @l0ng-ai in #1250
  • fix(agents): wait for the agent to exit before deleting its worktree by @l0ng-ai in #1240
  • test(plugins): let the first call in the deadline test start its instance by @l0ng-ai in #1257
  • fix(plugins): list the marketplace and install plugins from the welcome screen by @l0ng-ai in #1256
  • feat(plugins): leave room in plugin API 1.0 for what will grow by @l0ng-ai in #1245
  • test(plugins): repeat the cancel until the call is running in the cancel test by @l0ng-ai in #1263
  • feat(agents): reference folders from @ completion by @l0ng-ai in #1210
  • fix(ui): no focus ring on controls that were only clicked by @l0ng-ai in #1213
  • fix(lsp): let language servers register the files they watch by @l0ng-ai in #1223
  • test: retry first edit-path calls and wait for effects in flaky tests by @l0ng-ai in #1271
  • fix(process): wait for a killed tree's descendants to exit on Windows by @l0ng-ai in #1272
  • fix(plugins): move the repository URL to the gear menu and drop the no-repository hint by @l0ng-ai in #1282
  • chore: move the JDT LS components out of plugins/ by @l0ng-ai in #1292
  • fix(ui): treat every second click of a burst as a double-click by @l0ng-ai in 329ad2c
  • fix(workbench): show splash-style progress when opening projects by @l0ng-ai in 4d086c4
  • style(ui): remove hover backgrounds from icon actions by @l0ng-ai in 42968a3
  • fix(window): declare the detach fullscreen flag only on macOS by @l0ng-ai in d20be9c
  • test(sdk): only use a subst drive that shows the test's own directory by @l0ng-ai in 0bc0396
  • test(plugins): time only the restart wait in the crash backoff test by @l0ng-ai in 48e23c0
  • fix(plugins): build new plugins outside the repository by @l0ng-ai in 4b5ef70
  • fix(editor): describe a Java file outside every project accurately by @l0ng-ai in 52360c7
  • feat(scratch): start new scratch files from a language template by @l0ng-ai in 3100aa2
  • test(plugins): build the command template with the SDK's lockfile by @l0ng-ai in c1ea7a9
  • fix(workspace): keep a previewed edit valid when its file is saved by @l0ng-ai in 0ecbc6b
  • fix(editor): don't autosave while focus is in a popup over the editor by @l0ng-ai in 30b0549
  • docs: introduce plugins in the README by @l0ng-ai in 699c71c
  • ci: stop requiring a linked issue on PRs by @l0ng-ai in ecd593e
  • fix(plugins): rebuild the hello fixture after its source comment changed by @l0ng-ai in d935515

New Contributors

Full Changelog: v0.1.35...v0.1.36

Don't miss a new openidea release

NewReleases is sending notifications on new releases.