2016-09-07 1 views
0

ここに崇高なテキストを3人宛てに送信します。コマンドまたはマクロ(プラグインなし)でSublime Text 3 StatusBarメッセージを変更するにはどうすればよいですか?

私はフランス語と英語の間を絶えず入れ替えるので、スペルチェックを有効にして特定の辞書を読み込むためのマクロをいくつか書いたので、コマンドの2つの連続したコマンドをブラウズするのではなく、パレット)。

マクロが正常に動作します(french-spellcheck.sublime-macroenglish-spellcheck.sublime-macro)。 しかし、私はステータスバーにメッセージを表示したいと思います。例えば、 "フランス語に切り替えました"または "英語に切り替えました"(しばらくの間、5秒と言いましょう)。

私は、私が知っていると私はしばらくの間しようとしたが、どうやらコマンド(それはマクロの末尾に追加することができます)でこれを行う方法はありませんどこでも見 set_status internal ST3's Python API commandWindowからパッケージ)など...プラグインでのみ使用可能です

は、いずれかのプラグインとマクロとない /コマンドでSublimeText3ステータスバーにメッセージを表示する方法のアイデアを持っていますか?ありがとう!

答えて

3

これを行うためのAPIメソッドを呼び出すコマンドはありません(少なくともドキュメント化されたものではありません)。何らかのプラグインなしでこれを行う方法はありません。

しかし、あなたが望むことを行うためには、以下のようなファイルが、例えば、次のようなファイルに保存する必要があります。 Packages/Userフォルダの(マクロと並んで)set_status.pyこれにより、set_statusコマンドが提供され、マクロファイルのコメントアウトされた部分に記載されているように、テキストを表示するためにvalueという名前の値が使用されます。

import sublime, sublime_plugin 

class SetStatusCommand(sublime_plugin.TextCommand): 
    def run(self, edit, value="set_status: use arg 'value' to set text"): 
     self.view.window().status_message (value) 

これは、マクロファイルコメントに記載されているAPIとは異なるAPIを使用します。 status_messageは、ステータスバーにメッセージを表示したり、数秒間待ったりしてメッセージを削除する作業を行います。これにより、コマンドを簡単に実装できます。

さらに制御(期間を変更する)したい場合は、これを修正してマクロファイルが既に記述されているAPIコマンド、すなわちview.set_status()sublime.set_timeout()を呼び出す必要があります。

+0

はい、それは私が考えたものです。 プラグインなしで私が望んだことはできません。 私はすぐに私が欲しかったことをするプラグインの最初のドラフトを書きました(フランス語から英語、そしてフランス語から英語への切り替え辞書)...できるだけ早く終了します。 まだpackagecontrol.ioではなく、既にGitHub:[Naereen/SublimeText3_SwitchDictionary /](https://github.com/Naereen/SublimeText3_SwitchDictionary/)にあります。 –

関連する問題