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:
ZyX 2013-02-09 22:23:15 +04:00 committed by Kim Silkebækken
parent a6b3bc93ab
commit 4202bd2ee6
4 changed files with 10 additions and 17 deletions

View File

@ -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):

View File

@ -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'

View File

@ -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):

View File

@ -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):