Files
ChocolateyPackages/EthanBrown.SublimeText2.UtilPackages/tools/PackageCache/RecentActiveFiles/RecentActiveFiles.py
2013-04-04 08:54:47 -04:00

41 lines
1.4 KiB
Python

import sublime_plugin
import os
class RecentActiveFilesEventListener(sublime_plugin.EventListener):
def on_activated(self, view):
if view.file_name():
view.window().run_command("recent_active_files", { "file_name": view.file_name() })
class RecentActiveFilesCommand(sublime_plugin.WindowCommand):
def __init__(self, window):
sublime_plugin.WindowCommand.__init__(self, window)
self.recent_active_files = []
def unshift(self, file_name):
if file_name in self.recent_active_files:
self.recent_active_files.remove(file_name)
self.recent_active_files.insert(0, file_name)
def path_form_project(self, path):
for folder in self.window.folders():
path = path.replace(folder + '/', '', 1)
return path
def run(self, file_name=None):
if file_name:
self.unshift(file_name)
else:
if self.window.active_view() is not None:
active_file = self.window.active_view().file_name()
files = filter(lambda f: f != active_file, self.recent_active_files)
else:
files = self.recent_active_files
items = [[os.path.basename(f), self.path_form_project(f)] for f in files]
def on_done(index):
if index >= 0:
self.window.open_file(files[index])
self.window.show_quick_panel(items, on_done)