(no title)
_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.
RobinL|4 years ago
Given what you've said, I think the interactive window can be iPython in VS Code. This may be a relatively recent development.
I'm not sure what I did to enable this, but it may be because I have the jupyter extension for VS code installed.
For instance:
- If I do `df.plot()`, I get a matplotlib image displayed directly in the interactive window
- Auto indentation works
- Tab completion works
- Commands like %load_ext autoreload work.
It sounds like the integration isn't as tight as with PyCharm. For example, you mention having ipython available in a debugging session. That's one thing that I haven't managed to get working in VS Code.