PyCharm 2022.1 EAP 3: Type Renderers for Python, Enhanced Support for Docker and Kubernetes, and More
The third EAP build for PyCharm 2022.1 is now available.
This time we’ve delivered enhancements for Docker and Kubernetes, introduced type renderers for Python, and enhanced our support for the Next.js framework.
Let’s take a look at what’s inside!
Important: EAP builds are not fully tested and might be unstable.
Custom type renderers
During a debugging session, PyCharm shows you information about your variables, classes, threads, frames, and so on in the Debug tool window.
In most cases, the default tool window layout ensures the clear, comprehensive, and accurate rendering of all the necessary details and provides you with the most commonly used options and actions.
PyCharm now allows you to completely customize the display format for various objects during a debugging session. This is done using renderers. A renderer is a special setup associated with a particular type that controls how the instances of this type are displayed in the debugger. This setup is based on custom expressions that provide a high level of flexibility for displaying the data.
You’ll particularly benefit from type renderers if you work with large objects, since it typically takes a lot of time to get their string representations. Type renderers are also very useful for multi-attribute objects, as they allow you to keep only those attributes that you’re really working with at the moment.
For more information on how to use custom type renderers, please see the relevant PyCharm Help page.
Hidden tab labels
To maximize the usable space in the Debug tool window, we’ve hidden the tab labels by default. To make them visible again or to customize their location, use the Show Tab Labels option in the Layout Settings or call it via Search Everywhere (⇧⇧ on macOS / Shift+Shift on Windows/Linux) with the Debug tool window in focus.
Better Next.js support
In this release, we’ve improved support for the popular Next.js framework. Thanks to the out-of-the-box support for React, all of the basic functionalities should have already been working in your Next.js projects. Some of the framework-specific things didn’t work as expected, though. One of them was support for pages. Starting from v2022.1, this should no longer be a problem. PyCharm will resolve paths used in the
href property of your
Link components. Code completion, navigation, and refactorings like Rename will work, too.
Updated Markdown Editor Floating Toolbar
To make it easier to format Markdown files, we’ve reworked the floating toolbar that appears on text selection. Besides the new design, the toolbar now offers list creation functionality and a dropdown menu that allows you to select header styles.
The toolbar is customizable, so you can fill it up with the options you need. To do so, go to Settings / Preferences | Appearance & Behavior | Menus and Toolbars | Markdown Editor Floating Toolbar.
Edit resources on the cluster
Modifying resources loaded from the cluster is now possible from the editor tab.
Custom path to kubectl
You can now manually configure a path to kubectl if it is not in the standard location. To set your custom path, go to Settings / Preferences | Build, Execution, Deployment | Kubernetes | Path to kubectl executable.
We’ve added port forwarding functionality for pods. To forward ports, you can either use the icon on the toolbar or choose the context menu item.
Describe Resource action in the Services view
There is a new Describe Resource action present for all resources in the Services view. You can call it from the context menu or use the toolbar button.
Support Events in a cluster
Cluster events are now displayed in a separate node in the Services view, providing data about recent events in the system.
To see events for a specific pod, call Describe Resource on it and look for the Events section in the action results.
We’ve introduced limited editor support for werf.yaml and related Helm template files (https://werf.io), including code completion functionality, inspections and quick-fix suggestions, refactoring / renaming for
.Values.werf.image.*, and validation of some fields like
Import child values support for Helm
The latest EAP build brings support for importing child values via import-values settings affecting completion/navigation in built-in objects in templates. Enhanced editor support for the import-values field is not yet provided.
Please note that Kubernetes functionality is available with PyCharm Professional edition and requires plugin installation.
New Service view UI
For PyCharm 2022.1, we’ve significantly reworked Docker’s UI in the Services tool window. The makeover has been implemented for containers, images, networks, and volumes.
Docker Registry V2 support
We’ve added support for Docker Registry HTTP API V2 to use with Docker 1.6+. You can create simple or password-protected Docker V2 registries and perform all of the usual actions like viewing, pushing, and pulling images.
Run Current File
To make it easier to run and debug single files without having a dedicated run configuration, we’ve added a new item to the Run/Debug widget.
If no run configurations are configured for the project, the run and debug buttons will now be active and allow you to instantly run the currently opened file. The IDE will automatically use the run configuration type best suited for this file, the same way it does when you run a file from its context menu.
To run the current file, make sure the editor is focused. Otherwise, the icons will be disabled and you’ll get a corresponding tooltip.
If the project contains run configurations, but you want to run only the currently open file, you can still select this option from the combo box on the toolbar.
When running a file this way, no temporary run configuration will be created. We will soon add an option to quickly modify run options and save a suggested run configuration.
For the full list of the latest improvements available in PyCharm 2022.1 EAP 3, check out the release notes.
We look forward to getting your feedback on the new features. You can submit feedback via our issue tracker, Twitter, or in the comments section below.