0

我最近刚刚用 Sublime Text 2 换掉了 Espresso,因为有大量可用的软件包。我主要使用该软件进行Web开发并安装了很多软件包。

用于完成的所有 Autocomplete、AndyPHP、PHP Completions KIT 和 SublimeCodeIntel。

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

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

只是一个例子来说明问题。

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

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

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

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

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

4

1 回答 1

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)在第三行写下你的函数定义(去掉你好,${1:this} is a ${2:snippet}。)

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

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

3)取消注释第六行,因此如果您键入 sayOutLoud(用以下内容替换第六行)并按tab ,它将起作用:

<tabTrigger>sayOutLoud</tabTrigger>

4) 以sayOutLoud.sublime-snippet这个名字保存文件

现在,如果您打开任何 php 文件并键入 sayOutLoud,您将看到一个自动完成功能,如果您按Tab ,您将看到该功能已添加到您的文件中,就是这样。

于 2014-06-30T10:25:19.330 回答