OpenIDEA 0.1.37 opens WSL projects directly, debugs Flutter apps, adds Git Blame in diffs and an Android Logcat tool window, and ships Plugin API 1.1.
Download
| Architecture | Windows | macOS | Linux |
|---|---|---|---|
| x86-64 (64-bit) | EXE MSI | Intel | AppImage DEB RPM |
| AArch64 (ARM64) | EXE MSI | Apple Silicon | AppImage DEB RPM |
Remote development: openidea-server for Linux x86-64 · Linux ARM64 · macOS x86-64 · macOS ARM64, each with a .sha256 file.
Already installed? OpenIDEA updates itself: use Check for Updates.
What's new
Remote and WSL
- Open WSL projects through a WSL transport instead of the Windows network share; folders on
\\wsl.localhost\…also list faster. - A failed SSH backend upload is reported instead of waiting forever.
- Sync with Deployed to the default server opens in its own window.
Plugins (Preview)
- Plugin API 1.1 (
openidea:plugin@1.1.0) addsvcs.remotes,ui.copy-to-clipboardandui.open-url; plugin views can open a project file at a line, and tool windows can use an SVG icon from the package. - Plugins built for API 1.0 keep loading: 1.0.0 is frozen, and every later version is checked against it.
openidea-plugin checkand install refuse components that don't link against the host; the marketplace index loads on first open.
Run and debug
- Debug Flutter apps through the Flutter debug adapter.
- OpenIDEA asks before closing while Run/Debug processes are running.
- Session tabs have icons, a Debug button in the run panel, and can be closed.
- Java: Application and Spring Boot configurations run from the project root; Run is offered for single files whose main class isn't the first type and for classes whose superclass declares
main; TestNG classes annotated with@Testare recognized. - Python: modules with relative imports run with
-m; uv / poetry configurations debug in the project's environment. - Gradle tests appear in the test tree as they run.
- Debug console: coloured Spring Boot output, Soft-Wrap and Scroll to End; input is evaluated as expressions under CodeLLDB.
- JetBrains Spring Boot and Application run configurations are imported, and Tomcat updates web resources from the folders the WAR is built from.
Java, Kotlin and build tools
- Gradle: link and unlink independent Gradle builds.
- Maven: add POMs outside the root reactor, list the profiles of
settings.xml, and build with the Maven Daemon (mvnd). - Android: Logcat tool window.
- New inspection: Serializable class without
serialVersionUID.
Version control
- Git Blame on either side of a diff, and the history of the selected lines.
- The Git log graph is drawn with corrected lanes and straight diagonal lane changes, and history views expand.
- The Push dialog shows the selected commit's details, and a long commit list scrolls inside it.
- Commit messages start from the repository's commit template.
- Delete unversioned files from the Changes view with Delete… or the Delete key.
- Change Repository or Account… works before a repository is connected.
- The Worktrees list marks the current worktree, and filtering the Git log is faster.
Languages and editor
- PHP: switch the language level from the status bar, built-in live templates, and Intelephense stubs and include paths.
- Unity projects are detected and asset metadata is preserved.
- Colour preview swatches in the gutter, and global variables are coloured.
- Markdown: YAML front matter shows as a table in the preview, and local anchor links are followed.
- TypeScript imports update when files move, and renames update every use instead of aliasing the import; diagnostics are pulled from servers that provide them.
- Each file has its own find bar; Go to File finds git-ignored files such as
.env. - Copy Reference copies
path:lineunless the caret is on a declaration's name.
Database
- Global data sources listed in every project.
- Search and pagination in query results; editing multi-line cells keeps line breaks.
Agents
- The composer combines model and effort, and mode and Allow All.
- Long conversations reopen quickly; tables, headings and quotes are styled in messages.
Desktop
- Spanish, Polish and Portuguese translations.
- Group recent projects on the welcome screen.
- Preview themes from the gear menu and Settings, and import theme plugins from every JetBrains IDE.
- Saved passwords are kept in the OS credential store.
- Linux: open and save dialogs go through xdg-desktop-portal.
- macOS: taps and clicks register reliably, window drags start only for a held press, a project opened over a fullscreen tab group joins it as a tab, and terminal IME input isn't dropped.
- Windows: Python is found without
python3.exe, and Spring endpoints are listed.
All changes (151 pull requests and commits)
- test(e2e): cover the core editing, code intelligence, VCS, run and debug flows by @l0ng-ai in #1277
- fix(workbench): focus a tool window's content once it loads by @l0ng-ai in #1280
- fix(editor): allow text selection and input in editable elements by @nguyenmuoi157 in #1209
- fix(ui): keep the arrow cursor on scrollbars by @ppxb in #1191
- fix(editor): show pinned tabs in their own row when Multiple rows is on by @ntbang0901 in #1198
- fix(editor): keep tooltips full width at the editor's right edge by @ntbang0901 in #1203
- fix(run): offer Run for classes whose superclass declares main by @ntbang0901 in #1204
- fix(editor): give each file its own find bar, query and caret by @jaw52 in #1296
- fix(vcs): keep the current branch name in New Branch even though it exists by @l0ng-ai in #1305
- fix(search): stop an outer repository's .gitignore at a nested repository by @l0ng-ai in #1309
- fix(search): stop an outer repository's .gitignore from hiding a nested repository by @jaw52 in #1304
- fix(window): stop project tab switches from moving the group window by @xtr-hub in #1287
- fix(database): keep line breaks when editing multi-line cells by @l0ng-ai in #1311
- fix(vcs): Show History on a submodule folder shows the submodule's history by @l0ng-ai in #1312
- fix(refactor): apply server-versioned edits to files that aren't open by @l0ng-ai in #1295
- feat(vcs): Delete… for unversioned files in the Changes view by @l0ng-ai in #1314
- fix(lsp): rename TypeScript symbols everywhere instead of aliasing the import by @l0ng-ai in #1302
- fix(lsp): pull diagnostics from servers that provide them by @l0ng-ai in #1307
- fix(tools): run Kotlin LSP's launcher, not its deprecated wrapper script by @l0ng-ai in #1310
- test(lsp): smoke-test everyday code intelligence per language with real servers by @l0ng-ai in #1299
- fix(agents): don't show a branch for a task in a folder that isn't a repository by @l0ng-ai in #1316
- test(host): keep the ignore fixtures clear of a machine global excludes by @qtvbwfn in #1279
- fix(index): let Go to File find git-ignored files such as .env by @jaw52 in #1313
- feat(php): PHP language level for Intelephense by @DanielADK in #1264
- feat(vcs): show the history of the selected lines by @ldg030201 in #1266
- fix(ui): highlight the menu row under the pointer by @tomgor in #1242
- fix(search): search hidden and git-ignored files outside ignored folders by @jaw52 in #1318
- fix(editor): keep gutter implementation markers across tab switches by @l0ng-ai in #1321
- fix(run): merge Gradle console results into the reported test classes by @l0ng-ai in #1323
- feat(i18n): add Portuguese (pt) locale support and base catalog by @Psyducks2 in #914
- fix(markdown): drop raw style and form markup from rendered Markdown by @ntbang0901 in #1320
- fix(agents): style tables, headings and quotes in agent messages by @ntbang0901 in #1324
- feat(ui): syntax-highlight the read-only source previews by @qtvbwfn in #1284
- feat(run): IDEA-style session tab icons with a Debug launch switch by @qtvbwfn in #1283
- feat(build): Maven Daemon (mvnd) support with a settings switch by @qtvbwfn in #1288
- feat(run,workbench): clean up removed workspace members services; bottom stripe defaults and limit by @qtvbwfn in #1289
- fix(editor): Copy Reference and Paste as Plain Text in the editor's Copy / Paste Special menu by @l0ng-ai in #1333
- fix(editor): follow local Markdown anchor links by @pravdomil in #1328
- fix(run): run Python modules with relative imports with -m by @l0ng-ai in #1338
- fix(run): report Gradle tests in the test tree as they run by @l0ng-ai in #1339
- feat(vcs): fill the commit message with the repository's commit template by @l0ng-ai in #1340
- feat(editor): color preview swatches in the gutter by @l0ng-ai in #1341
- feat(unity): detect projects and preserve asset metadata by @hacbit in #1207
- fix(lsp): apply code actions whose follow-up command no server provides by @l0ng-ai in #1343
- fix(lsp): update TypeScript imports when files move by @l0ng-ai in #1346
- feat(vcs): correct Git log graph projection and expand history views by @shohruh-genius in #1076
- fix(project): Open in Terminal from the editor opens the edited file's folder by @l0ng-ai in #1348
- fix(ssh): report a failed backend upload instead of waiting forever by @l0ng-ai in #1350
- fix(search): align the Find / Replace in Files popup with IDEA by @fuqiuluo in #1227
- feat(markdown): show YAML front matter as a table in the preview by @l0ng-ai in #1351
- feat(i18n): add Polish translations by @kosaa in #1344
- fix(editor): no lookbehind in the color preview's pattern by @l0ng-ai in #1352
- fix(debugger): coloured Spring Boot output, Soft-Wrap and Scroll to End in the debug console by @l0ng-ai in #1353
- test(lsp): smoke-test parameter info, structure, auto-import, Optimize Imports and file moves by @l0ng-ai in #1355
- test(run): smoke-test running and testing each language's fixture by @l0ng-ai in #1332
- feat(php): Intelephense stubs for required extensions, Additional stubs and Include paths by @l0ng-ai in #1361
- feat(php): built-in PHP live templates by @l0ng-ai in #1372
- test(vcs): walk a fixture through edit, commit, branch, stash and a conflicting merge by @l0ng-ai in #1360
- fix(debugger): evaluate console input as expressions under CodeLLDB by @l0ng-ai in #1375
- fix(run): write Gradle init scripts on the host that runs the build by @l0ng-ai in #1377
- fix(run): run a Python module that imports relatively as a module of its package by @l0ng-ai in #1369
- fix(terminal): keep IME commit gating after a composition by @devadapter in #1231
- feat(php): switch the PHP language level from the status bar by @DanielADK in #1371
- fix(debugger): ignore a failed attach to a JVM that re-listened as its debugger detached by @l0ng-ai in #1380
- feat(plugins): let plugin tool windows use an SVG icon from the package by @yzPeedro in #1363
- feat(plugins): let plugin views open a project file at a line by @yzPeedro in #1362
- feat(editor): colour global variables (the semantic global modifier) by @l0ng-ai in #1393
- fix(debugger): debug uv / poetry run configurations in the project's environment by @l0ng-ai in #1395
- fix(vcs): let Commit and Shelf tree names use the whole row width by @l0ng-ai in #1396
- test(debug): smoke-test debugging each language's fixture by @l0ng-ai in #1357
- fix(themes): add --syn-global to the Harbor Night scheme and the token reference by @l0ng-ai in #1400
- test(project): smoke-test opening each language's fixture by @l0ng-ai in #1398
- feat(java): add the "Serializable class without 'serialVersionUID'" inspection by @l0ng-ai in #1401
- feat(vcs): show the selected commit's details in the Push dialog by @l0ng-ai in #1402
- feat(run): recognize TestNG classes annotated with @test by @l0ng-ai in #1403
- fix(editor): keep the caret and view when a file changes in distant places by @ntbang0901 in #1329
- fix(dev): rewrite src/bindings.ts only when the bindings change by @l0ng-ai in #1404
- feat(vcs): draw lane changes in the Git log graph as straight diagonals by @l0ng-ai in #1406
- fix(plugins): hash package paths with forward slashes on every OS by @l0ng-ai in #1315
- feat(database): global data sources listed in every project by @l0ng-ai in #1407
- fix(workbench): narrow the icon-only tool window stripe to match IDEA by @jaw52 in #1405
- fix(security): keep saved passwords in the OS credential store by @LittleGuava in #910
- fix(vfs): preserve removals of files discovered by scans by @l0ng-ai in #1412
- build(cargo): keep only line tables in dev debug info by @LittleGuava in #1260
- ci: build with line tables only and move actions off Node 20 by @ldg030201 in #1194
- fix(debugger): send Windows netcoredbg source paths with backslashes by @huanglininn in #1409
- fix(tools): reuse gh login for GitHub API downloads by @qjlqyf in #967
- feat(linux): use xdg-desktop-portal for native file dialogs by @pcastro93 in #1176
- fix(plugins): read the marketplace index on first open by @l0ng-ai in #1378
- fix(host): don't block the event loop while a closing project shuts down by @l0ng-ai in #1419
- build: name the quick-xml version ide-host uses in Cargo.lock by @l0ng-ai in #1425
- fix(run): run single Java files whose main class is not the first top-level class by @ldg030201 in #1417
- fix(titlebar): start window drags on macOS only for a press that is still held by @ntbang0901 in #1074
- fix(ui): deliver the click of a tap WebKit reorders on macOS by @ntbang0901 in #1072
- fix(plugins): match IntelliJ's colours for the gutter, the selected tab and empty scheme attributes by @ldg030201 in #1424
- feat(i18n): add Spanish (es-MX) translations by @FizzyKey8 in #1426
- fix(tools): find Python on Windows without python3.exe by @l0ng-ai in #1427
- fix(vfs): report files deleted on macOS again by @l0ng-ai in #1435
- feat(gradle): link and unlink independent Gradle builds by @gudcks0305 in #1413
- feat(maven): add POMs outside the root reactor as Maven projects by @l0ng-ai in #1446
- fix(editor): let the overview lane own the scrollbar so a drag cannot select text by @IsGuibo in #1449
- fix(terminal): deliver the IME commits xterm drops on macOS by @DomKing in #1441
- fix(http-client): list Spring endpoints on Windows by @l0ng-ai in #1456
- feat(app): ask before closing with running Run/Debug processes by @ppxb in #1445
- fix(agents): keep registry installs running after Settings closes by @l0ng-ai in #1460
- fix(python): name the project interpreter in the status bar wherever it lives by @l0ng-ai in #1461
- fix: reopen long agent conversations quickly and pack the Git log graph by @l0ng-ai in #1453
- fix(editor): keep selected text visible over highlighted ranges by @l0ng-ai in #1454
- feat(database): search and pagination on result query by @kidp2h in #1432
- fix(themes): preserve language-specific ICLS styles by @marianomd in #1457
- fix(ui): install the reordered-tap shim only in WebKit by @l0ng-ai in #1462
- feat(welcome): group recent projects by @l0ng-ai in #1465
- fix(macos): add a project opened over a fullscreen tab group as a tab by @l0ng-ai in #1467
- fix(ui): don't finish a press the engine releases itself on macOS by @l0ng-ai in #1463
- feat(maven): list the profiles of settings.xml in the Maven tool window by @l0ng-ai in #1470
- feat(plugins): add vcs.remotes, ui.copy-to-clipboard and ui.open-url by @dengliu in #1366
- fix(java): run Application and Spring Boot configs from the project root by @l0ng-ai in #1475
- feat(vcs): annotate either side of a diff with Git Blame by @l0ng-ai in #1476
- fix(plugins): refuse components that don't link against the host in check and install by @l0ng-ai in #1471
- fix(debugger): let session tabs be closed by @payailk in #1472
- feat(debugger): debug Flutter apps through the Flutter debug adapter by @payailk in #1474
- feat(agents): align Copilot model, effort, and mode composer UX with IntelliJ Air by @dengliu in #958
- feat(android): add a Logcat tool window by @payailk in #1473
- fix(deployment): open Sync with Deployed to the default server in its own window by @l0ng-ai in #1482
- fix(vcs): show the diff of the file selected in the changes tree by @DomKing in #1480
- feat(vcs): Delete key deletes unversioned files in the Changes view by @jaw52 in #1483
- fix(ui): merge adjacent selected tree rows into one block by @l0ng-ai in #1486
- fix(editor): keep YAML highlighting after comment lines in longer files by @l0ng-ai in #1489
- fix(vcs): cap the Push dialog's height so a long commit list scrolls inside it by @jaw52 in #1491
- fix(github): make Change Repository or Account… work before a repository is connected by @l0ng-ai in #1492
- chore(terminal): log each session's start, first output and first input by @l0ng-ai in #1493
- feat(remote): open WSL projects through a WSL transport by @ntbang0901 in #989
- feat(themes): preview themes from the gear menu and Settings, and import theme plugins from every JetBrains IDE by @ldg030201 in #1498
- fix(project): open a window's project once when opens race by @l0ng-ai in #1503
- fix(run): import JetBrains Spring Boot and Application configurations by @l0ng-ai in #1504
- feat(vcs): mark the current worktree in the Worktrees list by @l0ng-ai in #1506
- fix(tomcat): update web resources from the folders the WAR is built from by @l0ng-ai in #1508
- feat(editor): Copy Reference copies path:line unless the caret is on a declaration's name by @jaw52 in #1507
- fix(plugins): hand plugins paths in one form on Windows by @l0ng-ai in #1500
- ci: skip jobs a pull request can't affect and bound every job's run time by @l0ng-ai in #1501
- test(plugins): keep one snapshot of the released plugin API and require it at release by @l0ng-ai in #1512
- perf(vcs): filter the Git log with git log instead of a background search index by @l0ng-ai in #1537
- fix(agents): keep session header controls inside a narrow conversation column by @l0ng-ai in #1540
- fix(plugins): restore the hello fixture's source fingerprint by @l0ng-ai in a4a16d0
- docs: remove the Where it's going section from the README by @l0ng-ai in 59f1a1e
- fix(gradle): unlink a build by the path the UI sends by @l0ng-ai in 43c85ce
- fix(plugins): describe the clipboard capability's command use by @l0ng-ai in 10a3ac9
- test(plugins): freeze plugin API 1.0.0 by @l0ng-ai in 3ef247c
- test(plugins): use a function no host has in the missing-import check case by @l0ng-ai in 893a549
- fix(i18n): translate the Logcat tool window title in Chinese by @l0ng-ai in c57156e
- docs(plugins): describe released plugin API versions as frozen by @l0ng-ai in 7d267ab
New contributors
Thanks to everyone who contributed for the first time:
- @nguyenmuoi157 made their first contribution in #1209
- @DanielADK made their first contribution in #1264
- @tomgor made their first contribution in #1242
- @Psyducks2 made their first contribution in #914
- @pravdomil made their first contribution in #1328
- @hacbit made their first contribution in #1207
- @kosaa made their first contribution in #1344
- @devadapter made their first contribution in #1231
- @yzPeedro made their first contribution in #1363
- @LittleGuava made their first contribution in #910
- @huanglininn made their first contribution in #1409
- @FizzyKey8 made their first contribution in #1426
- @gudcks0305 made their first contribution in #1413
- @IsGuibo made their first contribution in #1449
- @DomKing made their first contribution in #1441
- @payailk made their first contribution in #1472
Full Changelog: v0.1.36...v0.1.37