1 2 | sublime.log_input(True) |
[Sublime Text 3]プラグインを作る時のTips
プラグインを作り始める時のチュートリアル的なブログはいくつもあるんだけど、使えるメソッドの説明だったり、特に.sublime-keymap/mousemapファイルに使える値についての解説が少ない。
インストールされたプラグインの中身と実際の動作を照らし合わせてある程度機能を推測することはできるんだけど、手間がかかる。
この記事では、機能が判明するまでに時間がかかったコマンドとか、手探りで色々試してわかったことを書いていく。
ビルトインコマンドが載ってる公式doc
プラグイン作る時に必要そうなページなのに、なぜかDocumentationのページからリンクされていないので、ここにメモしておく。
↓古いリンク。
press_commandとcommandの違い
マウスのクリック時に何かコマンドを実行するためには、.sublime-mousemapファイルを編集する必要がある。
この時、"press_command"と"command"があるが、これらの違いは、マウスのボタンを押した時に動作させるか離した時に動作させるかの違いである。
commandの引数
keymapとかmousemapで"args"や"press_args"に引数をいろいろ渡しているけど、どうやって指定するのか?
答えは簡単で、呼び出す関数の方で任意の引数を定義しておけば、その名前の引数を渡せる。
例えば、呼び出すメソッドの方で以下のように引数を設定しておくと、
1 2 3 | class Example(sublime_plugin.TextCommand): def run(self, edit, abcd=False, efgh=False): # definition |
keymap/mousemapの方では以下のように引数を渡せる。
1 2 3 4 5 | { "button": "button1", "count": 2, "modifiers": ["ctrl"], "press_command": "example", "press_args": {"abcd": true, "efgh": false}, } |
操作に応じてどのコマンドが動作したかを確認したい
自分の作った関数などがきちんと呼び出されているか知りたいというときに便利。
いちいちprint文とかを入れておく必要がない。
コンソールを開いて([View] > [Show Console])、以下のように打つ。
1 | sublime.log_commands(True) |
キーストロークも見たい場合は、以下のように打つ。
非表示にしたかったら、引数をFalseにして同じようなコマンドを打てば良い。
contextのkeyを自作する
preceding_textとかなんとか色々あるけど、どうも使いづらいと思った時は、keyを自作することもできる。
詳しくは以下のQiitaを参照のこと。
(2020/8/19 追記)
keyを自作することはできなさそう。
下記サイトが説明しているのは、contextに対するコールバックを好きに定義できる、という話だったっぽい。
この記事へのコメントはこちら