-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Comments
@PeterJCLaw This should be filed on https://github.com/pappasam/jedi-language-server. We don't control this behavior in the extension. |
Ah, thanks, I'd assumed that the insertion text and cursor position was controlled by the extension. |
@luabud we have snippets on be default in |
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! |
@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). |
I'm also bothered by the behavior described in the original issue report, particularly when adding type annotations.
There is a I do see, though, that the Python settings reference says:
@luabud would you be open to using the I'd be happy to contribute either way. Thanks. |
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 |
Sounds good, thanks! Happy Holidays! |
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. |
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. |
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 `ms-python.python@2021.3.680753044` as the problematic version, but for me, this behavior began later, with `ms-python.python@2021.10.1317843341`. Installing a prior release, `ms-python.python@2021.9.1246542782`, 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 ms-python.python@2021.9.1246542782`. See: microsoft/vscode#136313
Since there were no downvotes we will keep this issue around as something we would be willing to discuss how to implement. |
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 If customizing Jedi settings isn't on the table, I vote to turn this feature off. |
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 |
@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 |
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 |
@GalaxySnail patch works perfectly, thank you |
@karthiknadig would you be open to a PR which flipped the default? |
@GalaxySnail perhaps a simpler workaround:
This flips the setting that karthiknadig mentioned. |
@PeterJCLaw yep, we would be up for a PR to turn off snippets. |
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
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
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
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
Thanks @PeterJCLaw for both reporting and fixing this issue! 👏 |
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
…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 <minsa110@gmail.com> -------------------- 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 <65722512+aidoskanapyanov@users.noreply.github.com> Co-authored-by: Karthik Nadig <kanadig@microsoft.com> -------------------- 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 <45497113+luabud@users.noreply.github.com> -------------------- 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 <eleanorboyd@microsoft.com> Co-authored-by: Peter Law <PeterJCLaw@gmail.com> Co-authored-by: Carlos Piña Martinez <carlospinamartinezdm@gmail.com> Co-authored-by: Jonathan Rayner <jonathan.j.rayner@gmail.com> Co-authored-by: Pete Farland <pete.farland@posit.co> Co-authored-by: paulacamargo25 <paulitacv25@gmail.com> Co-authored-by: Karthik Nadig <kanadig@microsoft.com> Co-authored-by: Kartik Raj <karraj@microsoft.com> Signed-off-by: GitHub <noreply@github.com>
…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 <minsa110@gmail.com> -------------------- 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 <65722512+aidoskanapyanov@users.noreply.github.com> Co-authored-by: Karthik Nadig <kanadig@microsoft.com> -------------------- 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 <45497113+luabud@users.noreply.github.com> -------------------- 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 <eleanorboyd@microsoft.com> Co-authored-by: Peter Law <PeterJCLaw@gmail.com> Co-authored-by: Carlos Piña Martinez <carlospinamartinezdm@gmail.com> Co-authored-by: Jonathan Rayner <jonathan.j.rayner@gmail.com> Co-authored-by: Pete Farland <pete.farland@posit.co> Co-authored-by: paulacamargo25 <paulitacv25@gmail.com> Co-authored-by: Karthik Nadig <kanadig@microsoft.com> Co-authored-by: Kartik Raj <karraj@microsoft.com> Signed-off-by: GitHub <noreply@github.com>
Environment data
python.languageServer
setting: JediLSPExpected behaviour
Actual behaviour
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.
The text was updated successfully, but these errors were encountered: