Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turn off snippets for jedi LSP #15858

Closed
PeterJCLaw opened this issue Apr 5, 2021 · 20 comments · Fixed by #21194
Closed

Turn off snippets for jedi LSP #15858

PeterJCLaw opened this issue Apr 5, 2021 · 20 comments · Fixed by #21194
Labels
area-intellisense LSP-related functionality: auto-complete, docstrings, navigation, refactoring, etc. community ask Feature request that the community expressed interest in feature-request Request for new features or functionality needs proposal Need to make some design decisions

Comments

@PeterJCLaw
Copy link

Environment data

  • VS Code version: 1.55.0
  • Extension version (available under the Extensions sidebar): 2021.3.680753044
  • OS and version: Ubuntu 20.04 LTS
  • Python version: 3.7, deadsnakes
  • Type of virtual environment used: virtualenv
  • Value of the python.languageServer setting: JediLSP

Expected behaviour

class Thing: pass

Th<tab> # should complete to:
Thing|     # cursor after completed word

Actual behaviour

class Thing: pass

Th<tab> # should complete to:
Thing(|)  # cursor between completed parens

As far as I can tell this is specific to the JediLSP integration -- changing my language server to Jedi results in the expected completion.

I can maybe see why this is maybe useful if you're planning to construct an instance or calling a function, though there are many other places where callable symbols are used in which you don't want this to happen -- passing them as callbacks and type annotations for example.

@PeterJCLaw PeterJCLaw added triage-needed Needs assignment to the proper sub-team bug Issue identified by VS Code Team member as probable bug labels Apr 5, 2021
@karthiknadig
Copy link
Member

@PeterJCLaw This should be filed on https://github.com/pappasam/jedi-language-server. We don't control this behavior in the extension.

@PeterJCLaw
Copy link
Author

Ah, thanks, I'd assumed that the insertion text and cursor position was controlled by the extension.

@karthiknadig
Copy link
Member

@luabud we have snippets on be default in jediLSP. This seems to be caused by that. Should we turn it off. It is off for the other language server. But we don't have a setting to control this behavior. Need your opinion on should we turn this off by default or provide a setting.

@karthiknadig karthiknadig reopened this Apr 6, 2021
@karthiknadig karthiknadig added area-intellisense LSP-related functionality: auto-complete, docstrings, navigation, refactoring, etc. needs decision and removed triage-needed Needs assignment to the proper sub-team labels Apr 6, 2021
@github-actions github-actions bot added the triage-needed Needs assignment to the proper sub-team label Apr 6, 2021
@karthiknadig karthiknadig changed the title JediLSP completions unexpectedly add parentheses Provide a way to turn off snippets from jediLSP Apr 6, 2021
@karthiknadig karthiknadig added feature-request Request for new features or functionality and removed triage-needed Needs assignment to the proper sub-team bug Issue identified by VS Code Team member as probable bug labels Apr 6, 2021
@luabud
Copy link
Member

luabud commented Apr 9, 2021

If we decide to provide a setting, we should do so for the other language servers too. I don't think Pylance has any plans to have this configuration added, so I'd suggest for us to just turn it off. Would love to hear other opinions too, though!

@pappasam
Copy link

@luabud I'm not a vscode user, but for me personally, I enjoy having snippets enabled with my editor configured to manually expand them with a keybinding, when desired. This way I can benefit from snippets when I want them, but I'm not forced to use them if I don't want to. I do this for all languages / configured language servers for my LSP client (coc.nvim).

@br3ndonland
Copy link

I'm also bothered by the behavior described in the original issue report, particularly when adding type annotations.

#15858 (comment):

If we decide to provide a setting, we should do so for the other language servers too.

There is a python.analysis.completeFunctionParens setting. If used for Jedi, setting this to false would address the original issue report specifically.

I do see, though, that the Python settings reference says:

The language server settings apply when python.languageServer is Pylance or Default.

@luabud would you be open to using the python.analysis.completeFunctionParens setting for Jedi as well? Or is the python.analysis setting namespace considered completely off-limits to other language servers, and would something like python.jediCompleteFunctionParens or python.jediSnippetsEnabled make more sense?

I'd be happy to contribute either way. Thanks.

@luabud
Copy link
Member

luabud commented Dec 14, 2021

Hey @br3ndonland! Thanks for being up to contributing 😊 I want to talk to the team about this a bit more as we don't have any jedi specific settings anymore, and the python.analysis.completeFunctionParens one is defined in Pylance's side, not the Python extension. But a lot of folks are out on vacation until the new year, so this may take some time 😓 as soon as everyone's back I will talk to them and get back to you, though!

@br3ndonland
Copy link

Sounds good, thanks! Happy Holidays!

@r-owen
Copy link

r-owen commented Dec 15, 2021

It would probably be simplest to just turn this off. When it doubt, don't add additional stuff the user might not want.

But if you can figure out a way to make it a setting, that'd be fine. I really like luabud's idea of only adding the extra text when the user asks for it. That would make the extra intelligence more useful and less intrusive.

@brettcannon brettcannon changed the title Provide a way to turn off snippets from jediLSP Turn off snippets for jedi LSP Jan 5, 2022
@brettcannon brettcannon added needs community feedback Awaiting community feedback and removed good first issue needs PR labels Jan 5, 2022
@brettcannon
Copy link
Member

We talked this over and we don't want to complicate our Jedi support by adding a new feature. But we are willing to change the hard-coded setting to turn off snippets in Jedi if that's what people want.

As such, we are going to ask you all and the community to vote on what you want the setting to be. We are going to give the community 60 days to provide 👍 upvotes on the opening comment to gauge general interest in this idea of changing the default (and 👎 if people want to keep the current setting). If there's enough upvotes then we will consider this feature request in our future planning. If there's unfortunately not enough upvotes then we will close this issue and keep the current setting.

br3ndonland added a commit to br3ndonland/dotfiles that referenced this issue Jan 5, 2022
The VSCode Python extension altered the behavior of snippet expansion
when using the open-source Jedi LSP, adding parentheses after class
names. This behavior may be bothersome when adding type annotations.
See: microsoft/vscode-python#15858

The original issue report lists `[email protected]` as
the problematic version, but for me, this behavior began later, with
`[email protected]`. Installing a prior release,
`[email protected]`, avoids this behavior.

The VSCode extension marketplace only displays the last five versions of
each extension, but a longer version history is available from Open VSX.
See: https://open-vsx.org/extension/ms-python/python/2021.9.1246542782

The VSCode CLI can also apparently install specific extension versions:
`code --install-extension [email protected]`.
See: microsoft/vscode#136313
@brettcannon brettcannon added needs proposal Need to make some design decisions and removed needs community feedback Awaiting community feedback labels Feb 3, 2022
@brettcannon
Copy link
Member

Since there were no downvotes we will keep this issue around as something we would be willing to discuss how to implement.

@bulatb
Copy link

bulatb commented Mar 9, 2022

It looks like Jedi has this behavior disabled by default, which makes sense: it's guaranteed to be wrong at least some of the time, in practice pretty often, and it can't be worked around with muscle memory because its correctness depends on the context. Inconsistent unwanted behavior is the worst UX.

When bracket completion is off, completions are always correct but sometimes less convenient than possible. In all those cases you already know you're typing a call, so typing ( completes to (|) and gets you most of the convenience back. Never adding brackets never makes you think; always adding brackets always does.

If customizing Jedi settings isn't on the table, I vote to turn this feature off.

@brettcannon brettcannon added the community ask Feature request that the community expressed interest in label Mar 9, 2022
@jpkemp
Copy link

jpkemp commented Apr 20, 2023

No resolution on this yet? Just came back to coding after a few months break, and it's really irritating not being able to disable this. Happy to help out if needed

@karthiknadig
Copy link
Member

karthiknadig commented Apr 20, 2023

@jpkemp If you want to change the default it is here: https://github.com/microsoft/vscode-python/blob/main/src/client/activation/jedi/analysisOptions.ts#L62

@GalaxySnail
Copy link

According to the information in pappasam/jedi-language-server#124, I'm using this patch as a workaround:

--- jedi_language_server/jedi_utils.py.bak-20211025     2021-10-23 08:04:41.975473600 +0000
+++ jedi_language_server/jedi_utils.py  2021-10-24 16:57:31.162533100 +0000
@@ -297,26 +297,7 @@

 def get_snippet_signature(signature: Signature) -> str:
     """Return the snippet signature."""
-    params: List[ParamName] = signature.params
-    if not params:
-        return "()$0"
-    signature_list = []
-    count = 1
-    for param in params:
-        param_name = param.name
-        if param_name in _PARAM_NAME_IGNORE:
-            continue
-        if param.kind in _POSITION_PARAMETERS:
-            param_str = param.to_string()
-            if "=" in param_str:  # hacky default argument check
-                break
-            result = "${" + f"{count}:{param_name}" + "}"
-            signature_list.append(result)
-            count += 1
-            continue
-    if not signature_list:
-        return "($0)"
-    return "(" + ", ".join(signature_list) + ")$0"
+    return ""


 def is_import(script_: Script, line: int, column: int) -> bool:
$ patch -i jedi_utils.py.patch ~/.vscode/extensions/ms-python.python-*/pythonFiles/lib/jedilsp/jedi_language_server/jedi_utils.py

@jpkemp
Copy link

jpkemp commented Apr 21, 2023

@GalaxySnail patch works perfectly, thank you

@PeterJCLaw
Copy link
Author

@karthiknadig would you be open to a PR which flipped the default?

@feffy380
Copy link

@GalaxySnail perhaps a simpler workaround:

sed -i 's/disableSnippets:!1/disableSnippets:!0/g' ~/.vscode/extensions/ms-python.python-*/out/client/extension.js

This flips the setting that karthiknadig mentioned.

@brettcannon
Copy link
Member

@PeterJCLaw yep, we would be up for a PR to turn off snippets.

PeterJCLaw added a commit to PeterJCLaw/vscode-python that referenced this issue May 7, 2023
This brings the Jedi based completion experience in line with that
provided by PyLance. Completions now insert only the current symbol
rather than assuming that the user wants to e.g: call that symbol.

This means for example that completing `max` will insert just `max`
rather `max(arg1, arg2)`. While for this case this may be seen as
less useful, it means that insertions in places where a call is
not desired (such as imports and typing contexts) will not be forced
to manually remove the parentheses and template arguments which
might otherwise be inserted.

Users can still use the signature support UI to explore signatures
and of course insertion of an opening parenthesis will still insert
a closing one.

Hopefully this new configuration will be preferable to a majority
of users.

Fixes microsoft#15858
PeterJCLaw added a commit to PeterJCLaw/vscode-python that referenced this issue May 7, 2023
This brings the Jedi based completion experience in line with that
provided by Pylance. Completions now insert only the current symbol
rather than assuming that the user wants to e.g: call that symbol.

This means for example that completing `max` will insert just `max`
rather `max(arg1, arg2)`. While for this case this may be seen as
less useful, it means that insertions in places where a call is
not desired (such as imports and typing contexts) will not be forced
to manually remove the parentheses and template arguments which
might otherwise be inserted.

Users can still use the signature support UI to explore signatures
and of course insertion of an opening parenthesis will still insert
a closing one.

Hopefully this new configuration will be preferable to a majority
of users.

Fixes microsoft#15858
PeterJCLaw added a commit to PeterJCLaw/vscode-python that referenced this issue May 7, 2023
This brings the Jedi based completion experience in line with that
provided by Pylance. Completions now insert only the current symbol
rather than assuming that the user wants to e.g: call that symbol.

This means for example that completing `max` will insert just `max`
rather `max(arg1, arg2)`. While for this case this may be seen as
less useful, it means that insertions in places where a call is
not desired (such as imports and typing contexts) will not be forced
to manually remove the parentheses and template arguments which
might otherwise be inserted.

Users can still use the signature support UI to explore signatures
and of course insertion of an opening parenthesis will still insert
a closing one.

Hopefully this new configuration will be preferable to a majority
of users.

Fixes microsoft#15858
karthiknadig pushed a commit that referenced this issue May 9, 2023
This brings the Jedi based completion experience in line with that
provided by Pylance. Completions now insert only the current symbol
rather than assuming that the user wants to e.g: call that symbol.

This means for example that completing `max` will insert just `max`
rather `max(arg1, arg2)`. While for this case this may be seen as less
useful, it means that insertions in places where a call is not desired
(such as imports and typing contexts) will not be forced to manually
remove the parentheses and template arguments which might otherwise be
inserted.

Users can still use the signature support UI to explore signatures and
of course insertion of an opening parenthesis will still insert a
closing one.

Hopefully this new configuration will be preferable to a majority of
users.

I've done some light testing to check that this disables the described
additional completion, however I'm not massively familiar with JediLSP
so I'm not sure what other behaviours this will disable.

Fixes #15858
@br3ndonland
Copy link

Thanks @PeterJCLaw for both reporting and fixing this issue! 👏

eleanorjboyd pushed a commit to eleanorjboyd/vscode-python that referenced this issue May 12, 2023
This brings the Jedi based completion experience in line with that
provided by Pylance. Completions now insert only the current symbol
rather than assuming that the user wants to e.g: call that symbol.

This means for example that completing `max` will insert just `max`
rather `max(arg1, arg2)`. While for this case this may be seen as less
useful, it means that insertions in places where a call is not desired
(such as imports and typing contexts) will not be forced to manually
remove the parentheses and template arguments which might otherwise be
inserted.

Users can still use the signature support UI to explore signatures and
of course insertion of an opening parenthesis will still insert a
closing one.

Hopefully this new configuration will be preferable to a majority of
users.

I've done some light testing to check that this disables the described
additional completion, however I'm not massively familiar with JediLSP
so I'm not sure what other behaviours this will disable.

Fixes microsoft#15858
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jun 10, 2023
wesm pushed a commit to posit-dev/positron that referenced this issue Mar 28, 2024
…on release 2023.10.0

Merge pull request #122 from posit-dev/merge/2023.10.0

Merging upstream vscode-python release 2023.10.0
--------------------
Commit message for posit-dev/positron-python@fc0926f:

Add typings to get updated EnvironmentVariableCollection API

--------------------
Commit message for posit-dev/positron-python@8c11f29:

Merge remote-tracking branch 'upstream/release/2023.10'

--------------------
Commit message for posit-dev/positron-python@fea895f:

Update version and readme for release (posit-dev/positron-python#21388)

Co-authored-by: Soojin (Min) Choi <[email protected]>
--------------------
Commit message for microsoft/vscode-python@ad9c899:

Update version for release candidate (microsoft/vscode-python#21369)


--------------------
Commit message for microsoft/vscode-python@a395e2e:

fix bug so canceling debug works in rewrite (microsoft/vscode-python#21361)

fixes microsoft/vscode-python#21336
--------------------
Commit message for microsoft/vscode-python@be829b3:

Unittest for large workspaces (microsoft/vscode-python#21351)

follows the same steps as making pytest compatible with large workspaces
with many tests. Now test_ids are sent over a port as a json instead of
in the exec function which can hit a cap on # of characters. Should fix
microsoft/vscode-python#21339.
--------------------
Commit message for microsoft/vscode-python@cd76ee1:

add pythonTestAdapter to experiment enum (microsoft/vscode-python#21357)

allow people to opt in and out of the pythonTestAdapter rewrite via the
settings `python.experiment.optInto` or `python.experiment.optOutfrom`
--------------------
Commit message for microsoft/vscode-python@dbd0b73:

adding extra log messages for rewrite debugging (microsoft/vscode-python#21352)

These logs print errors and other bits of information which will be
helpful for debugging workflows of users where we need to get
information such as args or which step in the process they got to.
--------------------
Commit message for microsoft/vscode-python@d968b8c:

Dont show command for button trigger in command pallet (microsoft/vscode-python#21350)

Fixes microsoft/vscode-python#21322
--------------------
Commit message for microsoft/vscode-python@e9a8dd5:

remove duplicates from test_ids array (microsoft/vscode-python#21347)

this will partially remediate
microsoft/vscode-python#21339 in regards to
the duplicate IDs being run.
--------------------
Commit message for microsoft/vscode-python@f148139:

allow pytest tests to handle multiple payloads (microsoft/vscode-python#21301)

As part of the switch to allow for dynamic run- the pytest discovery and
execution tests are now switched to be take lists of dicts where the
dicts are the payloads.
--------------------
Commit message for microsoft/vscode-python@c213491:

Apply environment variables after shell initialization scripts are run in `pythonTerminalEnvVarActivation` experiment (microsoft/vscode-python#21290)

For microsoft/vscode-python#11039 microsoft/vscode-python#20822
Closes microsoft/vscode-python#21297

Update proposed APIs to be used in Terminal activation experiment.
--------------------
Commit message for microsoft/vscode-python@72f7ef8:

Set up testing rewrite experiment (microsoft/vscode-python#21258)

is the beginning of this issue:
microsoft/vscode-python#21150, in that it will
start the process of implementing the setting in the extension
--------------------
Commit message for microsoft/vscode-python@4109228:

fix debugging with new pytest run script (microsoft/vscode-python#21299)

fix debugging for run_pytest_script.py setup
--------------------
Commit message for microsoft/vscode-python@b916981:

remove unneeded multiroot code (microsoft/vscode-python#21295)

removed extra steps to wrap data since this creates duplicate folders in
the controller and only keeps the most recent instead of all the roots
from different workspaces.
--------------------
Commit message for microsoft/vscode-python@e2a9cec:

allow large scale testing (microsoft/vscode-python#21269)

allows new testing rewrite to handle 500+ tests and load and run these
tests. High limit tested was 10,000 tests.
--------------------
Commit message for microsoft/vscode-python@f2f5fe2:

Check config type in the ChildProcessAttachEvents (microsoft/vscode-python#21272)


--------------------
Commit message for microsoft/vscode-python@4b4e5b7:

Update pyright version (microsoft/vscode-python#21296)

Fix error in tests, updating pyright version
--------------------
Commit message for microsoft/vscode-python@c9a7268:

Revert "Remove hack to check the vscode version" (microsoft/vscode-python#21294)

Reverts microsoft/vscode-python#21180
For microsoft/vscode-python#20769
--------------------
Commit message for microsoft/vscode-python@a74f1d1:

Detect installed packages in the selected environment (microsoft/vscode-python#21231)

Fixes microsoft/vscode-python#21140
--------------------
Commit message for microsoft/vscode-python@b0ebc9b:

Enable debug pytest (microsoft/vscode-python#21228)

fixes microsoft/vscode-python#21147

---------

Co-authored-by: Aidos Kanapyanov <[email protected]>
Co-authored-by: Karthik Nadig <[email protected]>
--------------------
Commit message for microsoft/vscode-python@be9662f:

revert testing to using socket (microsoft/vscode-python#21242)

switch back to using a socket instead of an output file for use in the
plugin communication during testing. This should work now that we
resolved the issue with python path for windows.
--------------------
Commit message for microsoft/vscode-python@b4a47bb:

Add reload flag on fastApi provider (microsoft/vscode-python#21241)


--------------------
Commit message for microsoft/vscode-python@fcfc54c:

Add option for pyenv interpreters when creating environments with venv (microsoft/vscode-python#21219)

Resolves microsoft/vscode-python#20881 .

Testing:

Behaves as expected when testing with Extension Development Host:


![image](https://github.com/microsoft/vscode-python/assets/30149293/d114d9ab-f2d8-4273-877b-d7dd030cfe76)
--------------------
Commit message for microsoft/vscode-python@b3d43e5:

Do not open "save as" window when running existing Python files (microsoft/vscode-python#21232)

Closes microsoft/vscode-python#21209
--------------------
Commit message for microsoft/vscode-python@b0da28c:

Remove IS_WINDOWS constant in favor of PlatformService (microsoft/vscode-python#21157)

Solves partially microsoft/vscode-python#8542
--------------------
Commit message for microsoft/vscode-python@0c4fa40:

Change name of command to run Python files in separate terminals (microsoft/vscode-python#21229)

Closes microsoft/vscode-python#14094
--------------------
Commit message for microsoft/vscode-python@1533818:

Added option to run multiple Python files in separate terminals (microsoft/vscode-python#21223)

Closes microsoft/vscode-python#21215
microsoft/vscode-python#14094

Added the option to assign a dedicated terminal for each Python file:


![image](https://github.com/microsoft/vscode-python/assets/13199757/b01248e4-c826-4de0-b15f-cde959965e68)
--------------------
Commit message for microsoft/vscode-python@eb9fde3:

Add `createEnvironment.contentButton` setting (microsoft/vscode-python#21212)

Closes microsoft/vscode-python#20982

---------

Co-authored-by: Luciana Abud <[email protected]>
--------------------
Commit message for microsoft/vscode-python@5eef525:

Add logging when interpreter path changes (microsoft/vscode-python#21210)

For microsoft/vscode-python#21208
--------------------
Commit message for microsoft/vscode-python@8d291f7:

Disable "snippets" expansion in Jedi LSP (microsoft/vscode-python#21194)

This brings the Jedi based completion experience in line with that
provided by Pylance. Completions now insert only the current symbol
rather than assuming that the user wants to e.g: call that symbol.

This means for example that completing `max` will insert just `max`
rather `max(arg1, arg2)`. While for this case this may be seen as less
useful, it means that insertions in places where a call is not desired
(such as imports and typing contexts) will not be forced to manually
remove the parentheses and template arguments which might otherwise be
inserted.

Users can still use the signature support UI to explore signatures and
of course insertion of an opening parenthesis will still insert a
closing one.

Hopefully this new configuration will be preferable to a majority of
users.

I've done some light testing to check that this disables the described
additional completion, however I'm not massively familiar with JediLSP
so I'm not sure what other behaviours this will disable.

Fixes microsoft/vscode-python#15858
--------------------
Commit message for microsoft/vscode-python@a85eb3b:

Fix startup telemetry issue (microsoft/vscode-python#21203)

Could fix microsoft/vscode-python#20874 based
on error trace.
--------------------
Commit message for microsoft/vscode-python@17daae4:

Open separate Python terminals when running different Python files (microsoft/vscode-python#21202)

Closes microsoft/vscode-python#21097
Closes microsoft/vscode-python#14094
--------------------
Commit message for microsoft/vscode-python@f0253e5:

Use actions from `vscode-github-triage-actions` in all Python automations (microsoft/vscode-python#21178)


--------------------
Commit message for microsoft/vscode-python@678f70d:

Remove hack to check the vscode version (microsoft/vscode-python#21180)

Closed: microsoft/vscode-python#20769
--------------------
Commit message for microsoft/vscode-python@6bdada0:

Use `saveEditor` proposed API for running untitled Python files (microsoft/vscode-python#21183)

Closes microsoft/vscode-python#21182

Lead-authored-by: Eleanor Boyd <[email protected]>
Co-authored-by: Peter Law <[email protected]>
Co-authored-by: Carlos Piña Martinez <[email protected]>
Co-authored-by: Jonathan Rayner <[email protected]>
Co-authored-by: Pete Farland <[email protected]>
Co-authored-by: paulacamargo25 <[email protected]>
Co-authored-by: Karthik Nadig <[email protected]>
Co-authored-by: Kartik Raj <[email protected]>
Signed-off-by: GitHub <[email protected]>
wesm pushed a commit to posit-dev/positron that referenced this issue Mar 28, 2024
…on release 2023.10.0

Merge pull request #122 from posit-dev/merge/2023.10.0

Merging upstream vscode-python release 2023.10.0
--------------------
Commit message for posit-dev/positron-python@fc0926f:

Add typings to get updated EnvironmentVariableCollection API

--------------------
Commit message for posit-dev/positron-python@8c11f29:

Merge remote-tracking branch 'upstream/release/2023.10'

--------------------
Commit message for posit-dev/positron-python@fea895f:

Update version and readme for release (posit-dev/positron-python#21388)

Co-authored-by: Soojin (Min) Choi <[email protected]>
--------------------
Commit message for microsoft/vscode-python@ad9c899:

Update version for release candidate (microsoft/vscode-python#21369)


--------------------
Commit message for microsoft/vscode-python@a395e2e:

fix bug so canceling debug works in rewrite (microsoft/vscode-python#21361)

fixes microsoft/vscode-python#21336
--------------------
Commit message for microsoft/vscode-python@be829b3:

Unittest for large workspaces (microsoft/vscode-python#21351)

follows the same steps as making pytest compatible with large workspaces
with many tests. Now test_ids are sent over a port as a json instead of
in the exec function which can hit a cap on # of characters. Should fix
microsoft/vscode-python#21339.
--------------------
Commit message for microsoft/vscode-python@cd76ee1:

add pythonTestAdapter to experiment enum (microsoft/vscode-python#21357)

allow people to opt in and out of the pythonTestAdapter rewrite via the
settings `python.experiment.optInto` or `python.experiment.optOutfrom`
--------------------
Commit message for microsoft/vscode-python@dbd0b73:

adding extra log messages for rewrite debugging (microsoft/vscode-python#21352)

These logs print errors and other bits of information which will be
helpful for debugging workflows of users where we need to get
information such as args or which step in the process they got to.
--------------------
Commit message for microsoft/vscode-python@d968b8c:

Dont show command for button trigger in command pallet (microsoft/vscode-python#21350)

Fixes microsoft/vscode-python#21322
--------------------
Commit message for microsoft/vscode-python@e9a8dd5:

remove duplicates from test_ids array (microsoft/vscode-python#21347)

this will partially remediate
microsoft/vscode-python#21339 in regards to
the duplicate IDs being run.
--------------------
Commit message for microsoft/vscode-python@f148139:

allow pytest tests to handle multiple payloads (microsoft/vscode-python#21301)

As part of the switch to allow for dynamic run- the pytest discovery and
execution tests are now switched to be take lists of dicts where the
dicts are the payloads.
--------------------
Commit message for microsoft/vscode-python@c213491:

Apply environment variables after shell initialization scripts are run in `pythonTerminalEnvVarActivation` experiment (microsoft/vscode-python#21290)

For microsoft/vscode-python#11039 microsoft/vscode-python#20822
Closes microsoft/vscode-python#21297

Update proposed APIs to be used in Terminal activation experiment.
--------------------
Commit message for microsoft/vscode-python@72f7ef8:

Set up testing rewrite experiment (microsoft/vscode-python#21258)

is the beginning of this issue:
microsoft/vscode-python#21150, in that it will
start the process of implementing the setting in the extension
--------------------
Commit message for microsoft/vscode-python@4109228:

fix debugging with new pytest run script (microsoft/vscode-python#21299)

fix debugging for run_pytest_script.py setup
--------------------
Commit message for microsoft/vscode-python@b916981:

remove unneeded multiroot code (microsoft/vscode-python#21295)

removed extra steps to wrap data since this creates duplicate folders in
the controller and only keeps the most recent instead of all the roots
from different workspaces.
--------------------
Commit message for microsoft/vscode-python@e2a9cec:

allow large scale testing (microsoft/vscode-python#21269)

allows new testing rewrite to handle 500+ tests and load and run these
tests. High limit tested was 10,000 tests.
--------------------
Commit message for microsoft/vscode-python@f2f5fe2:

Check config type in the ChildProcessAttachEvents (microsoft/vscode-python#21272)


--------------------
Commit message for microsoft/vscode-python@4b4e5b7:

Update pyright version (microsoft/vscode-python#21296)

Fix error in tests, updating pyright version
--------------------
Commit message for microsoft/vscode-python@c9a7268:

Revert "Remove hack to check the vscode version" (microsoft/vscode-python#21294)

Reverts microsoft/vscode-python#21180
For microsoft/vscode-python#20769
--------------------
Commit message for microsoft/vscode-python@a74f1d1:

Detect installed packages in the selected environment (microsoft/vscode-python#21231)

Fixes microsoft/vscode-python#21140
--------------------
Commit message for microsoft/vscode-python@b0ebc9b:

Enable debug pytest (microsoft/vscode-python#21228)

fixes microsoft/vscode-python#21147

---------

Co-authored-by: Aidos Kanapyanov <[email protected]>
Co-authored-by: Karthik Nadig <[email protected]>
--------------------
Commit message for microsoft/vscode-python@be9662f:

revert testing to using socket (microsoft/vscode-python#21242)

switch back to using a socket instead of an output file for use in the
plugin communication during testing. This should work now that we
resolved the issue with python path for windows.
--------------------
Commit message for microsoft/vscode-python@b4a47bb:

Add reload flag on fastApi provider (microsoft/vscode-python#21241)


--------------------
Commit message for microsoft/vscode-python@fcfc54c:

Add option for pyenv interpreters when creating environments with venv (microsoft/vscode-python#21219)

Resolves microsoft/vscode-python#20881 .

Testing:

Behaves as expected when testing with Extension Development Host:


![image](https://github.com/microsoft/vscode-python/assets/30149293/d114d9ab-f2d8-4273-877b-d7dd030cfe76)
--------------------
Commit message for microsoft/vscode-python@b3d43e5:

Do not open "save as" window when running existing Python files (microsoft/vscode-python#21232)

Closes microsoft/vscode-python#21209
--------------------
Commit message for microsoft/vscode-python@b0da28c:

Remove IS_WINDOWS constant in favor of PlatformService (microsoft/vscode-python#21157)

Solves partially microsoft/vscode-python#8542
--------------------
Commit message for microsoft/vscode-python@0c4fa40:

Change name of command to run Python files in separate terminals (microsoft/vscode-python#21229)

Closes microsoft/vscode-python#14094
--------------------
Commit message for microsoft/vscode-python@1533818:

Added option to run multiple Python files in separate terminals (microsoft/vscode-python#21223)

Closes microsoft/vscode-python#21215
microsoft/vscode-python#14094

Added the option to assign a dedicated terminal for each Python file:


![image](https://github.com/microsoft/vscode-python/assets/13199757/b01248e4-c826-4de0-b15f-cde959965e68)
--------------------
Commit message for microsoft/vscode-python@eb9fde3:

Add `createEnvironment.contentButton` setting (microsoft/vscode-python#21212)

Closes microsoft/vscode-python#20982

---------

Co-authored-by: Luciana Abud <[email protected]>
--------------------
Commit message for microsoft/vscode-python@5eef525:

Add logging when interpreter path changes (microsoft/vscode-python#21210)

For microsoft/vscode-python#21208
--------------------
Commit message for microsoft/vscode-python@8d291f7:

Disable "snippets" expansion in Jedi LSP (microsoft/vscode-python#21194)

This brings the Jedi based completion experience in line with that
provided by Pylance. Completions now insert only the current symbol
rather than assuming that the user wants to e.g: call that symbol.

This means for example that completing `max` will insert just `max`
rather `max(arg1, arg2)`. While for this case this may be seen as less
useful, it means that insertions in places where a call is not desired
(such as imports and typing contexts) will not be forced to manually
remove the parentheses and template arguments which might otherwise be
inserted.

Users can still use the signature support UI to explore signatures and
of course insertion of an opening parenthesis will still insert a
closing one.

Hopefully this new configuration will be preferable to a majority of
users.

I've done some light testing to check that this disables the described
additional completion, however I'm not massively familiar with JediLSP
so I'm not sure what other behaviours this will disable.

Fixes microsoft/vscode-python#15858
--------------------
Commit message for microsoft/vscode-python@a85eb3b:

Fix startup telemetry issue (microsoft/vscode-python#21203)

Could fix microsoft/vscode-python#20874 based
on error trace.
--------------------
Commit message for microsoft/vscode-python@17daae4:

Open separate Python terminals when running different Python files (microsoft/vscode-python#21202)

Closes microsoft/vscode-python#21097
Closes microsoft/vscode-python#14094
--------------------
Commit message for microsoft/vscode-python@f0253e5:

Use actions from `vscode-github-triage-actions` in all Python automations (microsoft/vscode-python#21178)


--------------------
Commit message for microsoft/vscode-python@678f70d:

Remove hack to check the vscode version (microsoft/vscode-python#21180)

Closed: microsoft/vscode-python#20769
--------------------
Commit message for microsoft/vscode-python@6bdada0:

Use `saveEditor` proposed API for running untitled Python files (microsoft/vscode-python#21183)

Closes microsoft/vscode-python#21182

Lead-authored-by: Eleanor Boyd <[email protected]>
Co-authored-by: Peter Law <[email protected]>
Co-authored-by: Carlos Piña Martinez <[email protected]>
Co-authored-by: Jonathan Rayner <[email protected]>
Co-authored-by: Pete Farland <[email protected]>
Co-authored-by: paulacamargo25 <[email protected]>
Co-authored-by: Karthik Nadig <[email protected]>
Co-authored-by: Kartik Raj <[email protected]>
Signed-off-by: GitHub <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-intellisense LSP-related functionality: auto-complete, docstrings, navigation, refactoring, etc. community ask Feature request that the community expressed interest in feature-request Request for new features or functionality needs proposal Need to make some design decisions
Projects
None yet
Development

Successfully merging a pull request may close this issue.