在PHP数组中按Tab键时SublimeText3中的自动完成错误

时间:2013-12-16 17:08:12

标签: php autocomplete sublimetext3 sublime-text-plugin

我正在使用SublimeText3。

当我在array PHP中工作时,按Tab提出的自动完成功能完全让我烦恼。

我只是想添加一些表格,但每次按Tab时,sublimetext都会建议我:

array(<list>)
Create a PHP Array.

如果只是再次按Tab,他会对该提议有效并写入文件<list>

我已经安装了这个插件:

{
    "installed_packages":
    [
        "Alignment",
        "ApacheConf.tmLanguage",
        "BracketHighlighter",
        "Comment-Snippets",
        "Comments Aware Enter",
        "eZ Publish Syntax",
        "HTML5",
        "jQuery",
        "LESS",
        "SublimeCodeIntel",
        "sublimelint",
        "Symfony2 Snippets",
        "Theme - Soda",
        "Twig"
    ]
}

如果有人知道如何禁用这个不好的主张或纠正它?

感谢。

2 个答案:

答案 0 :(得分:29)

更新01-29-14

在Github上,有人找到了比我之前发布的解决方案更好的解决方案。 New Solution

打开your_packages_folder / SublimeCodeIntel / codeintel2 / tree_php.py并将数组添加到第140行附近的工具提示忽略数组。

php_ignored_calltip_expressions = ("if", "elseif",
                                   "for", "foreach",
                                   "while",
                                   "switch",
                                   "array"
                                   )

旧解决方案

我找到了temporary solution on github

注释或删除第100行&amp; SublimeCodeIntel / codeintel2 / tree_php.py

中的101
"array": "array(<list>)\n"
"Create a PHP array.",

然后删除OS X上用户目录中的〜/ .codeintel文件夹,不知道此缓存在Windows上的位置。

答案 1 :(得分:1)

刚开始使用Sublime Text 3,这个问题一直困扰着我几个星期。即使使用“auto_complete_commit_on_tab”:false和“tab_completion”:false,它仍然存在。我最终查看了Sublime论坛并找到this thread,这表示您将此代码添加到您的Key Bindings中:

{ "keys": ["tab"], "command": "insert", "args": {"characters": "\t"}, "context":
    [
        { "key": "auto_complete_visible" },
        { "key": "setting.tab_completion", "operator": "equal", "operand": false }
    ]
}

它实质上会重新映射您的Tab键以强制使用标签,而不是让代码段自动完成功能正常工作。