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

3 hours ago

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) adds vcs.remotes, ui.copy-to-clipboard and ui.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 check and 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 @Test are 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:line unless 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:

Full Changelog: v0.1.36...v0.1.37

Don't miss a new openidea release

NewReleases is sending notifications on new releases.