2

Python プラグインを使用する SublimeText 2。見つけた既存のプラグインを強化しようとしています。

基本的に、これは、、、機能を備えたタイマー プラグインでありstart、この Sublimetext API 呼び出しを使用してステータス バーに時間を表示します...stoppause

sublime.status_message(TIMER)

私がやりたいことはStatus Bar、タイマーが実際に開始され実行されていることを示すために何かを表示することです。このようなもの...

sublime.status_message('Timer: on')

問題は、ステータスバーのメッセージが数秒間だけ表示されてから閉じられることです。

それで、ステータスバーに印刷して長期間保持する方法に関する情報を探していますか?

4

3 に答える 3

1

以下のコードを参照してください。指定した時間経過後にステータスをクリアするクラスで、 set_status() 関数を呼び出すだけで利用できます。

import time, threading

class StatusDisplay:
  def __init__(self):
    self.timeout = 3
    self.timer = None

  def set_status(self, view, msg, overwrite):
    self.cancel_timer()
    self.view = view
    if overwrite:
        self.view.set_status("mytag", msg+'\n')
    else:
        self.view.set_status("mytag", msg)
    self.start_timer()

  def cancel_timer(self):
    if self.timer != None:
        self.timer.cancel()

  def start_timer(self):
    self.timer = threading.Timer(self.timeout, self.clear)
    self.timer.start()

  def clear(self):
    print('clear message')
    self.view.erase_status("mytag")
于 2015-12-21T04:24:51.450 に答える