2016-10-19 7 views
0

h2>span .myclassのようなhtmlタグの自動補完とタグ展開のためのemmetのような私のカスタムプラグインを作成したいと思って<div class="myclass"></div>になるはずです。崇高なテキスト3 emmetのようなカスタムオートコンプリート用のプラグイン開発?

私は始めましたが、ユーザタイプのイベントを追跡するためのドキュメントや、htmlファイルにのみ適用されるプラグインのスコープを定義する方法は見つかりませんでした。

私は私のクラス内のprint文を使用しようとしたとき、それは構文エラーをスロー

def run(self, edit): 
    print "i am in run" 
    self.view.insert(edit, 0, "Hello, World!") 

どのように私はprint文なしで私のプラグインのコードをデバッグや崇高なプラグインの任意の代替がありますができますか?

答えて

1

通常、サブライムテキストでユーザーが入力したものを追跡するプラグインをプログラミングするのではなく、代わりにコマンドをキーバインドにバインドします。次に、キーバインドのコンテキストで定義された特定の条件下で、ユーザーがその特定のキーを押すと、コマンドは実行して、選択キャレットの近くのテキストを表示します。

サブライムテキストプラグインは、Python 3で開発されました。ここで、printはステートメントではなく機能です。したがって、デバッグメッセージをSTコンソールに出力するには、print('I am in "run"')を使用する必要があります。しかし、場合にのみ、ユーザーはタブを押したときに作動する

{ "keys": ["tab"], "command": "this_is_an_example", 
    "context": 
    [ 
     { "key": "selector", "operator": "equal", "operand": "text.html", "match_all": true }, 
     { "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true }, 
    ] 
}, 

import sublime 
import sublime_plugin 


class ThisIsAnExampleCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
     print('I am in the "run" method of "ThisIsAnExampleCommand"') 
     self.view.insert(edit, 0, "Hello, World!") 

は、あなたのようなキーバインドを定義できます。これは、プラグインのコードだった場合例えば

、すべての選択が空であり、編集中の現在のファイルの構文はHTMLです。

あなたのプラグインは、self.view.sel()を見て選択/キャレットの位置を得ることができます。

関連する問題