Пример #1
0
    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()
Пример #2
0
    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()
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
    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()
Пример #6
0
    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()
Пример #7
0
    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='******')
Пример #8
0
    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='******'
        )