Exemple #1
0
def destroy_output_panels(window: sublime.Window) -> None:
    for field in filter(lambda a: not a.startswith('__'),
                        PanelName.__dict__.keys()):
        panel_name = getattr(PanelName, field)
        panel = window.find_output_panel(panel_name)
        if panel and panel.is_valid():
            panel.settings().set("syntax",
                                 "Packages/Text/Plain text.tmLanguage")
            window.destroy_output_panel(panel_name)
Exemple #2
0
def update_diagnostics_panel(window: sublime.Window):
    assert window, "missing window!"

    if not window.is_valid():
        debug('ignoring update to closed window')
        return

    base_dir = get_project_path(window)

    diagnostics_by_file = get_window_diagnostics(window)
    if diagnostics_by_file is not None:

        active_panel = window.active_panel()
        is_active_panel = (active_panel == "output.diagnostics")

        if diagnostics_by_file:
            panel = ensure_diagnostics_panel(window)
            assert panel, "must have a panel now!"
            panel.settings().set("result_base_dir", base_dir)

            auto_open_panel = False
            to_render = []
            for file_path, source_diagnostics in diagnostics_by_file.items():
                try:
                    relative_file_path = os.path.relpath(
                        file_path, base_dir) if base_dir else file_path
                except ValueError:
                    relative_file_path = file_path
                if source_diagnostics:
                    formatted = format_diagnostics(relative_file_path,
                                                   source_diagnostics)
                    if formatted:
                        to_render.append(formatted)
                        if not auto_open_panel:
                            auto_open_panel = has_relevant_diagnostics(
                                source_diagnostics)

            panel.set_read_only(False)
            panel.run_command("lsp_update_panel",
                              {"characters": "\n".join(to_render)})
            panel.set_read_only(True)

            if settings.auto_show_diagnostics_panel and not active_panel:
                if auto_open_panel:
                    window.run_command("show_panel",
                                       {"panel": "output.diagnostics"})

        else:
            panel = window.find_output_panel("diagnostics")
            if panel:
                panel.run_command("lsp_clear_panel")
                if is_active_panel:
                    window.run_command("hide_panel",
                                       {"panel": "output.diagnostics"})
Exemple #3
0
    def __init__(
        self,
        window: sublime.Window,
        name: str,
        *,
        force_writes: bool = False,
        follow_cursor: bool = False
    ):
        view = window.find_output_panel(name)
        if view is None:
            raise ValueError('Output panel "%s" does not exist.' % name)

        ViewStream.__init__(self, view, force_writes=force_writes, follow_cursor=follow_cursor)
        Panel.__init__(self, window, "output." + name)

        self.name = name
Exemple #4
0
def ensure_diagnostics_panel(window: sublime.Window):
    return window.find_output_panel("diagnostics") or create_diagnostics_panel(
        window)
Exemple #5
0
def ensure_references_panel(window: sublime.Window):
    return window.find_output_panel("references") or create_references_panel(window)
def ensure_references_panel(window: sublime.Window):
    return window.find_output_panel("references") or create_references_panel(window)
def ensure_diagnostics_panel(window: sublime.Window):
    return window.find_output_panel("diagnostics") or create_diagnostics_panel(window)
Exemple #8
0
def ensure_panel(window: sublime.Window, name: str, result_file_regex: str,
                 result_line_regex: str,
                 syntax: str) -> Optional[sublime.View]:
    return window.find_output_panel(name) or create_panel(
        window, name, result_file_regex, result_line_regex, syntax)
Exemple #9
0
def ensure_terminus_repl(window: sublime.Window):
    if not window.find_output_panel(JULIA_REPL_NAME):
        start_terminus_repl(window, False)
        return False
    return True