Documentation previews for Hugging Face models and datasets, local ML-based full line code completion for JavaScript and TypeScript, sticky lines in the editor, and in-editor code review
Get all the information about any Hugging Face models or datasets you’re working with right inside PyCharm. Hover over a dataset or model name to view its description in a popup, or press F1 to open the Documentation tool window next to the editor. To navigate to the documentation on the Hugging Face website, use ⌘Click (Ctrl+Click on Windows and Linux).
PyCharm 2023.3 brought local ML-powered full line code completion for Python code, and in 2024.1, we've expanded the range of languages supported by these single-line suggestions. You’ll now also receive full line completion suggestions for JavaScript, TypeScript, and frontend frameworks. These suggestions are powered by specialized language models that use the context of the current file and run locally without sending any code over the internet.
We’ve introduced sticky lines in the editor to simplify working with large files and exploring new codebases. This feature keeps key structural elements, like the beginnings of classes or methods, pinned to the top of the editor as you scroll. This way, scopes always remain in view, and you can promptly navigate through the code by clicking on a pinned line.
PyCharm 2024.1 introduces an enhanced code review experience for both GitHub and GitLab users. Integrated within the editor, the new review mode facilitates direct interaction between authors and reviewers. When you check a pull/merge request branch, review mode activates automatically and purple markers appear in the gutter, indicating that code changes are available for review. Clicking on these markers reveals a popup displaying the original code so you can quickly identify what has been changed. Gutter icons help you swiftly initiate new discussions, as well as view and hide existing ones. They also provide access to comments, making it easy to review, reply, and react to them. Learn more about this new feature in our blog post.
PyCharm 2024.1 unveils a reworked terminal with visual and functional improvements to simplify command-line tasks. The new terminal offers advanced functionality like easy command navigation, the ability to switch between prompts and outputs via keyboard shortcuts, command completion, and quick access to the command history. Your feedback is crucial at this stage, and we encourage you to try it out and share your thoughts on the experience. Learn more in this blog post.
This new AI Assistant feature allows you to move faster from experimenting with queries to implementing real code. A new Create a file button now appears at the top of every code snippet generated by JetBrains AI Assistant. When you click the button, PyCharm automatically creates a file with the right extension and fills it with the code.
With AI Assistant, not only can you get schema-aware explanations of your query responses, but you can also quickly generate queries with context provided from your database context and perform smart searches within databases.
You can now scale the IDE down to 90%, 80%, or 70%, giving you the flexibility to adjust the size of IDE elements both upward and downward.
In PyCharm 2024.1 you can quickly check for unregistered admin classes and register them in one click in the Django Structure tool window.
When you are working on a bigger Flask or FastAPI application in PyCharm 2024.1, you can check the Endpoints tool window to get a clear overview of the existing endpoints and their hierarchy, as well as to navigate quickly from an endpoint to its declaration in the project. Bigger applications built with Flask, and especially those built with FastAPI, normally have complex hierarchical structures built around smaller granular modules (blueprints in Flask and routers in FastAPI). To give you a clear overview of such structures and help you understand their inheritance faster, PyCharm now groups endpoints by app. Additionally, PyCharm is now able to detect the endpoints declared in libraries, as well as several endpoints per path and endpoints for different HTTP methods.
PyCharm 2024.1 brings enhanced GitHub Actions support that is designed
to help optimize your CI/CD workflows. Code completion now covers various
relevant contexts, including github.*
, env.*
,
steps.*
, and inputs.*
, making script creation
easier and reducing time spent on context-specific syntax searches.
Autocompletion for YAML structures ensures error-free workflows, while
a new branding feature lets you give your action a distinct appearance
on GitHub Marketplace. Docker image completion simplifies container
integration, and JavaScript file path completion makes it easy to
configure JavaScript actions, streamlining your workflow. You can
find more details in this
blog post.
The HTTP Client in PyCharm 2024.1 offers more authentication options,
including the PKCE (Proof of Key Code Exchange) Authorization Code and
OAuth 2.0 Device Authorization Grant flows. It also supports extra
parameters for token and authentication requests, in addition to
now automatically handling the generation of code_challenge
and the passing of code_verifier
for token retrieval
during PKCE requests. The HTTP Client’s upgrade to Netty as its
low-level networking library enables SSL, proxies, and HTTP/2 support,
facilitating the implementation of HTTP/2.
We’ve optimized the code behind JSON schema validation and completion. As a result, PyCharm now processes JSON schemas faster and with reduced memory consumption. In real-life files with Azure Pipelines, schema inspections are now 10x as fast.
We’ve implemented WireMock support via a plugin that you can install from inside the IDE or get from JetBrains Marketplace. This integration includes schema completion for JSON configurations, the ability to generate WireMock stub files from the Endpoints tool window, and a built-in run configuration that allows you to spin up your servers directly from the editor. This addition lets you swiftly create test data servers or stubs, simplifying the development of web UIs and microservices.
PyCharm now lists component usages in the in-editor hints for Vue, Svelte, and Astro files. This will help you quickly locate usages of a specific component anywhere in the project.
In our
GraphQL plugin, we’ve
optimized indexing performance and expanded support to handle
schemas in node_modules
and external libraries.
The quick documentation popup now displays interface members, enum constants, and type alias bodies. Click the Show more link to see the full list and navigate to the referenced types. You can use the paging control at the top of the dialog to navigate between multiple declarations of interfaces, type aliases, enums, functions, and other entities.
PyCharm 2024.1 introduces several new quick-fixes for React that let you create props and states on the fly. You can apply these quick-fixes using the shortcut ⌥Enter (Alt+Enter for Windows/Linux).
PyCharm 2024.1 brings improved Terraform support that simplifies
the process of creating, managing, and scaling your infrastructure.
The IDE now streamlines initialization via an explicit suggestion
to run terraform init
, and it offers extended code
completion capabilities for more than 3,900 third-party Terraform
providers. Additionally, the IDE introduces support for Terraform's
template language (tftpl), enabling dynamic templating with the
option to seamlessly integrate it with your preferred programming
language. You can find more details in our
blog post.
We’ve introduced a new column in the Log tab of the Git tool window, allowing you to easily review the results of GitHub commit checks performed by your CI system.
After successfully pushing your changes to the version control system, PyCharm will now alert you with a notification informing you about the successful push and suggesting an action to create a pull/merge request.
We’ve revamped the user experience for the file history in the Git tool window. First, the Show all branches button has been replaced with a branch filter, allowing you to review changes made to a file within a designated branch. We’ve also adjusted the orientation of the toolbar, positioning it horizontally for improved usability.
--update-refs
option,
which ensures that the Git repository’s history reflects the modifications
made during rebasing.
We've reimagined how sessions work to streamline your experience of managing data source connections and executing queries. Now, for tasks like attaching files or running functions, you just select the necessary data source or execution context, bypassing the need to pick the right session. Additionally, a dedicated action in the Services tool window makes it easy to switch sessions within the same data source. These changes are designed to make your workflow smoother and more intuitive.
You can now swiftly filter rows by column values directly on the current page without waiting for your query to be run. This local approach only applies to the visible page, but you can always change the page size or fetch all the data if you need to extend the scope. To disable all local filters in the current data editor, just toggle the Enable Local Filter icon .
You can now focus on a single record in the data editor. To open a record view, use the ⌘⇧Enter for macOS (Ctrl+Shift+Enter for Windows/Linux) shortcut or the Show Record View button on the toolbar. The record view will open in the side panel, where the value editor and aggregate view are located. The cells in the record view will be editable if they are editable in the main grid.
Starting from 2024.1, you can move columns in the data editor for a CSV file and these changes will be applied to the file itself.