Sublime Text 2 - 自动完成问题

时间:2014-04-28 17:38:45

标签: sublimetext2 sublimecodeintel

由于包含大量可用包,我最近刚刚使用Sublime Text 2换出Espresso。我主要使用该软件进行网页开发,并安装了不少软件包。

所有自动完成,AndyPHP,PHP完成KIT和SublimeCodeIntel完成。

安装所有这些,而不仅仅是SublimeCodeIntel的原因是因为SublimeCodeIntel没有像我预期的那样工作。

这些(一起或不一起)都不会完成项目文件中定义的类,函数或变量名称。

只是举例说明问题。

如果我在我的一个文件中定义一个简单的函数,

function sayOutLoud($x) { echo $x; }

当我开始输入sayOu时...我希望Sublime建议函数名称,如果我选择sayOutLoud,我想知道该函数需要什么参数(当然我知道,但你理解)。这些软件包中的任何一个都不应该这样做吗?

更新:重新启动后,奇怪的是一些完成工作开始了。但它没有给我参数列表。

如果我禁用SublimeCodeIntel(我被告知最好的包之一),没有任何改变,换句话说,它在活动时不会添加任何内容。

1 个答案:

答案 0 :(得分:2)

如果您经常使用此功能,我建议您通过创建自己的代码段来实现此目的,这里有一个您可以使用的简单代码段(您不需要任何sublime插件) 1)转到工具>新摘要您将获得的页面的默认内容    像这样:

<snippet>
    <content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
    <!-- <tabTrigger>hello</tabTrigger> -->
    <!-- Optional: Set a scope to limit where the snippet will trigger -->
    <!-- <scope>source.python</scope> -->
</snippet>

2)在第三行写下你的函数定义(删除Hello,$ {1:this}是$ {2:snippet}。)

在我们的例子中,函数定义将是这样的:

function sayOutLoud(${1:\$x}) { ${2:echo} ${3:\$x};${4:} }

3)取消注释第六行,这样当你输入sayOutLoud(用以下内容替换第六行)并按标签时它会起作用:

<tabTrigger>sayOutLoud</tabTrigger>

4)以名称 sayOutLoud.sublime-snippet

保存文件

现在如果您打开任何php文件并输入sayOutLoud,您将看到自动完成 如果你按标签,你会看到添加到你文件的功能,那就是IT。