microsoft / PTVS

Python Tools for Visual Studio
https://aka.ms/PTVS
Apache License 2.0
2.53k stars 676 forks source link

Intellisense poor behavior, performance issues, race conditions, interferes with typing #4895

Closed joseortiz3 closed 3 years ago

joseortiz3 commented 5 years ago

As others have expressed (https://github.com/Microsoft/PTVS/issues/4707 https://github.com/Microsoft/PTVS/issues/4838) autocomplete (imo the single most important feature) is very unreliable, almost un-usable. Suggestions are often either empty, or incomplete and trivial.

When it's not working correctly, I can sometimes salvage the situation by hitting backspace and retyping.

This seems to imply something is wrong with the way Intellisense is retrieving suggestions.

In my imagination, I think intellisense is "timing out" in a highly non-optimal way during its search. It seems the timeout is triggered by a simple keystroke - "Have the suggestions before the user presses a key, or give up". It then somehow continues during backspacing and retyping, and is then ready.

PTVS's intellisense also has the following undesirable behaviors:

I think all of these issues are inherent in the design of the "realtime autocomplete" functionality introduced in the middle of VS 2017. Fetching auto-completions in realtime is simply not working with the current implementation even on the fastest computers. VS 2015, with its static database, continues to be vastly better for actual python development even after two years of PTVS development on the "realtime" concept.

In summary, it looks like the multi-threading/asynchronous programming behind the "realtime completion engine" is suffering from numerous race conditions and slow performance, and this massively interferes with what users are trying to do with the IDE.

lcorrigan commented 5 years ago

Totally agree with everything above, right down to how VS 2015 worked better. Due to the registry disasters VS has caused me in the past, I wish I could try VS Code (https://github.com/Microsoft/PTVS/issues/4870), but I'm stuck using Ironpython 2.7. Getting that to work with my external libraries in that VS Code is a whole new set of hoops to jump through, so I'm back (every year) screaming at trying to use Eclipse+Pydev and/or waiting for the next VS and friends.

joseortiz3 commented 5 years ago

I wanted to add that the poor Intellisense behavior has not noticeably improved in any way in Visual Studio Preview 2019. This should be a top-priority issue as it is one of the core functionalities of the IDE.

ileile commented 4 years ago

Totally agree. The problems are still here with 16.6

maxrossi commented 4 years ago

Same here with 16.6.5