This change also fixes:
* PY-13099, PY-21571 Selected virtualenv location is saved relative to
the project directory or the virtualenv home directory
* PY-20109 Interpreter file chooser starts in the home directory to
prevent annoying slow scrolling to /usr/bin and provide a more
useful default
* PY-18439 Don't store minor Python interpreter version, only X.Y
* PY-15911 Don't show detected interpreters in the project interpreter
combo box and associate any new virtualenvs with the current project
to prevent the combo box from getting huge
* PY-14906 Name Python interpreters as "Python X.Y" or
"Python X.Y (project-name)", don't store local machine paths in the
interpreter name if we can avoid it
* PY-13464 Don't truncate interpreter names in the combo box at the
new project screen
New authentication type `OPEN_SSH` enhances `AUTH_AGENT`. Beside using authentication agent (ssh-agent or PuTTY) OpenSSH config is used to locate identity files that could be used for authentication.
Todo index isn't calculated for library files anymore, but BaseFilterLexerUtil
adds ScanContent to the user data only if it will be needed for both Id
and Todo indexes and it is expected to be removed by the second.
The cause of the problem was the difference in parsing for different
language levels.
This commit improves error recovery and adds support for stubs for
syntax elements unavailable in older Python versions.
Cases that are covered are necessary for stubs generation
for Python 3.6 standard library. They are discovered by automatic
validation executed by stubs generator in StubsGenerator.kt.
Those are the cases that were fixed:
* A stub for single star argument in Py2 was absent
* Type annotations in Py2 were absent
* Print with end argument in Py2 broke parser
* Exec function as argument in Py2 broke parser
* Async keyword after decorator broke parser
All the cases are listed as test cases in PyUnifiedStubsTest
P.S. It is possible though that more cases will be revealed in future.
If in the frame there is at least one very long or slow variable, the frame's variable aren't shown. In order to avoid such situations we add an option to load variables asynchronously. At first debugger loads only names of the variables, and after that it sends additional commands and evaluates values of the variables in a separate threads.
* join several update requests together;
* if need to execute something after update - cancel all requests and
force update with post runnable (maybe invokeAndWait would be better);
* extract methods to appropriate managers;
* fix update method contract: return true if drop is not possible;
* refactor update method for shelved drag bean case;
* IDEA-169729 add ability to choose changelist while dragging
shelved changes to 'Local Changes' tab;
* create common implementation for appropriate targetContent;
* use cleanUpLeave runnable for TabbedLabel from real content target;
* IDEA-169852 Silent shelve/unshelve could activate tab on drag&hold;