40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import sublime
 | |
| import sublime_plugin
 | |
| from related import *
 | |
| 
 | |
| 
 | |
| class RelatedFilesCommand(sublime_plugin.WindowCommand):
 | |
|     def run(self, index=None):
 | |
|         active_file_path = self.__active_file_path()
 | |
| 
 | |
|         if active_file_path:
 | |
|             # Builds a list of related files for the current open file.
 | |
|             self.__related = Related(active_file_path, self.__patterns(), sublime.active_window().folders())
 | |
| 
 | |
|             self.window.show_quick_panel(self.__related.descriptions(), self.__open_file)
 | |
|         else:
 | |
|             self.__status_msg("No open files")
 | |
| 
 | |
|     # Opens the file in path.
 | |
|     def __open_file(self, index):
 | |
|         if index >= 0:
 | |
|             self.window.open_file(self.__related.files()[index])
 | |
|         else:
 | |
|             self.__status_msg("No related files found")
 | |
| 
 | |
|     # Retrieves the patterns from settings.
 | |
|     def __patterns(self):
 | |
|         return sublime.load_settings("RelatedFiles.sublime-settings").get('patterns')
 | |
| 
 | |
|     # Returns the activelly open file path from sublime.
 | |
|     def __active_file_path(self):
 | |
|         if self.window.active_view():
 | |
|             file_path = self.window.active_view().file_name()
 | |
| 
 | |
|             if file_path and len(file_path) > 0:
 | |
|                 return file_path
 | |
| 
 | |
|     # Displays a status message on sublime.
 | |
|     def __status_msg(self, message):
 | |
|         sublime.status_message(message)
 |