我在输入(
时遇到触发自动填充的问题。其他角色工作得很好。以下是我的syntex特定设置文件中的代码:
"auto_complete_triggers": [
{"selector": "source.r - string - comment", "characters": "("},
{"selector": "source.r - string - comment", "characters": ","}
]
现在,
会触发自动填充,但(
却没有。当我将(
更改为其他字符时,它也有效。为什么(
不起作用?
答案 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语法的一部分。