9

私が達成しようとしていることを理解するために:遅延テキストを別のビューで印刷する...

この崇高なテキスト 3 プラグインを適切に実行しようとしています。実行メソッドのパラメータで渡された編集を使用して、クラスの複数のメソッドを呼び出したいと考えています。

# sample code, nothing real
class MyCommandClass(sublime_plugin.TextCommand):
    myEdit = None
    def run(self, edit):
        self.myEdit = edit
        # stuff
        self.myMethod()

    def myMethod(self):
        # use self.myEdit ...

そして、後で別の方法で使用しようとしましたが、プラグインを実行すると、次のエラーが発生します。
ValueError: Edit objects may not be used after the TextCommand's run method has returned

私の理解では、編集オブジェクトのすべての使用は、実行コマンドが返される前でなければなりません。で遊んでいるset_timeoutので、そうではないかもしれません... では、どうすればよいでしょうか?

前もって感謝します。

4

1 に答える 1

12

解決策が見つかりました。引数を別のビューに渡し、編集を使用します。

class MainCommand(sublime_plugin.WindowCommand):
    def run(self):
        newFile = self.window.new_file()
        newFile.run_command("second",{ "arg" : "this is an argument"});

class SecondCommand(sublime_plugin.TextCommand):
    def run(self, edit, argument):
        # do stuff with argument
于 2013-12-27T22:21:15.283 に答える