The Early Access Program for PyCharm 2023.2 Is Open!
The Early Access Program starts today! This program offers you an early glimpse of the new features and improvements expected to land in the next version. If you’re not yet familiar with the EAP concept, check out this blog post for more details.
Over the next few weeks, join us in exploring the newest additions to PyCharm, and share your feedback after testing out the new features.
The first PyCharm 2023.2 EAP build introduces a reworked Python Run/Debug Configurations dialog, better support for Jinja templates, support for pytest fixture override, along with a few UI improvements.
You can download the build from our website, get it from the free Toolbox App, or update to it using snaps if you’re an Ubuntu user.
Let’s take a look at what other new features and improvements are available to try in this build.
User experience
Reworked hamburger menu in the main toolbar on Windows and Linux
We’ve refined the behavior of the hamburger menu located in the main toolbar for Windows and Linux. Once you click on the menu icon, the elements now appear horizontally over the toolbar.
In addition, you can now turn this menu into a separate toolbar by going to View | Appearance | Main menu as a Separate Toolbar.
Updated window controls on macOS
When using the new UI in Full Screen mode on macOS, the window controls are now displayed right in the main toolbar – not in the floating bar as before.
Reworked Python Run/Debug Configurations dialog
PyCharm 2023.2 will display a reworked Run/Debug Configurations dialog for Python run configurations. The main focus for us while working on it was to provide a simple way to access the main settings. All others, such as the Run with Python Console, Emulate terminal in output console, and Before Launch options can be found under the Modify options menu.
You can access the Run/Debug Configurations dialog from the main menu by selecting Run | Edit Configurations. Alternatively, you can use the shortcut: ^⌥ R on macOS or Alt+Shift+F10 on Windows, then press 0.
Please try the updated dialog and share your feedback with us.
Bundled OpenAPI Specifications plugin
The OpenAPI Specifications plugin will be bundled with PyCharm 2023.2 Professional Edition. This plugin provides essential functionality for web and microservices development. It provides support for both OpenAPI and Swagger specification files. The main features include validation by JSON Schema, navigation, completion and rename refactoring for URLs, code generation with Swagger Codegen and OpenAPI Generator, structural diff action for specifications, URL completion in the HTTP Client by specifications, and Structure view for OpenAPI files.
You can set up your OpenAPI or Swagger specifications by going to Settings | Languages & Frameworks | OpenAPI Specifications.
Enhanced support for Jinja templates
According to its documentation, Jinja templates don’t require any specific file extension, as they can generate any text-based format. But sometimes it is convenient to use composite extensions like user.html.jinja
. This is extremely useful for Ansible templates, where such conventions are used.
In these cases, PyCharm 2023.2 will provide proper syntax highlighting and code completion for both template language and data language. Among the recognized text-based formats are .xml
, .yaml
, .properties
, and others. *-playbook.yaml
files are now also detected as Jinja2 files with YAML data language.
Along with .j2
and .jinja2
, PyCharm 2023.2 will automatically recognize files with .jinja
file extension as Jinja templates and have respective syntax highlighting and code completion.
Testing
Support for fixture override in pytest
For PyCharm 2023.2, we will be looking into improving your experience with pytest. The first EAP build introduces better support for fixture override. For the overridden pytest fixtures, PyCharm 2023.2 will provide correct type inference, navigation, and code completion.
PyCharm 2023.2 will resolve the fixtures in the same way pytest does. It will start with checking the fixture inside the test class (if there is one), then it’ll check the fixture inside the current file, after that in the import statements, and finally in the nearest conftest.py
file.
Please try it and share your feedback under this post or in our issue tracker.
Notable bug fixes
We fixed connectivity issues affecting the Python console and debugger while working with a WSL interpreter and VPN. [PY-59608]
Dataclasses
PyCharm no longer raises an error if redeclared fields in the dataclass’s subclass follow the parent’s dataclass field with the default value. [PY-45381]
PyCharm now recognizes the ‘kw_only’ notation in dataclasses. [PY-49946]
Python / Debug console
We fixed various bugs related to the Python and Debug consoles, including:
- Issues with showing Quick Documentation in the Python console. One of the fixes was provided by an external contributor, Daniel Schmidt. [PY-57950], [PY-55889].
- Issues that had been occurring when executing multi-line commands in the console. [PY-20363], [PY-42035]
- The Debug console now automatically becomes the active window when the user’s input is required in the debugging code. [PY-26762]
These are the most notable updates for this week. To see the full list of changes in this EAP build, please refer to the release notes.
If you encounter any bugs while working with this build, please submit a report using our issue tracker. If you have any questions or feedback, let us know in the comments below or get in touch with our team on Twitter.