在Sublime Text 3中,是否有任何方法可以在按时停止提交自动完成功能space?我"auto_complete_commit_on_tab": false
在设置中看到了该选项,但是没有什么可以阻止按下space键来提交所选条目。
也许我可以利用"auto_complete_selector"
或"auto_complete_triggers"
设置的某种组合?任何帮助将不胜感激。
更新
要重新创建,请打开一个新的缓冲区,并验证语法是否设置为“纯文本”。写
Blah
Test
Stuff
More Text
现在,按ctrl+ space(或热键设置为任何值)以打开“完成列表”。使用箭头键导航至选项之一,然后按space。这将自动选择突出显示的选项,就像您已按enter(或tab将其"auto_complete_commit_on_tab"
设置为true
)一样。
我想停止Sublime Text的假设,这space意味着我想选择突出显示的补全。
我之所以问这个问题,是因为我正在为Cucumber的Gherkin语言开发一个自动完成的软件包(Gherkin Auto-Complete Plus)。由于该语言使用人类可读的文本,因此空格上的提交实际上使它无用。
因为我想在键入时显示自动完成的结果(就像在IDE中看到的那样),所以我将在软件包中显示所述结果。该解决方案是骇人的,但可以。我从SublimeCodeIntel软件包中得到了这个想法。
可以在gherkin_event_listener.py中看到实现
首先,我_show_auto_complete
在GherkinEventListener
课堂上定义了一个方法。
def _show_auto_complete(self, view):
def _show_auto_complete():
view.run_command('auto_complete', {
'disable_auto_insert': True,
'api_completions_only': True,
'next_completion_if_showing': False,
'auto_complete_commit_on_tab': True,
})
# Have to set a timeout for some reason
sublime.set_timeout(_show_auto_complete, 0)
请注意,即使已设置超时,也必须设置0
。
然后在的on_modified
方法中GherkinEventListener
,我这样做:
view.settings().set('auto_complete', False)
pos = view_sel[0].end()
next_char = view.substr(sublime.Region(pos - 1, pos))
if next_char in (' ', '\n'):
view.run_command('hide_auto_complete')
return
view.run_command('hide_auto_complete')
self._show_auto_complete(view)
self._fill_completions(view, pos)
请注意,您必须在调用后填写补全_show_auto_complete
,否则将false
在填入时将其设置为,它们将不会显示。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句