Sublime Anaconda 包滥用 auto_complete(删除特定触发器)

Sublime Anaconda package abusive auto_complete (remove specific trigger)

我正在为 Sublime Text 使用 Anaconda 包。一切都很完美,我喜欢它。事实上,它的效果有点太好了,尤其是 auto_complete.

The auto_complete being zealous

每次我在需要一个语句(def、if、for、class、...)之后写一个冒号 (:) 时,它都会向我显示一个我无法避免的自动完成列表。每一次,我都必须写一个空白并擦除它才能使用 Enter 键并转到下一行。

如果我在不需要的地方写了一个冒号,它不会打开auto_complete列表。 如果我关闭 auto_complete,它会阻止它发生,但它并不理想,因为我通常喜欢 auto_complete。

我知道如何为 auto_complete 添加触发器。有没有办法删除特定的触发器(这里是冒号 (:))?

以防其他人遇到同样的问题。 我在这里找到了答案:https://github.com/DamnWidget/anaconda/issues/891.

正如 MattDMo 所说,这是一个错误。建议的临时解决方法是来自 ZitCode 的 post(参见上面的 link 来源):

I have found a solution (it's working, but I think it's should be a temporary solution 'cause it just disabling completion when ':' is typed) In file listeners/completion.py (can be found by click on 'Preferences/Browse Packages' in Sublime Text, then open Anaconda folder) add lines

if int(sublime.version()) > 4000:
    if view.substr(view.sel()[0].begin() - 1) == ':':
        return 

under 86 line view = active_view() in function _complete. The file should look like this:

def _complete(self, data: Dict[str, Any]) -> None:

    view = active_view()
    if int(sublime.version()) > 4000:
        if view.substr(view.sel()[0].begin() - 1) == ':':
            return
    proposals = data['completions'] if data['success'] else []