【问题标题】:Sublime Text 2 - Auto complete issuesSublime Text 2 - 自动完成问题
【发布时间】:2014-04-28 17:38:45
【问题描述】:

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

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

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: sublimetext2 sublimecodeintel


    【解决方案1】:

    如果你经常使用这个函数,我建议你通过创建你自己的 sn-p 来做到这一点,这里有一个简单的 sn-p,你可以使用(你不需要任何 sublime 插件) 1) 转到 tools > new sn-p 您将获得的页面的默认内容是 像这样:

    <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:sn-p}。)

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

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

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

    <tabTrigger>sayOutLoud</tabTrigger>
    

    4) 以 sayOutLoud.sublime-sn-p

    的名称保存文件

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

    【讨论】:

      猜你喜欢
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 2013-08-29
      • 1970-01-01
      • 2015-05-29
      • 2014-05-19
      • 1970-01-01
      相关资源
      最近更新 更多