蟒蛇的自动完成功能 崇高文本不起作用



我已经在Sublime Text Build 4126中安装了Anaconda插件,但它无法运行其自动完成功能。我不知道为什么。蟒蛇的棉绒确实有效。

蟒蛇版本:3.10

你能帮忙检测和解决问题吗?

注意:

自从我写了这个答案以来,Anaconda 已经更新以解决问题。如果您还没有,只需将您的 Anaconda 安装更新到 v2.3.0 或更高版本即可。


Anaconda插件附带了其他几个捆绑的Python库,包括jedi(用于自动完成),autopep8用于代码格式化等。这些库是Anaconda插件本身的一部分,不会作为包控制依赖项安装,因此除非插件的作者 DamnWidget 手动更新它们,否则它们的版本不会更改。然而,正如他们在最近的评论中所解释的那样,他们已经有一段时间没有使用Python或Sublime Text了,并且正在维护该插件仅仅是因为它在社区中很受欢迎,并且没有其他人站出来维护它。

其中一个包含的库是parso,它使用特定于正在使用的Python版本的语法文件解析Python源代码。这个插件恰好是导致您的问题的错误所在。第一个问题是parso的包含版本,上次更新于 2020 年 5 月,没有适用于 Python 3.10(或更高版本)的语法文件。(3.9 的语法文件也与 3.8 的语法文件完全相同,但我们也会修复它。第二个问题是,即使包含 3.10 语法文件,parso源(因此Anaconda)也无法读取它,因此您不会自动完成。

我们需要遵循几个步骤来解决这两个问题。

  1. 通过单击打开您的崇高文本Packages文件夹Preferences → Browse Packages….根据您的操作系统以及您是否安装了 ST4 全新版还是从 ST3 升级版,此文件夹将位于不同的位置:

    • Linux:~/.config/sublime-text-3/Packages~/.config/sublime-text/Packages
    • macOS/OS X:~/Library/Application Support/Sublime Text 3/Packages~/Library/Application Support/Sublime Text/Packages
    • Windows 常规安装:C:UsersYourUserNameAppDataRoamingSublime Text 3PackagesC:UsersYourUserNameAppDataRoamingSublime TextPackages
    • Windows Portable 安装:InstallationFolderSublime Text 3DataPackagesInstallationFolderSublime TextDataPackages
  2. 打开命令提示符、Powershell 或终端,然后导航到临时目录,例如 Windows 上的C:Temp或 macOS 或 Linux 上的/tmp

  3. 输入:

    git clone https://github.com/davidhalter/parso.git
    

    或者,如果您使用单独的源代码管理 GUI 程序,请使用它将该存储库克隆到某个地方,例如我提到的某个临时目录。

  4. 输入刚刚创建的parso目录,然后进入parso/python目录。您将看到在文件中有grammarXX[X].txt文件,其中XX[X]36开始,一直到312。在操作系统的文件资源管理器应用程序中打开此文件夹,以便更轻松地复制和粘贴。选择所有语法文件并复制它们。

  5. 回到我们之前打开的Packages窗口,导航到Anaconda/anaconda_lib/parso/python.将复制的语法文件粘贴到此处。您将覆盖其中一些,但这没关系 - 我们想要这样做。这将解决您遇到的第一个问题。

  6. 向上导航一个级别,以便您的文件资源管理器位置现在Packages/Anaconda/anaconda_lib/parso。在Sublime中打开名为utils.py的文件,然后向下导航到第123行。它应该看起来像这样:

    match = re.match(r'(d+)(?:.(d)(?:.d+)?)?$', version)
    

    我们将只添加一个字符。将原始行替换为以下内容(确保它缩进了 4 个空格):

    match = re.match(r'(d+)(?:.(d+)(?:.d+)?)?$', version)
    #                                   ^ added this 
    

    保存文件,您就完成了!重新启动Sublime Text,Anaconda自动完成功能现在应该适用于3.10及更高版本!

请记住,下次升级 Anaconda 时,您的更改将被覆盖,但希望下次发生这种情况时,新版本将修复这些错误。

相关内容

  • 没有找到相关文章

最新更新