def queue(self, view, preemptive=True, timeout=0.5): if not RendererManager.has_renderer_enabled_in_view(view): return view_id = view.id() now = time.time() with self.mutex: if view_id in self.delayed_views: if now - self.last_signaled <= 0.01: # Too fast, cancel this operation return if preemptive: # Cancel pending actions with self.cond: if view_id in self.delayed_views: del self.delayed_views[view_id] self.cond.notify() RendererManager.queue_view(view, only_exists=True) self.last_signaled = now else: with self.cond: filename = view.file_name() if view_id not in self.delayed_views: self.delayed_views[view_id] = self.Entry( view, filename, timeout) else: entry = self.delayed_views[view_id] entry.view = view entry.filename = filename entry.timeout = timeout self.cond.notify()
def queue(self, view, preemptive=True, timeout=0.5): if not RendererManager.has_renderer_enabled_in_view(view): return view_id = view.id() now = time.time() with self.mutex: if view_id in self.delayed_views: if now - self.last_signaled <= 0.01: # Too fast, cancel this operation return if preemptive: # Cancel pending actions with self.cond: if view_id in self.delayed_views: del self.delayed_views[view_id] self.cond.notify() RendererManager.queue_view(view, only_exists=True) self.last_signaled = now else: with self.cond: filename = view.file_name() if view_id not in self.delayed_views: self.delayed_views[view_id] = self.Entry(view, filename, timeout) else: entry = self.delayed_views[view_id] entry.view = view entry.filename = filename entry.timeout = timeout self.cond.notify()
def render_text_by_buffer_id(buffer_id): valid_view = None for window in sublime.windows(): if valid_view is not None: break for view in window.views(): if view.buffer_id() == buffer_id: valid_view = view break if valid_view is None: return None RendererManager.queue_view(valid_view, immediate=True) return RenderedMarkupCache.instance().get_entry(buffer_id)
def queue_to_renderer_manager(self, view, filename): view_id = view.id() valid_view = False for window in sublime.windows(): if valid_view: break for v in window.views(): if v.id() == view_id: # Got view valid_view = True break if not valid_view or view.is_loading() or view.file_name() != filename: return if RendererManager.has_renderer_enabled_in_view(view): RendererManager.queue_view(view, only_exists=True) self.last_signaled = time.time()
def run(self, edit, immediate=True): buffer_id = self.view.buffer_id() # Is opened in a tab? opened = False for view in self.view.window().views(): if view.buffer_id == buffer_id: opened = True break if not opened: RendererManager.queue_view(self.view, immediate=True) url = 'http://localhost:%d/view/%d' % (Setting.instance().server_port, buffer_id) # Open with the default browser log.info('Launching web browser for %s', url) launching_web_browser_for_url( url, success_msg_default='Preview launched in default web browser', success_msg_user='******')
def run(self, edit, immediate=True): buffer_id = self.view.buffer_id() # Is opened in a tab? opened = False for view in self.view.window().views(): if view.buffer_id == buffer_id: opened = True break if not opened: RendererManager.queue_view(self.view, immediate=True) url = 'http://localhost:%d/view/%d' % (Setting.instance().server_port, buffer_id) # Open with the default browser log.info('Launching web browser for %s', url) launching_web_browser_for_url( url, success_msg_default='Preview launched in default web browser', success_msg_user='******' )