Released: Dec 6, 2023
2023.3 での更新項目
機能
AI Assistant Is Out of Preview [General Availability]
- JetBrains AI Assistant is now generally available with a number of new and improved features to increase your productivity in JetBrains IDEs.
- With AI Assistant, you get enhanced code generation directly within the editor, context-aware AI Chat that answers project-related queries without copying code, and project-aware AI Actions that provide more comprehensive results. To improve code change clarity, a new diff view has been integrated into LLM code suggestions.
- You can use AI Assistant in PyCharm as a supplemental feature with a JetBrains AI Service subscription.
Full Line Code Completion
- As you type, PyCharm now provides multi-token code completion suggestions while also checking for their correctness. Leveraging a deep learning model, Full Line code completion processes suggestions on your machine, ensuring your code remains private and never leaves your system. This also means you can take advantage of this feature even while offline.
Django
- Live Preview for Django templates - Added a new live preview feature. Your code preview is updated in real time with on-demand reloading. You can use the address bar to modify and test routes directly. For templates with several routes, simply select the desired pattern in the address bar.
- Django Structure tool window - Added a new Django Structure tool window. It enables quick access, smart navigation, and instant creation for Django components - apps, models, views, and more.
- You can also refactor models, views, and model admin classes and find usages for them - in one click.
- You can register models in the admin interface and open and inspect them in a Database viewer just by choosing an option in the context menu.
- Django Structure provides a quick way to start working with views in the Endpoints tool window or start creating new apps and making migrations in the built-in manage.py console.
Data Visualization
- Powerful UI for your dataframes
- You can now add interactivity to your work with dataframes. Sorting, pagination, and infinite scroll are available in the new UI for dataframes.
- With the new UI for data frames, you can simply hover your mouse over a column, and the column statistics popup will appear automatically.
- You can export the data in a variety of formats to work on it further. CSV, TSV, SQL insert statements, Markdown, HTML, and other options are at your disposal.
- Instant graphic representation of your dataframes - You can now get an overview of the data in your dataframe or series in no time. In this release, you can just click on your dataframe and select Show Chart, and your IDE will do all the hard work. Choose the most suitable chart type, and export it as a PNG file when you are happy with the result.
Python: 3.12 and more
- Low-impact monitoring - PyCharm's debugger now uses low-impact monitoring, which was added to Python 3.12. This improves overall debugger performance. You can see significant improvements in functionality, like the tracing of raised exceptions and dropping into the debugger on a failed test.
- Syntactic formalization of f-strings - Python 3.12 allows you to use quotes, line breaks, escape sequences, and comments inside f-strings. PyCharm now adjusts its inspections accordingly. Additionally, existing intention actions for string literals, such as converting between various quote types, now work in accordance with the new syntax.
- Type Parameter Syntax - Python 3.12 introduces a new convenient syntax for generic classes, functions, and type aliases. This syntax helps you to write less code when working with types in Python. PyCharm now recognizes the new syntax and understands references to type parameters in classes, functions, and new-style type alias declarations, taking them into account in type inference and type checking. You can use the new syntax to work with generic classes and type aliases and let your IDE worry about details.
- Variadic Generics - Introduced a new kind of type variable - TypeVarTuple for defining custom variadic generic types, i.e. generic types that can have an arbitrary number of type parameters, similar to builtin Tuple and Callable. PyCharm's type checker supports all its standard checks for variadic generics. Additionally, you will get a warning if you use the TypeVar syntax with older versions of Python. PyCharm will suggest that you use typing_extensions.Unpack instead.
- User-Defined Type Guards - Introduced a way to treat custom functions as "type guards", which, when used in a conditional statement, leads to the narrowing of their argument types. Think of the built-in functions isinstance and issubclass, which PyCharm already recognizes. Now, the user-defined function returning typing.TypeGuard has the same effect on type inference in PyCharm.
- LiteralString - PyCharm is now aware of the LiteralString type in your code. If you are using it, PyCharm will make sure that str and LiteralString types are not mixed.
HTTP Client
- OAuth 2.0 Support
- In this release, the HTTP Client supports authentication with a new Client Credentials grant type, established with OAuth 2.0 or a Password grant type.
- You can use the new syntax {$auth.token("my-keycloak1")} to reference authentication data in your requests and navigate to the JSON file containing the authentication details.
VCS
- All-in-one diff viewer - You can now see all of the modified files from a changeset in a single, scrollable frame. This release has a new diff viewer to review all changes at once. It is compatible with GitLab, GitHub, and JetBrains Space reviews.
Frontend
- Automated testing: Introducing Cypress and Playwright support - PyCharm now includes support for Cypress and Playwright, two leading tools in modern web app testing. This release automatically detects your Cypress and Playwright tests and lets you run and debug them with a single click. The test tree view helps you understand and navigate your test results.
- Improvements for TypeScript - This release solves some of the inconsistencies encountered when adding import type statements. The option to configure the usage of the TypeScript import type statement or type specifier when importing a type has been added. the behavior for the exports field of package.json has also been improved for TypeScript files.