What’s New in IntelliJ IDEA 2024.1? Full‑Line Completion, Java 22 Support and More
IntelliJ IDEA 2024.1 introduces full‑line code completion powered by a local deep‑learning model, Java 22 language support, a revamped terminal, sticky lines in the editor, enhanced Maven handling, improved debugging, richer Spring assistance, advanced HTTP client features, and new database tools, all aimed at boosting developer productivity and safety.
Disclaimer Do not over‑think any article! Everything is context‑dependent; there is no one‑size‑fits‑all solution. Read the points, reflect on your own situation, and consider the perspective of an outsider. Ultimately, your practice determines the path you follow.
Major Updates
Full‑Line Code Completion
Java full‑line code completion is now seamlessly integrated into the IDE via an advanced deep‑learning model that predicts and suggests entire lines based on context, improving coding efficiency. The model runs entirely on the local device, ensuring data privacy without external server communication.
Java 22 Support
The IDE adds support for the final iteration of unnamed variables and patterns, the second preview of string templates and implicit class declarations, as well as the main method and super(...) new‑statement preview.
New Terminal
The built‑in terminal receives visual and functional enhancements that simplify command‑line tasks.
Sticky Lines in the Editor
Sticky lines keep key structural elements such as class or method headers fixed at the top of the editor while scrolling large files, allowing quick navigation by clicking the pinned line.
User Experience
IDE Features Available During Indexing
Basic IDE functions like syntax highlighting and code completion remain usable for Java while the project index is being built. Navigation actions such as “Go to class” and “Go to symbol” are still functional, improving startup experience.
IDE Scaling Options
You can now shrink the entire IDE UI to 90 %, 80 % or 70 % of its original size, allowing flexible adjustment of UI elements.
Java
Language Injection in String Templates
Using annotations, the IDE can automatically select the appropriate language for injection. Alternatively, the “Inject language or reference” intention (⌥Enter) lets you manually choose a language from a list, after which the IDE suggests inserting the language annotation and provides actions to edit the injected fragment in a separate editor pane.
Improved Log Workflow
Log messages in the console now link directly to the generating code. The IDE suggests adding a logger where needed and simplifies inserting logger statements, even when the logger instance is out of scope.
New Inspections and Quick‑Fixes
Inspections can replace calls to Long.hashCode() or Double.hashCode() with more appropriate alternatives. Quick‑fixes streamline switching between implicit and explicit class declarations, suggest reusing existing static methods, report unreachable code, and provide better code‑reuse suggestions.
Multi‑Release JAR Support
The “Go to declaration” action now selects the correct class version from a multi‑release JAR based on the module’s language level. “Go to class” also shows additional version information, and debugging “Step Into” follows the JDK version rather than the module language level.
Redo Conflicts Detected Dialog
The dialog now mirrors the editor content, offering clearer conflict insight. Window size adjustments are saved, and the dialog can be fully navigated via keyboard shortcuts.
Rename Refactoring Embedded Hint
An embedded hint appears on changed code elements; clicking it updates all references in the codebase to the new name.
Build Tools
Maven Project Opening Speed
IntelliJ parses pom.xml to build the project model, delivering a complete project structure within seconds and allowing work to begin while background synchronization continues.
Maven Shade Plugin Rename Support
The IDE now recognizes rename refactoring for the Maven Shade plugin, providing accurate highlighting and navigation for shaded JARs and their dependencies.
Quick Documentation Popup Source Access
Pressing F1 in the quick‑doc popup now offers a direct link to download the source file of the displayed library or dependency.
Maven Repository Window
The Maven tool window now lists repository entries and their indexing status directly, instead of the previous separate settings location.
Run / Debug
Inline Breakpoints for Multiple Statements
When a line contains a lambda or return statement, the IDE shows inline markers that let you set additional breakpoints on each statement, each configurable independently.
Collapsed Library Calls in Call Stack
Library frames are collapsed by default in the Debug tool window’s call stack. You can expand the group to inspect library calls, and toggle the “Hide Frames from Libraries” filter via the toolbar or context menu.
Frameworks and Technologies
Improved Spring Bean Completion and Autowiring
All beans in the application context now have auto‑completion and autowiring support. Constructor‑injected beans propagate autowiring to related fields, and Lombok’s @RequiredArgsConstructor injection also triggers field autowiring.
Enhanced Spring Diagram
Spring model diagrams are more accessible with new icons, bean markers, and the ability to toggle visibility of library beans (hidden by default).
HTTP Client Improvements
The HTTP client now supports additional authentication methods, including PKCE authorization code and device flow, with automatic handling of code_challenge and code_verifier. It also adds support for SSL, proxy, and HTTP/2 via the Netty backend, and the toolbar has been restyled for a cohesive look.
Search Everywhere – Endpoints Tab
An “Endpoints” tab appears in Search Everywhere when the project contains Spring, Micronaut, Ktor, or Quarkus, listing detected endpoints.
HTTP Header Completion
HTTP headers now auto‑complete in common scenarios such as Spring WebClient and REST‑Assured tests, with context‑aware suggestion pop‑ups.
Optimized JSON Schema Handling
JSON schema validation and completion have been optimized, resulting in up to a ten‑fold speed increase for schema checks in real‑world Azure Pipelines files and reduced memory usage.
Database Tools
Local Filtering in Data Editor
The data editor now offers a local filter that lets you quickly filter rows by column values without sending a query to the database. The filter affects only the current page but can be expanded by adjusting page size or extracting all data. The “Enable Local Filter” icon toggles the feature.
Session Simplification
Manual session selection has been removed. You can now attach files by selecting a data source directly, and functions can be launched from the console or file without choosing a session, streamlining the workflow.
Final Note
These updates aim to enhance developer productivity, improve safety, and provide a smoother experience across coding, debugging, building, and database management within IntelliJ IDEA 2024.1.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
JavaEdge
First‑line development experience at multiple leading tech firms; now a software architect at a Shanghai state‑owned enterprise and founder of Programming Yanxuan. Nearly 300k followers online; expertise in distributed system design, AIGC application development, and quantitative finance investing.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
