我为SublimeText实现了一个Autocompletion插件
import sublime_plugin
import sublime
tensorflow_functions = ["tf.AggregationMethod()","tf.Assert()","tf.AttrValue()","tf.AttrValue.ListValue()", etc...]
class TensorflowAutocomplete(sublime_plugin.EventListener):
def __init__(self):
self.tf_completions = [("%s \tTensorflow" % s, s) for s in tensorflow_functions]
def on_query_completions(self, view, prefix, locations):
if view.match_selector(locations[0], 'source.python'):
return self.tf_completions
else:
return[]
当用户在自动完成列表中选择一个项目时,有什么方法可以将光标移动到括号中吗? 我没有尝试任何操作,因为我无法在API文档中找到我想要的内容。
答案 0 :(得分:2)
您可以在完成时使用代码段,因此您将tf.Assert()
更改为tf.Assert($1)
(使用标签跳出)或tf.Assert($0)
如果所有parens都为空,您只需将代码更改为:
self.tf_completions = [("%s \tTensorflow" % s, s.replace("()", "($1)") for s in tensorflow_functions]