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):
|
class BashPromptRenderer(ShellRenderer):
|
||||||
'''Powerline bash prompt segment renderer.'''
|
'''Powerline bash prompt segment renderer.'''
|
||||||
def hlstyle(self, fg=None, bg=None, attr=None):
|
escape_hl_start = '\['
|
||||||
'''Highlight a segment.
|
escape_hl_end = '\]'
|
||||||
|
|
||||||
Returns the default ShellRenderer escape sequence with \[...\] wrapped
|
|
||||||
around it (required in bash prompts).
|
|
||||||
'''
|
|
||||||
return '\[' + super(BashPromptRenderer, self).hlstyle(fg, bg, attr) + '\]'
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def escape(string):
|
def escape(string):
|
||||||
|
|
|
@ -5,5 +5,5 @@ from powerline.renderers.shell import ShellRenderer
|
||||||
|
|
||||||
class IpythonRenderer(ShellRenderer):
|
class IpythonRenderer(ShellRenderer):
|
||||||
'''Powerline ipython segment renderer.'''
|
'''Powerline ipython segment renderer.'''
|
||||||
def hlstyle(self, *args, **kwargs):
|
escape_hl_start = '\x01'
|
||||||
return '\x01' + super(IpythonRenderer, self).hlstyle(*args, **kwargs) + '\x02'
|
escape_hl_end = '\x02'
|
||||||
|
|
|
@ -5,6 +5,9 @@ from powerline.renderer import Renderer
|
||||||
|
|
||||||
class ShellRenderer(Renderer):
|
class ShellRenderer(Renderer):
|
||||||
'''Powerline shell segment renderer.'''
|
'''Powerline shell segment renderer.'''
|
||||||
|
escape_hl_start = ''
|
||||||
|
escape_hl_end = ''
|
||||||
|
|
||||||
def hlstyle(self, fg=None, bg=None, attr=None):
|
def hlstyle(self, fg=None, bg=None, attr=None):
|
||||||
'''Highlight a segment.
|
'''Highlight a segment.
|
||||||
|
|
||||||
|
@ -35,7 +38,7 @@ class ShellRenderer(Renderer):
|
||||||
else:
|
else:
|
||||||
if attr & Renderer.ATTR_BOLD:
|
if attr & Renderer.ATTR_BOLD:
|
||||||
ansi += [1]
|
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
|
@staticmethod
|
||||||
def escape(string):
|
def escape(string):
|
||||||
|
|
|
@ -5,13 +5,8 @@ from powerline.renderers.shell import ShellRenderer
|
||||||
|
|
||||||
class ZshPromptRenderer(ShellRenderer):
|
class ZshPromptRenderer(ShellRenderer):
|
||||||
'''Powerline zsh prompt segment renderer.'''
|
'''Powerline zsh prompt segment renderer.'''
|
||||||
def hlstyle(self, fg=None, bg=None, attr=None):
|
escape_hl_start = '%{'
|
||||||
'''Highlight a segment.
|
escape_hl_end = '%}'
|
||||||
|
|
||||||
Returns the default ShellRenderer escape sequence with %{...%} wrapped
|
|
||||||
around it (required in zsh prompts).
|
|
||||||
'''
|
|
||||||
return '%{' + super(ZshPromptRenderer, self).hlstyle(None, fg, bg, attr) + '%}'
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def escape(string):
|
def escape(string):
|
||||||
|
|
Loading…
Reference in New Issue