VSCode Python智能感知

时间:2019-06-29 18:09:27

标签: visual-studio-code intellisense

尽管我在字典的结构中使用类型提示,但是VSCode的Microsoft的intellisense引擎似乎无法识别字典中的类。

例如,这不起作用:

class MyClass():
    def myf(self, methods):
        foo = "bar"
        return foo

mystring: str
mydict: Dict[str: MyClass] = {}

# mydict[mystring].      # <--- after typing the point ".", I expected hints from intellisense.
# mydict[mystring].myf(  # <--- after typing the open "(", I expected function hints
# mydict[mystring].myf() # <--- pressing f12 when cursor is on "myf", I expected to jump to the definition of the function

我的期望都没有得到满足。 难道我做错了什么? 这是Microsft的智能感知(语言服务器或Jedi)根本不支持的东西吗?

2 个答案:

答案 0 :(得分:0)

它不像我想的那样开箱即用

  1. 您需要VSCode's Mypy extension
  2. 根据该链接,对于“悬停”和“转到定义”功能,您需要使用Python3.8运行Mypy语言服务器

答案 1 :(得分:0)

am 获得所有指示的自动完成和F12行为。 (VSCode版本1.40,Python扩展版本2019.10.44104,MPLS版本0.4.114.0),而没有第三方扩展。

每个this评论供参考,

  

我们使用类型提示来帮助提供自动完成/ IntelliSense,而不是   针对类型提示的检测/错误检测。对于后者,您应该   安装mypy。

Microsoft Python语言服务器(MPLS)似乎支持Intellisense的类型提示。确实需要通过将python.jediEnabled设置为False来手动启用它。 (他们正在努力将"next few releases"中的默认LS切换到MPLS)。

也许您正面临着一些自MPLS已解决的问题?