Use escape_hl_* variables for prompts deriving from ShellRenderer
This is faster then super() calls and also more convenient. Fixes #142 just as well Conflicts: powerline/renderers/bash_prompt.py powerline/renderers/ipython.py powerline/renderers/shell.py powerline/renderers/zsh_prompt.py
This commit is contained in:
parent
a6b3bc93ab
commit
4202bd2ee6
|
@ -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):
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue