This build brings the ability to execute asynchronous scripts in the Python Console, use Vitest for Vite unit testing, and set a separate formatting style for the code that you read, not write.
This blog post covers the most notable updates in the third EAP build. To catch up on the previously announced features expected in v2022.3, check out our prior 2022.3 EAP blog posts.
DOWNLOAD PYCHARM 2022.3 Release Candidate
User experience
New Settings Sync plugin
We introduce a reworked solution to synchronize your custom user settings.
For quite a long time, there were two plugins that existed in parallel and featured intersecting functionality – IDE Settings Sync and Settings Repository. To avoid the confusion caused by having two similar bundled plugins we’ve merged their feature sets into a single solution – the new Settings Sync plugin.
Settings synchronization is essential when you use your IntelliJ-based IDE on two or more computers. After changing a color scheme or a keymap on one machine, you naturally want to see the same setup on the second machine. But even if you have only one IDE instance, Settings Sync is still valuable as a backup solution, since it will allow you to automatically restore all your settings when you set up a new machine from scratch.
The new Settings Sync plugin is capable of syncing all shareable settings from the platform, bundled plugins, and third-party plugins. By default, the plugins themselves will be synchronized and installed silently. As for the third-party plugin settings, not all of them will be transferred seamlessly, as this is dependent on the third-party vendors. We are now communicating with plugin developers about the actions required from their side.
How does the new Settings Sync plugin work?
The settings are stored in the cloud attached to the user’s JetBrains Account. If you use different IntelliJ-based IDEs associated with the same user account, your settings will be automatically synced.
In the cases where a conflict arises due to the simultaneous modification of settings on two different computers, the settings will be merged using the most recent configuration.
How to enable the new Settings Sync plugin
Depending on your current approach to settings synchronization, you may need to manually enable the new plugin:
If you have been using IDE Settings Sync, your data will be automatically migrated to the new plugin, so you won’t need to take any action. If you are a Settings Repository user, we advise you to continue using your current setup, as the migration is still a work in progress. You’ll get an in-IDE notification once the functionality is ready.If you weren’t previously using a settings synchronization solution but you want to try the new one, you can enable it via Settings / Preferences | Settings Sync | Enable Settings Sync.
Here are two important points about switching to the new solution:
If you are using PyCharm 2022.2.x or earlier with the old Settings Sync plugin and want to enable the new plugin on v2022.3, your settings will be migrated from the older version, but they won’t be synchronized between v2022.2 and v2022.3 afterwards.The Settings Repository plugin has been unbundled. If you’re using it, your settings will be migrated when upgrading to v2022.3, but the new Settings Sync plugin won’t be turned on automatically. If you want to keep on using the Settings Repository plugin, you can install it manually from JetBrains Marketplace.
Visual formatting layer in Reader mode
PyCharm 2022.3 now provides the ability to read code in your preferred style, which might differ from the current file formatting. You can apply a new visual formatting layer in Reader mode, which visually adjusts the code according to your custom formatting scheme with no need to reformat the real code.
Enhanced asyncio support for the Python Console
In the previous EAP builds we’ve highlighted the improved UX for working with the asyncio module: you’ll be able to work with async code in the PyCharm 2022.3 debugger, Debug Console, the Evaluate expression dialog, and while setting up Evaluate and Log and Condition properties of the breakpoints.
This EAP build provides you with the ability to work with async code in the Python Console. No settings tweaks are needed – it works out of the box. This is available for Python versions 3.8 and above.
Vitest support
As you may know, we added Vite support earlier this year. Now we’re happy to say that PyCharm 2022.3 will also support Vitest, a Vite-native unit test framework! Let’s take a look at what’s included.
Firstly, you can run all of your tests, a folder, a file, or a single test in all of the ways you’d expect, including gutter icons. The same is true for debugging and re-running failed tests.
The Vitest watch mode is directly supported for the All Tests scenario. For a subset, you can just add –watch to your run configuration.
Vitest has its own “snapshot” testing, which PyCharm also supports.
Finally, Vitest coverage is supported. It will even work in watch mode, giving nearly-instant visual feedback on coverage when coding.
Redis support
We’ve implemented a preliminary iteration of long-awaited support for Redis. Here is the list of what is now supported:
Connectivity: Redis Single Instance (Redis Cluster is not yet supported).Introspection: Introspection of databases and keys, including the ability to set a default key filter for the introspector.Database Explorer: Separate folders for keys of different types for Redis v6.0+, and one folder with all keys for older versions.Query Execution: JDBC driver allows working query execution in most cases.Coding assistance: Code highlighting, keyword completion, working resolution for databases and keys.Object Editor: Renaming and deleting keys.Data Viewer: Filtering, JSON highlighting.
Installers for Windows ARM64
We’re working to add support for Windows ARM64, and we’re now running tests to make sure PyCharm works smoothly on Windows machines with ARM64 processors. Meanwhile, we’ve started distributing installers for Windows ARM64 that you can already download from our website or from the Toolbox App.
That’s all the highlights for this Release Candidate build – stay tuned! Please share your feedback with us here in comments, on Twitter, and in our issue tracker.