选择自动完成列表中的项目后移动光标

时间:2017-06-26 14:52:10

标签: sublimetext sublime-text-plugin package-control

我为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文档中找到我想要的内容。

1 个答案:

答案 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]