43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import sublime, sublime_plugin
|
|
from sidebar.SideBarGit import SideBarGit
|
|
from sidebar.SideBarSelection import SideBarSelection
|
|
import threading
|
|
|
|
class Object():
|
|
pass
|
|
|
|
s = sublime.load_settings('SideBarGit.sublime-settings')
|
|
|
|
class StatusBarBranch(sublime_plugin.EventListener):
|
|
|
|
def on_load(self, v):
|
|
if s.get('statusbar_branch') and v.file_name():
|
|
StatusBarBranchGet(v.file_name(), v).start()
|
|
|
|
def on_activated(self, v):
|
|
if s.get('statusbar_branch') and v.file_name():
|
|
StatusBarBranchGet(v.file_name(), v).start()
|
|
|
|
class StatusBarBranchGet(threading.Thread):
|
|
|
|
def __init__(self, file_name, v):
|
|
threading.Thread.__init__(self)
|
|
self.file_name = file_name
|
|
self.v = v
|
|
|
|
def run(self):
|
|
for repo in SideBarGit().getSelectedRepos(SideBarSelection([self.file_name]).getSelectedItems()):
|
|
object = Object()
|
|
object.item = repo.repository
|
|
object.command = ['git', 'branch']
|
|
object.silent = True
|
|
SideBarGit().run(object)
|
|
sublime.set_timeout(lambda:self.on_done(SideBarGit.last_stdout.decode('utf-8')), 0)
|
|
return
|
|
|
|
def on_done(self, branches):
|
|
branches = branches.split('\n')
|
|
for branch in branches:
|
|
if branch.startswith("*"):
|
|
self.v.set_status('statusbar_sidebargit_branch', branch)
|
|
return |