def put(self, view, preemptive=True, timeout=0.5):
        if not RendererManager.any_available_renderer_for_view(view):
            return

        view_id = view.id()
        now = time.time()

        with self.mutex:
            if view_id in self.view_entry_mapping:
                # Too fast, cancel this operation
                if now - self.last_signaled <= 0.01:
                    return

        if preemptive:
            # Cancel pending actions
            with self.cond:
                if view_id in self.view_entry_mapping:
                    del self.view_entry_mapping[view_id]
                    self.cond.notify()
            RendererManager.enqueue_view(view, only_exists=True)
            self.last_signaled = now
        else:
            with self.cond:
                filename = view.file_name()
                if view_id not in self.view_entry_mapping:
                    self.view_entry_mapping[view_id] = self.Entry(view, timeout)
                else:
                    entry = self.view_entry_mapping[view_id]
                    entry.view = view
                    entry.filename = filename
                    entry.timeout = timeout
                self.cond.notify()
Пример #2
0
    def put(self, view, preemptive=True, timeout=0.5):
        if not RendererManager.any_available_renderer_for_view(view):
            return

        view_id = view.id()
        now = time.time()

        with self.mutex:
            if view_id in self.view_entry_mapping:
                # Too fast, cancel this operation
                if now - self.last_signaled <= 0.01:
                    return

        if preemptive:
            # Cancel pending actions
            with self.cond:
                if view_id in self.view_entry_mapping:
                    del self.view_entry_mapping[view_id]
                    self.cond.notify()
            RendererManager.enqueue_view(view, only_exists=True)
            self.last_signaled = now
        else:
            with self.cond:
                filename = view.file_name()
                if view_id not in self.view_entry_mapping:
                    self.view_entry_mapping[view_id] = self.Entry(
                        view, timeout)
                else:
                    entry = self.view_entry_mapping[view_id]
                    entry.view = view
                    entry.filename = filename
                    entry.timeout = timeout
                self.cond.notify()
 def on_query_context(self, view, key, operator, operand, match_all):
     # `omp_is_enabled` for backwards compatibility
     if key == 'omnimarkup_is_enabled' or key == 'omp_is_enabled':
         return RendererManager.any_available_renderer_for_view(view)
     return None
 def enqueue_view_to_renderer_manager(self, view, filename):
     if view.is_loading() or view.file_name() != filename:
         return
     if RendererManager.any_available_renderer_for_view(view):
         RendererManager.enqueue_view(view, only_exists=True)
         self.last_signaled = time.time()
 def is_visible(self):
     return RendererManager.any_available_renderer_for_view(self.view)
Пример #6
0
 def on_query_context(self, view, key, operator, operand, match_all):
     # `omp_is_enabled` for backwards compatibility
     if key == 'omnimarkup_is_enabled' or key == 'omp_is_enabled':
         return RendererManager.any_available_renderer_for_view(view)
     return None
Пример #7
0
 def enqueue_view_to_renderer_manager(self, view, filename):
     if view.is_loading() or view.file_name() != filename:
         return
     if RendererManager.any_available_renderer_for_view(view):
         RendererManager.enqueue_view(view, only_exists=True)
         self.last_signaled = time.time()
Пример #8
0
 def is_enabled(self):
     return RendererManager.any_available_renderer_for_view(self.view)