Auto-completing parentheses/brackets in PyCharm vs Rider

There's an autocomplete behavior in Rider that I really like, and I would love to see it in PyCharm. I don't know if the setting just doesn't exist, or if I don't know how to enable it.

In Rider, let's say I want to wrap an existing statement in a Math.Floor function. I put my cursor right before the text I want to wrap, and start typing Math.Floor. Once the code completion popup figures out what I'm typing, I can hit Enter, and it will automatically surround the following text with parentheses as appropriate.

// Before
var x = 1.2;
var y = 2.3;
var z = x + y;

// While typing (right before hitting Enter)
var x = 1.2;
var y = 2.3;
var z = Math.Floorx + y;
// After hitting Enter - notice the parentheses are surrounding the 'x + y' text
var x = 1.2;
var y = 2.3;
var z = Math.Floor(x + y);

 

In PyCharm, I'm looking for a similar setting. A common scenario I have is a type hint for a property that I need to wrap with Optional[ ] . I'm looking for a setting where, as soon as I hit Enter to insert the Optional text, it will automatically surround the existing text in brackets.

# Before
from typing import Optional


class MyClass:
def __init__(self):
self._my_var = 0

@property
def my_var(self) -> int:
return self._my_var
# While typing (right before hitting Enter)
@property
def my_var(self) -> Optionalint:
return self._my_var
# After I hit Enter this is what I want to happen - brackets surround the 'int' text
@property
def my_var(self) -> Optional[int]:
return self._my_var

I've looked over the settings in both IDEs and tried enabling/disabling a bunch of them, but I can't figure out if this is doable. Any advice would be appreciated!

 

I've also uploaded videos of the desired behavior in Rider, and the existing behavior I get in PyCharm.

Upload id: 2022_09_23_rZkVnkcTysTjE4Ueyw1Yd2 (files: pycharm.mp4, rider.mp4)

Please sign in to leave a comment.