PyCharm 2024.1

Released: Apr 4, 2024

2024.1 での更新項目

機能

Hugging Face: Quick documentation preview for models and datasets

  • You can now 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.

Full line code completion for JavaScript and TypeScript

  • PyCharm 2023.3 brought local ML-powered full line code completion for Python code, and in this release, the range of languages supported by these single-line suggestions has been expanded. 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.

Sticky lines in the editor

  • 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.

In-editor code review

  • Introduced 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.

New terminal [Beta]

  • Reworked the 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.

New AI Assistant functionality

  • Create a file with generated code in one click - 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.
  • Generate schema-aware SQL queries - 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.

User experience

  • Option to scale down the entire IDE - 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.

Frameworks and technologies

  • Register model admin classes in the Django Structure tool window - You can now quickly check for unregistered admin classes and register them in one click in the Django Structure tool window.
  • Support for bigger Flask and FastAPI applications in the Endpoints tool window
    • When you are working on a bigger Flask or FastAPI application in PyCharm, you can now 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.
    • PyCharm is now able to detect the endpoints declared in libraries, as well as several endpoints per path and endpoints for different HTTP methods.
  • Enhanced support for GitHub Actions - This release 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.
  • HTTP Client improvements - The HTTP Client in this release now 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.
  • Optimized JSON schema processing - 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.
  • WireMock server support - 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.

Frontend development

  • Component usages for Vue, Svelte, and Astro - 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.
  • Improvements for GraphQL - In the GraphQL plugin, indexing performance has been optimized and support has been expanded to handle schemas in node_modules and external libraries.
  • Quick documentation improvements for TypeScript - 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.
  • New quick-fixes for React - This release introduces several new quick-fixes for React that let you create props and states on the fly.

Enhanced Terraform support

  • This release 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.

Version control systems

  • Statuses of CI checks in the Git tool window - 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.
  • Create pull/merge requests from push notifications - 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.
  • Branch filter for Git tool window's History tab - User experience has been revamped 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. the orientation of the toolbar has also been adjusted, positioning it horizontally for improved usability.
  • Further improvements
    • For GitHub and GitLab, you can now choose to view a given branch's changes in a separate Log tab within the Git tool window.
    • You can now add reactions to your code review comments by selecting from a set of emojis.
    • To help you avoid version control rejections due to oversized files, the IDE now includes a pre-commit check that prevents you from committing such files and notifies you of the restriction.
    • The Merge into dialog now has an Allow unrelated histories option to merge two branches even if they have no common history.
    • You can now see your stashed changes in a dedicated Stash tab in the Commit tool window. If you use both stashes and shelves, you can enable a combined Stashes and Shelves tab.
    • To help you focus solely on relevant changes, the diff viewer now has the option to exclude folders and files from comparison. Simply right-click on the desired file or folder and select Exclude from results.
    • In the Branches popup you can now filter search results by action and repository.
    • The Rebase dialog now features the --update-refs option, which ensures that the Git repository's history reflects the modifications made during rebasing.
    • Search Everywhere no longer shows the Git tab by default. You can add it in Settings/Preferences | Advanced Settings | Version Control. Git.

Database tools

  • Simplified approach to sessions - Changed 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.
  • Local filtering in the data editor - 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.
  • Single record view - You can now focus on a single record in the data editor.
  • Added the ability to move columns in CSV files - Starting from this release, you can now move columns in the data editor for a CSV file and these changes will be applied to the file itself.