键入`(``使用`auto_complete_triggers`时,如何触发自动完成

时间:2014-01-14 13:16:47

标签: sublimetext2 sublimetext sublimetext3

我在输入(时遇到触发自动填充的问题。其他角色工作得很好。以下是我的syntex特定设置文件中的代码:

"auto_complete_triggers": [  
    {"selector": "source.r - string - comment", "characters": "("},
    {"selector": "source.r - string - comment", "characters": ","}
]

现在,会触发自动填充,但(却没有。当我将(更改为其他字符时,它也有效。为什么(不起作用?

2 个答案:

答案 0 :(得分:1)

问题似乎与(以某种方式被代码段覆盖以进入结束)的事实有关。所以我想出了一个基于密钥绑定的解决方案,它将代码段和自动完成链接在一起。

首先,命令链命令:

# http://stackoverflow.com/a/10863489/2503795
import sublime_plugin

class ChainedActionsCommand(sublime_plugin.TextCommand):
    def run(self, edit, actions, args):
        for i, action in enumerate(actions):
            self.view.run_command(action, args[i])

其次,键绑定首先插入片段,然后启动auto_complete

{
    "keys": ["("],
    "command": "chained_actions",
    "args": {
        "actions":["insert_snippet","auto_complete"],
        "args":[{"contents": "(${0:$SELECTION})"},{}]
    },
    "context": [
        {"key": "selector", "operator": "equal", "operand": "source.r"}
    ]
}

答案 1 :(得分:0)

您可能想尝试使用(字符转义\

"auto_complete_triggers": [  
    {"selector": "source.r - string - comment", "characters": "\("},
    {"selector": "source.r - string - comment", "characters": ","}
]

这可能允许解释器“看到”(而不认为它是JSON语法的一部分。

祝你好运!