diff --git a/powerline/renderers/bash_prompt.py b/powerline/renderers/bash_prompt.py index 82e87dce..875527b8 100644 --- a/powerline/renderers/bash_prompt.py +++ b/powerline/renderers/bash_prompt.py @@ -5,13 +5,8 @@ from powerline.renderers.shell import ShellRenderer class BashPromptRenderer(ShellRenderer): '''Powerline bash prompt segment renderer.''' - def hlstyle(self, fg=None, bg=None, attr=None): - '''Highlight a segment. - - Returns the default ShellRenderer escape sequence with \[...\] wrapped - around it (required in bash prompts). - ''' - return '\[' + super(BashPromptRenderer, self).hlstyle(fg, bg, attr) + '\]' + escape_hl_start = '\[' + escape_hl_end = '\]' @staticmethod def escape(string): diff --git a/powerline/renderers/ipython.py b/powerline/renderers/ipython.py index 8c6e5a54..f00573af 100644 --- a/powerline/renderers/ipython.py +++ b/powerline/renderers/ipython.py @@ -5,5 +5,5 @@ from powerline.renderers.shell import ShellRenderer class IpythonRenderer(ShellRenderer): '''Powerline ipython segment renderer.''' - def hlstyle(self, *args, **kwargs): - return '\x01' + super(IpythonRenderer, self).hlstyle(*args, **kwargs) + '\x02' + escape_hl_start = '\x01' + escape_hl_end = '\x02' diff --git a/powerline/renderers/shell.py b/powerline/renderers/shell.py index deaf2169..89b5b666 100644 --- a/powerline/renderers/shell.py +++ b/powerline/renderers/shell.py @@ -5,6 +5,9 @@ from powerline.renderer import Renderer class ShellRenderer(Renderer): '''Powerline shell segment renderer.''' + escape_hl_start = '' + escape_hl_end = '' + def hlstyle(self, fg=None, bg=None, attr=None): '''Highlight a segment. @@ -35,7 +38,7 @@ class ShellRenderer(Renderer): else: if attr & Renderer.ATTR_BOLD: ansi += [1] - return '[{0}m'.format(';'.join(str(attr) for attr in ansi)) + return self.escape_hl_start + '[{0}m'.format(';'.join(str(attr) for attr in ansi)) + self.escape_hl_end @staticmethod def escape(string): diff --git a/powerline/renderers/zsh_prompt.py b/powerline/renderers/zsh_prompt.py index 08e0977b..52c85dc5 100644 --- a/powerline/renderers/zsh_prompt.py +++ b/powerline/renderers/zsh_prompt.py @@ -5,13 +5,8 @@ from powerline.renderers.shell import ShellRenderer class ZshPromptRenderer(ShellRenderer): '''Powerline zsh prompt segment renderer.''' - def hlstyle(self, fg=None, bg=None, attr=None): - '''Highlight a segment. - - Returns the default ShellRenderer escape sequence with %{...%} wrapped - around it (required in zsh prompts). - ''' - return '%{' + super(ZshPromptRenderer, self).hlstyle(None, fg, bg, attr) + '%}' + escape_hl_start = '%{' + escape_hl_end = '%}' @staticmethod def escape(string):