Sublime 플러그인을 어떻게 쓰는지 (2)

3440 단어
Sublime 플러그인을 어떻게 쓰는지 (2)
생방송으로 여러분과 함께 Sublime 플러그인을 쓰세요.
어떤 플러그인을 쓸까요?
평소 PlainTasks로 하루의 일을 세분화하지만 알림 기능이 없다.타이머 종류의 플러그인을 찾고 싶은데,github에서 찾은 것은 모두 쓰기에 좋지 않습니다.그러니까 자기가 하나 써.
생방송 때문에 플러그인을 아직 다 못 썼을 거예요.https://github.com/FloydaGitHub/WorkTime https://coding.net/u/Floyda/p/WorkTime/git
참고 자료
API
관리 시간이 필요하므로 "심장 박동 라인"을 만듭니다.
import sublime, sublime_plugin


class TimeManager():
    def __init__(self):
        self.thread_flag = False
        self.total_time = 0

    #     
    def tick(self):
        #     
        if self.thread_flag is False:
            return

        self.total_time += 1
        sublime.status_message(str(self.total_time)) 
        sublime.set_timeout_async(self.tick, 1000) # 1   ,       ,        .

    def start(self):
        self.thread_flag = True
        sublime.set_timeout_async(self.tick, 0) #       ,       .


time_manager = TimeManager()


class ExampleCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        time_manager.start()


플러그인, F1 을 다시 시작하고 왼쪽 아래에 있는 상태 표시줄을 보면 타이머 하나가 완성됩니다:)
토마토 타임 타이머 만들기.
import sublime, sublime_plugin


class TimeManager():
    def __init__(self):
        self.thread_flag = False
        self.total_time = 0

    def tick(self):
        if self.thread_flag is False:
            return

        # if self.total_time >= 60 * 25: #      25  .
        if self.total_time >= 3:
            self.stop()
            sublime.message_dialog("Have a rest!") #        .
            return

        self.total_time += 1
        sublime.status_message(str(self.total_time)) 
        sublime.set_timeout_async(self.tick, 1000) 

    def start(self):
        self.thread_flag = True
        sublime.set_timeout_async(self.tick, 0) 

    def stop(self):
        self.total_time = 0
        self.thread_flag = False

time_manager = TimeManager()


class ExampleCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        time_manager.start()

상태 표시줄에 시간 진행률 표시
import sublime, sublime_plugin


class TimeManager():
    def __init__(self):
        self.thread_flag = False
        self.total_time = 0
        # self.finish_time = 60 * 25
        self.finish_time = 5

    def tick(self):
        if self.thread_flag is False:
            return

        self.show_status()

        if self.total_time >= self.finish_time:
            self.stop()
            sublime.message_dialog("Have a rest!")
            return

        self.total_time += 1
        # sublime.status_message(str(self.total_time)) 
        sublime.set_timeout_async(self.tick, 1000) 

    def start(self):
        self.thread_flag = True
        sublime.set_timeout_async(self.tick, 0) 

    def stop(self):
        self.total_time = 0
        self.thread_flag = False
        sublime.status_message('')

    def show_status(self):
        progress = int(self.total_time / self.finish_time * 100)
        msg = "|" + \
            progress * "-" + \
            "o" + \
            (100 - progress) * "-" + \
            "|"

        sublime.status_message(msg)

time_manager = TimeManager()


class ExampleCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        time_manager.start()

기본적으로 토마토 시간의 플러그인 하나가 완성되었다.가장 좋은 것은 스스로 한 번 써서 쓰면서 디버깅하는 것이다.
-- Floyda --

좋은 웹페이지 즐겨찾기