def __init__(self, window: sublime.Window, name: str) -> None: self.header_text = "" self.name = name self.window = window self.view = window.create_output_panel(name) self.show() # we need enough space to place our phantoms in increasing regions (1, 1), (1, 2)... etc # otherwise they will get reordered when one of them gets redrawn # we use new lines so we don't have extra space on the rhs self.view.run_command('insert', { 'characters': _phantom_text }) settings = self.view.settings() settings.set("margin", 0) settings.set('line_padding_top', 0) settings.set('gutter', False) settings.set('word_wrap', False) settings.set('line_spacing', 0) settings.set('context_menu', 'Widget Debug.sublime-menu') self.view.sel().clear() self.hack_to_get_view_to_not_freak_out_when_you_click_on_the_edge() OutputPhantomsPanel.panels[self.window.id()] = self
def create_output_panel(window: sublime.Window, name: str) -> Optional[sublime.View]: panel = window.create_output_panel(name) settings = panel.settings() for key, value in OUTPUT_PANEL_SETTINGS.items(): settings.set(key, value) return panel
def __init__(self, window: sublime.Window, name: str) -> None: self.header_text = "" self.name = name self.window = window self.view = window.create_output_panel(name) self.show() # we need enough space to place our phantoms in increasing regions (1, 1), (1, 2)... etc # otherwise they will get reordered when one of them gets redrawn # we use new lines so we don't have extra space on the rhs self.view.run_command('debug_output_phantoms_panel_setup') settings = self.view.settings() # cover up the addition space we added during the insert # the additional space is so we can have an input bar at the top of the debugger # removes some additional padding on the top of the view settings.set("margin", 0) settings.set('line_padding_top', PADDING_TOP_COMMAND_HIDE) settings.set('line_padding_bottom', -3) settings.set('gutter', False) settings.set('word_wrap', False) settings.set('line_spacing', 0) settings.set('context_menu', 'Widget Debug.sublime-menu') self.view.sel().clear() self.hack_to_get_view_to_not_freak_out_when_you_click_on_the_edge() self.input_handler = None #type: Optional[PanelInputHandler] OutputPhantomsPanel.panels[self.view.id()] = self self.promptPhantom = ui.Phantom(CommandPrompComponent(""), self.view, sublime.Region(1, 1))
def create_references_panel(window: sublime.Window): panel = create_output_panel(window, "references") panel.settings().set("result_file_regex", r"^\s+\S\s+(\S.+)\s+(\d+):?(\d+)$") panel.assign_syntax("Packages/" + PLUGIN_NAME + "/Syntaxes/References.sublime-syntax") # Call create_output_panel a second time after assigning the above # settings, so that it'll be picked up as a result buffer # see: Packages/Default/exec.py#L228-L230 panel = window.create_output_panel("references") return panel
def create_references_panel(window: sublime.Window): panel = create_output_panel(window, "references") panel.settings().set("result_file_regex", r"^\s+\S\s+(\S.+)\s+(\d+):?(\d+)$") panel.assign_syntax("Packages/" + PLUGIN_NAME + "/Syntaxes/References.sublime-syntax") # Call create_output_panel a second time after assigning the above # settings, so that it'll be picked up as a result buffer # see: Packages/Default/exec.py#L228-L230 panel = window.create_output_panel("references") return panel
def show_error_result(window: sublime.Window, message: str) -> None: """show error panel""" panel = window.create_output_panel(ERROR_RESPONSE_PANEL_NAME) panel.set_read_only(False) panel.run_command( "append", {"characters": message}, ) window.run_command("show_panel", {"panel": f"output.{ERROR_RESPONSE_PANEL_NAME}"})
def create_panel(window: sublime.Window, name: str, result_file_regex: str, result_line_regex: str, syntax: str) -> 'Optional[sublime.View]': panel = create_output_panel(window, name) if not panel: return None panel.settings().set("result_file_regex", result_file_regex) panel.settings().set("result_line_regex", result_line_regex) panel.assign_syntax(syntax) # Call create_output_panel a second time after assigning the above # settings, so that it'll be picked up as a result buffer # see: Packages/Default/exec.py#L228-L230 panel = window.create_output_panel(name) return panel
def create( cls, window: sublime.Window, name: str, *, force_writes: bool = False, follow_cursor: bool = False, unlisted: bool = False, **kwargs: Any ) -> 'OutputPanel': """Create a new output panel with the given `name` in the given `window`. If `kwargs` are given, they will be interpreted as for :func:`~sublime_lib.view_utils.new_view`. """ validate_view_options(kwargs) window.destroy_output_panel(name) view = window.create_output_panel(name, unlisted) set_view_options(view, **kwargs) return cls(window, name, force_writes=force_writes, follow_cursor=follow_cursor)
def create_output_panel(window: sublime.Window, name: str) -> sublime.View: panel = window.create_output_panel(name) settings = panel.settings() for key, value in OUTPUT_PANEL_SETTINGS.items(): settings.set(key, value) return panel
def __init__(self, window: sublime.Window): self.window = window self.panel = window.create_output_panel('Debugger: Log') self.panel.assign_syntax('Packages/Debugger/Commands/LogPanel.sublime-syntax') settings = self.panel.settings() settings.set('word_wrap', False)