如何让 VS Code 仅在 Python 中自动完成名称?

How do I have VS Code only autocomplete names in Python?

最近(目前在 1.58.2 上),似乎 VS Code 在自动完成名称时变得更加“有用”。以前,我可以输入

然后在点击 Tab 时我会得到

except pydantic.ValidationError

但现在在从 int 等内置程序到第三方库的情况下,VS Code 得到 suuuuper 帮助并且认为我想调用它并给我签名作为片段:

如何恢复“笨拙”的行为?我很聪明,但恕我直言,我至少需要用一个开放的括号来表示它,而不是它吐出我需要手动 select 删除的文本。


我目前的设置很无聊:

{
    "workbench.editorAssociations": {
        "*.ipynb": "jupyter-notebook"
    },
    "window.titleBarStyle": "custom",
    "gitlens.blame.separateLines": false,
    "gitlens.codeLens.enabled": false,
    "editor.renderWhitespace": "all",
    "python.formatting.blackArgs": [
        "--experimental-string-processing"
    ],
    "files.insertFinalNewline": true,
    "files.trimFinalNewlines": true,
    "files.trimTrailingWhitespace": true,
    "window.zoomLevel": 1,
    "notebook.cellToolbarLocation": {
        "default": "right",
        "jupyter-notebook": "left"
    }
}

设置python.autoComplete.addBrackets目前是默认设置false,即使我在我的设置中明确指出,或设置它true,就我而言没有区别可以说。

扩展:

eamodio.gitlens
EFanZh.graphviz-preview
joaompinto.vscode-graphviz
lextudio.restructuredtext
mechatroner.rainbow-csv
ms-azuretools.vscode-docker
ms-python.python
ms-toolsai.jupyter
ms-vscode-remote.remote-containers
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-ssh-edit
ms-vscode-remote.remote-wsl
ms-vscode-remote.vscode-remote-extensionpack
ms-vscode.sublime-keybindings
mscgenjs.vscode-mscgen
rust-lang.rust
samuelcolvin.jinjahtml
sleistner.vscode-fileutils
tamasfe.even-better-toml
tsandall.opa

您正在使用 JediLSP 语言服务器,对吗?

可以修改参数跳转到下一个Tab

能否尝试切换到 Pylance 语言服务器?它仍然具有“愚蠢”的行为。您可以在 settings.json 文件中进行设置:

"python.languageServer": "Pylance",