What’s New in PyCharm 2020.2

Full GitHub pull request support, smart in-editor exceptions preview, and in-place signature-change refactoring.

Version Control

New pull request dedicated view

New pull request dedicated view

The new dedicated view makes it easier for you to interact with your pull requests. Find all the information you need in a separate dedicated tool window where you can perform tasks within the full PR workflow from the comfort of your IDE.

New reviews support

New reviews support

Reviews are a very important part of the pull request flow, and now you have everything you need to complete every stage of the review workflow from within Pycharm. Start and request reviews, attach comments, and submit reviews, all in PyCharm.

New merging support

New merging support

Merging your pull request into master from PyCharm was not so easy before; though it was possible with some inventive workarounds. It has all changed in PyCharm 2020.2. Now you can easily merge your PR, rebase and merge, or squash and merge with no effort at all.

Improved compare-branches action

Improved compare-branches action

Now, when comparing two branches in PyCharm, you’ll see all their commits in one overview. The improved action now opens the logs of both branches in the editor instead of opening it in the VCS tool window, giving you more space, a better overview, and increasing your visibility and ability to compare them.

Further improvements

  • While you review your PRs, PyCharm will display any issue found during the pre-commit checks with links to help you resolve it.
  • You can now select a number of local commits in the Log tab of the Git tool window and squash them into one.
  • We’ve improved the UX of the dialogs for Git Merge, Pull, and Rebase to make it easier for you to identify which action and flags were invoked.

Python

New in-editor exceptions preview

New in-editor exceptions preview

PyCharm can now automatically stop on an exception breakpoint in your test without needing you to explicitly set it. It means that PyCharm understands your code, catches exceptions, stops the execution, and displays the problem exactly where it is happening.

New in-place signature change refactoring

New in-place signature change refactoring

You no longer need to go through a hidden modal dialog to change the signature of a method. Now you can simply edit the parameters in-place and use either the new gutter icon or intention action (Alt+Enter) to quickly review it and apply the changes to all its usages.

New in-place rename refactoring

New in-place rename refactoring

Similarly to the new in-place signature change, you can rename classes and methods in-place and go through the new in-place refactoring shortcut to quickly review it and apply the changes. You can apply project-wide refactorings in just a few steps.

Full support for Python 3.9

Full support for Python 3.9

As always, PyCharm is up-to-date with recent changes in the Python language and, for this release, we anticipated the upcoming Python 3.9 release and included support for PEP-614 (@expr syntax), PEP-585 (Generic types in std. collections) and PEP-593 (x: Annotated[...] type), and more.

Further improvements

  • Forgot to add ‘f’ to your f-string? PyCharm now auto-enables f-strings when the user adds curly braces within a string statement
  • Trailing commas are automatically added before a line break in multiline collection literals

Web Development Pro only

PyCharm Professional Edition comes with all JavaScript (and other web languages) development features from JetBrains WebStorm, our IDE for web development.

New support for Django configuration constants completion in settings.py

New support for Django configuration constants completion in settings.py

Do you see yourself frequently typing the same configuration variables in settings.py across Django projects? Now PyCharm can autocomplete the names of the documented Django settings (Ctrl-Q, or F1 on macOS).

Python console becomes a Flask shell when Flask is enabled

Python console becomes a Flask shell when Flask is enabled

When you open a Python console in a Flask project, PyCharm will automatically start the Flask shell so that you already have your Flask application and your application context `g` available for interactive experimentation.

Best-in-class support for Vue

Best-in-class support for Vue

Nuxt.js support, Vue-specific code style settings, improvements around Vue in TypeScript projects, and a lot of other things we’ve added in the past year. Vue support in PyCharm has never been so advanced!

New features for JavaScript

Save time with new features for JavaScript

New smart intentions (Alt+Enter) will help you perform some actions faster. For example, you can now quickly convert a for loop with a numeric index into a forEach array method. Looking through documentation comments has also become easier as you can now render them right in the editor.

Further improvements

  • Now you can make Prettier the default formatter in your JavaScript projects.

IDE Improvements

New inspections widget

New inspections widget

The new inspection widget was designed to make it easier for you to have a clear overview of all issues present in your current file while also allowing you to inspect deeper. Configure the highlight level and make sure to have all the information you need to make your code better.

Proper support for npipe and Docker on Windows

Proper support for npipe and Docker on Windows

If you are a Windows user you will be happy to know that PyCharm now has proper support for “Docker on Windows”, specifically regarding native support for npipe connections on Windows.

Further improvements

  • If you work with Docker frequently you might be happy to know that PyCharm now has support for deleting "failed" and/or "deleted" nodes from the DockerView.
  • If you use screen-readers, PyCharm detects this and will automatically enable all its built-in accessibility features for you.

Databases Pro only

PyCharm Professional Edition comes with all database features from JetBrains DataGrip, our tool for database administration.

Even better JOIN completion

Even better JOIN completion

It takes one less step to complete JOIN clauses as PyCharm now offers the whole clause when you start typing ‘JOIN’. Also, completion offers a way to JOIN by two columns when applicable, and, of course, all with support for writing Python code.

New UI for boolean values

New UI for boolean values

Well, this is a welcome sight! There’s now a more user-friendly way to view and edit boolean values. True values are now marked with a bullet point to distinguish them from all the others.

Better filtering for MongoDB

Better filtering for MongoDB

In addition to ObjectId and ISODate, filtering now supports UUID, NumberDecimal, NumberLong, and BinData. Also, if you have a valid UUID/ObjectId/ISODate in your clipboard, you will see this value in the list of suggested filters.

Further improvements

  • Oracle DB links now have basic support and are now shown in the database explorer, and the code that uses them is correctly highlighted.

Please note that features marked Pro only are supported only in PyCharm Professional Edition.