Notable Changes in IntelliJ Platform and Plugins API 2025.*
Early Access Program (EAP) releases of upcoming versions are available here.
2025.3
IntelliJ Platform 2025.3
- Threading Model changes
Several write actions now run on background threads instead of EDT:
VFS refresh
document commit (PSI reparsing)
document saving on frame deactivation
API changes and additions:
Dispatchers.UI— new coroutine dispatcher for the UI thread that does not acquire write-intent lock; use it for pure UI operations that do not need the read/write lock protection (as opposed toDispatchers.EDT, which acquires write-intent lock for legacy model access).backgroundWriteAction()andreadAndBackgroundWriteAction()— stabilized suspending functions for executing write actions on a background thread.Editor model data (document, caret, selection, folding) no longer requires a read lock when accessed on EDT.
Tests relying on spinning the AWT event queue to wait for write actions may hang; use
PlatformTestUtil.dispatchAllInvocationEventsInIdeEventQueue()which is adapted to await background write actions.
IdeProductMode: Detecting Frontend/Backend/Monolith ModeIdeProductMode(experimental) allows plugins to determine the current application mode at runtime:IdeProductMode.isBackend— the IDE runs as a remote development backend hostIdeProductMode.isFrontend— the IDE runs as a frontend (JetBrains Client) connected to a remote hostIdeProductMode.isMonolith— the IDE runs as a standard local (monolith) instance
Use this API to implement mode-specific behavior, e.g., to skip UI-related functionality when running as a backend.
- LSP API updates
New LSP capabilities are supported, all enabled by default and controllable via
LspServerDescriptor.lspCustomization:Server Initiated Progress (
$/progress)Highlight Usages In File (
textDocument/documentHighlight)Go To Symbol (
workspace/symbol)File Structure, Breadcrumbs, and Sticky Lines (
textDocument/documentSymbol)Parameter Info (
textDocument/signatureHelp)
See Supported Features for the full list.
- The Islands UI theme is now default
The Islands theme is now the default UI theme. Custom themes must be updated to support it. See Supporting Islands Theme for migration steps including setting the parent theme, adapting background colors, border colors, and selected tab colors.
- Search Everywhere: New API compatible with Remote Development
The Search Everywhere architecture has been redesigned to support remote development by separating data/logic from UI presentation, enabling results to be serialized and transmitted across process boundaries. New API components:
SeItemsProviderreplacesSearchEverywhereContributoras the main interface for providing search results. It can run on both backend and frontend and returns items with serializable presentation data.SeItemsProviderFactoryis the new extension point for registering result sources.SeTabandSeTabFactoryrepresent frontend-only tab abstractions for the Search Everywhere dialog.SeLegacyItemPresentationProviderprovides a temporary adapter for migrating existingSearchEverywhereContributorimplementations.
Existing plugins continue working in local (monolith) environments via adapters. The new API is enabled by default in remote development. Migration is recommended now; the old API will be deprecated in 2026.2. See also blog post for details.
2025.2
IntelliJ Platform 2025.2
- LSP and Template Languages APIs are available to free tier users
Language Server Protocol (LSP) and Template Languages APIs no longer require a paid subscription in IntelliJ IDEA. While the LSP implementation is not part of the Community Edition, it will still remain enabled in IntelliJ IDEA even without an active paid subscription. Although closed-source, the LSP implementation will remain fully available for third-party plugins free of charge. See LSP Plugin Setup for the updated setup.
- Threading Model changes
Several APIs are stabilized and one is deprecated:
runBlockingCancellable(),currentThreadCoroutineScope(), andcoroutineToIndicator()are promoted to stable.blockingContext()is now a no-op and deprecated (IJPL-445). The platform manages thread contexts automatically; remove all usages.Threads blocked on read/write lock acquisition now react to cancellation and throw
CancellationExceptioninstead of proceeding.
2025.1
IntelliJ Platform 2025.1
- Threading Model changes
SwingUtilities.invokeLater()andSwingUtilities.invokeAndWait()no longer automatically wrap their callbacks in the Write-Intent lock (IJPL-149317). Code accessing the PSI/VFS model inside these callbacks must now use an explicit read or write action. Pure UI-only operations require no changes. Similarly, coroutines launched onDispatchers.Mainno longer acquire the Write-Intent lock (IJPL-178581). UseDispatchers.EDTto preserve the previous behavior, or move model access toDispatchers.Defaultwith an explicitreadAction/writeAction.edtWriteAction()is introduced as a stable, explicitly named alternative towriteAction()for write actions that must run on EDT.ContainerUtilusing unmodifiable collectionsMethods marked with
@Unmodifiablenow really return unmodifiable collections (only in internal /test mode for now).