VSCode 自动完成 python 的字符串参数

Ste*_*eve 3 python docstring visual-studio-code

我一直在寻找是否可以在 VSCode 中为 Python 创建相同的行为来显示字符串参数输入,就像在 JavaScript 中使用 jsdoc 一样。

使用 JSDoc 的 JavaScript 示例:

/**
* @method someMethod
* @description A special method.
* @param { "option1" | "option2" } param1 Choose an option.
*/
function someMethod(param1) {
    console.log(param1);
}
Run Code Online (Sandbox Code Playgroud)

因此,在调用该方法时,VSCode 将为 param1 提供自动完成选项。

在此输入图像描述

所以我正在寻找一个Python等效项,最好使用谷歌文档字符串格式:

def some_method(param1: str) -> None:
    """A special method.

    Args:
        param1 (str): Choose an option. # HOW CAN WE ADD INTELLISENSE OPTIONS HERE??
    
    """
    print(param1)
Run Code Online (Sandbox Code Playgroud)

Mar*_*ers 5

在 VSCode 中,由使用的语言服务器决定自动完成。当前 Python 补全的“黄金标准”是Microsoft Pylance 扩展,它基于Microsoft Pyright构建来分析源代码。

反过来,Pyright 依赖类型推断和类型提示来了解可用的自动完成选项。虽然这确实包括对注释的支持,但不支持文档字符串中的类型提示(这在类型提示规范中被明确拒绝)。

如果您习惯使用 Typescript,Python 类型提示和 Pylance 应该以几乎相同的方式工作。您自己的示例已经包含类型提示,并且示例的直译是使用文字类型

from typing import Literal

def some_method(param1: Literal["option1", "option2"]) -> None:
    """A special method."""
    print(param1)```
Run Code Online (Sandbox Code Playgroud)

然后您可以自动完成这些值:

Visual Studio 屏幕截图,具有 Intellisense 自动完成功能,提供“option1”和“option2”字符串