IPython enables interactively executing code snippets and monitor their results, thereby being a handy debugging environment. This VSCode extension directly transfers code from editor to an IPython terminal.
Recommend to disableMicrosoft Jupyter Extension (which may be enabled by default), as some features conflict. The above mentioned visual effect (*1) explicitly conflicts with the Jupyter extension. It's OK though if you don't care.
The communication between an editor and an IPython terminal is not ensured by nature. To make it robust, a heuristic delay is introduced to await successful data transfer. This design seems working pretty well in my environment. If you experience an unintentional behavior, try customizing the following parameters via settings.
By design, an IPython terminal is launched with the option --no-autoindent, which means that your cursor is not going to be automatically indented when you write code directly on the IPython terminal. Note that disabling autoindent is necessary for this extension to correctly transfer code in a nested block.