What’s New in PyCharm 2019.2

Improved Jupyter Notebook experience, syntax highlighting for many more languages out of the box, initial Python 3.8 support, and more.

Jupyter Notebook

Run All, Run All Above, Run All Below

Run All, Run All Above, Run All Below

One of the most requested features in our Jupyter support has been to run all cells with a single button click. This turned out not to be as easy as it sounds, because we had to reimplement some of Jupyter’s execution logic on the PyCharm side. We’re happy to announce that this feature is now available in PyCharm.

Improved server configuration

Improved server configuration

With multiple projects open, PyCharm would implicitly use the first project you’ve opened to start a managed Jupyter server. This is now configurable. You can also now choose a specific port for the Jupyter server to listen on.

Spacing with virtual lines

Spacing with virtual lines

When you view a Jupyter Notebook in the browser, the layout naturally spaces out the cells a little bit. The PyCharm approach of displaying the code as a Python file therefore looks a little more dense. To make the code look better, we now insert virtual empty lines in your notebook that are not persisted to the file.

Inline display of variable values

Inline display of variable values

The PyCharm debugger helps you keep track of your variables, and shows you their current state as you’re working with your notebook.

Further improvements

  • Another oft-requested feature was the ability to restart the kernel, and this is now possible.
  • You can now directly publish notebooks from PyCharm to JetBrains Datalore

IDE Improvements

Code highlighting for many popular languages

Code highlighting for many popular languages

Do you work on projects where code in a different language sneaks into your project? PyCharm will now highlight the syntax of Windows .bat files, C#, C++, Groovy, Lua, Makefiles, and more.

Basic bash support

Basic bash support

Most projects, at some stage in their life, get some bash files checked in to their repo. PyCharm will now highlight bash syntax, provide basic completion, and integrate with Shellcheck to check your bash files.

Improved look on Windows

Improved look on Windows

PyCharm now looks better than ever on Windows: we’ve tweaked the look of the UI to be more modern.

cURL support for the REST client

cURL support for the REST client

cURL format is now supported out of the box. Just copy your cURL formatted request and paste it directly to your HTTP Request file to convert it into the proper format. To use this new functionality, just create a new .http file or a HTTP-request scratch file, and then paste a cURL string. It will be automatically converted to a full request.

Preserve cookies between requests

Preserve cookies between requests

Imagine you made an authentication request on a service to later call endpoints that will ask for permission. In the past this authentication response was lost, forcing you to ask for it every time it was needed. Now this is not an issue! All the cookies will be kept for your future usage and will be transferred in the next requests you perform.

Improved EditorConfig support

Improved EditorConfig support

EditorConfig files allow you to embed code style settings directly in your repo. We’ve now improved this functionality to be more flexible; for example, it’s now possible to use multiple EditorConfig files to set different settings for different parts of your project.

Learn more in the documentation

Python

Python 3.8: Positional-only parameters

Python 3.8: Positional-only parameters

Designate positional-only parameters to your function definitions to restrict the usage of your functions. This new syntax will allow you to define strictly those arguments that are purely intended to be called according to a specific sequence.

Python 3.8: Assignment Expressions

Python 3.8: Assignment Expressions

Assign a value within an expression to enhance your code compactness and readability. You can now, for example, use one line of code to create conditional expressions and at the same time assign variable values.

More Python 3.8

Final annotation for variables

Design classes and subclasses with restricted usage of methods, classes, and variables by using the ‘Final’ qualifier to avoid unwanted inheritance or overriding.

Use equals sign in f-strings

f-Strings can now use ‘=’ to show expressions and their values at the same time. Use f'{expr=}' to generate a string that will show both your expression and its output.

Inline Python functions

Inline Python functions

One of the key features in PyCharm is its ability to automatically refactor your code. This way you know for sure that after you’ve completed the operation, the behavior of your code didn’t change. We’ve now added the ability to automatically inline a Python function.

Learn more about Python refactoring

Find duplicate code quickly

Find duplicate code quickly

Duplicate code is smelly code, so PyCharm lets you know if there’s something you might want to refactor into a single function.

JavaScript

Improved variable renaming

Improved variable renaming

Refactoring code is now more customizable, with an option to rename or not rename dynamic references. If selected, you can decide which occurrences you want to actually rename and which ones to leave as they are, by using a preview interface.

Updated Smart step into while debugging

Updated Smart step into while debugging

The ‘Smart step into’ (Shift-F7) feature received a boost. Targets are now more visible, and you can easily switch between them with the arrow keys or Tab, and then press Enter to step into the selected target.

Improved visibility of libraries in the debugger

Improved visibility of libraries in the debugger

The filter icon on the debugger call stack allows you to hide all the calls from third-party code. Now everything that you mark as a library can be hidden with this new feature.

Databases

Full-Text Search

Full-Text Search

Did you know that PyCharm Professional Edition bundles all database features from JetBrains DataGrip, our professional database IDE? One of the new features in our database tooling is full-text search across multiple data sources: now you can find your data, no matter where it is hiding.