Thanks for the reply. Unfortunately, I am not looking for a Notebook experience but rather for integration of the IPython REPL shell as the default shell in VSCode so all code is being executed in there and so you can interactively prototype or debug code in an IPython shell. It is insanely more capable and powerful than any other regular Python shell, and without it, VSCode just feels a lot more gimped for Python development. Pycharm otoh is an example of an IDE that absolutely nails IPython shell integration into the IDE.
RobinL|4 years ago
Does the PyCharm integration offer something more capable? I'm interested in what I'm missing out on!
_coveredInBees|4 years ago
1. Multi-line text support and auto indentation support. This is *huge*. Most python REPLs are terrible at this including the default interpreter. You can easily copy paste code from scripts/modules into the REPL and the interpreter just handles everything seamlessly. It is even smart enough to remove a global indent across all the pasted code (if you copied code from within a function that was already indented 1 level up). It makes the REPL experience really really smooth.
2. Tab completion works beautifully with hover overlays
3. The integrated variable viewer is extremely good and you can easily view the local state of your interpreter and explore data/variables. The integrated Pandas dataframe and Numpy array viewers (available even in the free version) are really handy as well.
4. You can even attach a debugger to an interactive REPL session and if you then have breakpoints defined in associated libraries in your Pycharm IDE and then invoke code that would hit the breakpoint, it will pause at the breakpoint and give you the full debugging experience. This is really handy for reducing the time to debugging and investigating issues in code.
5. Matplotlib eventloop is handled very well in Pycharm which basically means that interactively plotting in the IPython REPL using matplotlib works seamlessly.
6. You also get some amount of linting/error checking in the REPL and also syntax highlighting, which is really helpful as well.
7. The IPython interpreter *is the default interpreter* which means that even when you debug code (with breakpoints for example), you get all of the benefits above while debugging, which is a really nice experience, especially with having access to the variable viewer.
8. Another annoyance I had with VSCode last time I tried using it is that the debugger while vastly improved still only allowed single line of code entry and was generally clunky if you wanted to paste multiple lines of code into the debugging REPL. Since you get the full IPython shell in Pycharm at all times (debugging or otherwise), it ends up being a lot more powerful and easier to use.
9. This is underrated, but Pycharm actually has a button that displays a log of all your code entries into your REPL. This is really handy in my experience as you can prototype code in the interpreter with working data/state, validate that it works right and then grab it from that window, copy it, and then paste it into a script/module to "graduate" it to more matured code.
That's what I could muster up off the top of my head. Pycharm in general has a ton of other nice things going for it, but ultimately, it is the really smooth REPL experience and how well integrated the shell is with the IDE that makes it my go-to IDE for anything Python.