假设我正确输入了我的 python 代码,有没有一种方法或扩展可以让 vscode 只提供适合该参数的自动完成选项?
例如:
from enum import IntEnum
class MyEnum(IntEnum):
OneThing = 1
Another = 2
EvenMore = 3
def my_function(parameter : MyEnum):
print(parameter)
现在,当我开始编写代码时,我输入...
my_function(
它完成了
()
并提供了需要去那里的类型的信息。
我希望我能够开始输入
One
并让它在建议中包含 MyEnum.OneThing
如果我在顶部范围创建一个变量,例如...
MyEnum_OneThing = MyEnum.OneThing
然后我可以打字
my_function(One
,它会自动完成 )
并建议 MyEnum_OneThing
有没有办法让它提出建议
MyEnum.OneThing
? 我们有一些具有数百个枚举值的对象,我们希望自动完成/智能感知更有帮助。
(或者,我想,替代解决方案是一种自动化 MyEnum_
确保您的函数具有类型提示和详细的文档字符串:
from enum import IntEnum
class MyEnum(IntEnum):
OneThing = 1
Another = 2
EvenMore = 3
def my_function(parameter: MyEnum):
"""
Function that does something with MyEnum.
:param parameter: Enum of type MyEnum
"""
print(parameter)
然后在 VS Code 中创建自定义代码段:
{
"MyEnum Snippet": {
"prefix": "MyEnum.",
"body": [
"MyEnum.${1|OneThing,Another,EvenMore|}"
],
"description": "Autocomplete for MyEnum members"
}
}
最后,您可以编写一个脚本来为
enum
成员创建变量:
from enum import IntEnum
class MyEnum(IntEnum):
OneThing = 1
Another = 2
EvenMore = 3
globals().update({f"MyEnum_{member.name}": member for member in MyEnum})
def my_function(parameter: MyEnum):
print(parameter)
通过这种方式,您将拥有每个
enum
成员的顶级变量,这些变量将被 IntelliSense 拾取。