def start_new_backend(self, backend_name): with Common.status_message_process( 'Changing backend to \'{0}\''.format(backend_name), priority=2): BackendManager.BackendManager().change_current_backend( backend_name) cabal_project_status(self.window.active_view(), BackendManager.BackendManager())
def do_shutdown(self): backend_mgr = BackendManager.BackendManager() with Common.status_message_process('Shutting down {0} backend'.format(backend_mgr.current_backend_name), priority=1): try: self.busy = True backend_mgr.shutdown_backend() finally: self.busy = False cabal_project_status(self.window.active_view(), BackendManager.BackendManager())
def do_startup(self): backend_mgr = BackendManager.BackendManager() with Common.status_message_process('Starting up {0} backend'.format(backend_mgr.current_backend_name), priority=1): try: self.busy = True backend_mgr.set_state(BackendManager.BackendManager.INITIAL) backend_mgr.initialize() finally: self.busy = False cabal_project_status(self.window.active_view(), BackendManager.BackendManager())
def run(self): backend_mgr = BackendManager.BackendManager() # Rescan for backends to ensure we have the most up-to-date list... backend_mgr.possible_backends = backend_mgr.filter_possible( Settings.PLUGIN.backends) if len(backend_mgr.possible_backends) > 0: print('plugin \'backends\' {0}'.format( [name for name in Settings.PLUGIN.backends])) print('Possible/usable \'backends\': {0}'.format( [name for name in backend_mgr.possible_backends])) if len(backend_mgr.possible_backends) > 1: self.backend_names = [ name for name in backend_mgr.possible_backends ] self.backend_names.sort() self.window.show_quick_panel(self.backend_names, self.change_backend) elif len(backend_mgr.possible_backends) == 1: backend_name = list(backend_mgr.possible_backends)[0] sublime.message_dialog( 'Only one backend, \'{0}\', available -- starting it.'. format(backend_name)) self.start_new_backend(backend_name) else: backend_mgr.no_backends_available()
def do_restart(self): self.restart_ev.set() try: SublimeHaskellStopBackend(self.window).do_shutdown() SublimeHaskellStartBackend(self.window).do_startup() finally: self.restart_ev.clear() cabal_project_status(self.window.active_view(), BackendManager.BackendManager())
def __init__(self): super().__init__() self.autocompleter = Autocomplete.AutoCompleter() self.backend_mgr = BackendManager.BackendManager() self.type_cache = Types.SourceHaskellTypeCache() # I get two calls of `on_post_save` after saving file # To prevent extra calls to check/infer etc., we store here last updated time # view => (view.update_count(), time.clock()) self.update_cache = {}
def __init__(self): super().__init__() self.backend_mgr = BackendManager.BackendManager() self.type_cache = Types.SourceHaskellTypeCache() self.autocompleter = Autocomplete.AutoCompleter() # Fly mode state: self.fly_view = LockedObject.LockedObject({'view': None, 'mtime': None}) self.fly_event = threading.Event() self.fly_agent = threading.Thread(target='fly_check')
def plugin_loaded(): '''All of the good stuff that happens when SublimeHaskell is loaded. ''' cache_path = Common.sublime_haskell_cache_path() backend_mgr = BackendManager.BackendManager() if not os.path.exists(cache_path): os.makedirs(cache_path) # Probably already loaded... doesn't hurt to reload. Refresh the backend manager's list of backends, while we're at it. Settings.load_settings() backend_mgr.get_backends() # Register change detection: Settings.PLUGIN.add_change_callback('add_to_PATH', ProcHelper.ProcHelper.update_environment) Settings.PLUGIN.add_change_callback('add_standard_dirs', ProcHelper.ProcHelper.update_environment) Settings.PLUGIN.add_change_callback('backends', backend_mgr.updated_settings)
def plugin_unloaded(): '''Finalization actions when SublimeHaskell is unloaded. ''' BackendManager.BackendManager().shutdown_backend()
def __init__(self, view): super().__init__(view) self.candidates = None self.backend = Backend.NullHaskellBackend(BackendManager.BackendManager())
def plugin_unloaded(): '''Finalization actions when SublimeHaskell is unloaded. ''' ParseOutput.MARKER_MANAGER.clear_error_marks() BackendManager.BackendManager().shutdown_backend()
def __init__(self, view): super().__init__(view) self.autocompleter = Autocomplete.AutoCompleter() self.backend_mgr = BackendManager.BackendManager() self.type_cache = Types.SourceHaskellTypeCache()
def is_enabled(self): return not (self.restart_ev.is_set() or BackendManager.BackendManager().is_inactive_state())
def is_enabled(self): return not (self.busy or BackendManager.BackendManager().is_inactive_state())