mirror of
https://github.com/powerline/powerline.git
synced 2025-07-22 13:25:13 +02:00
Add ext.*.components configuration support
Also fixes various problems in shell bindings. Closes #969
This commit is contained in:
parent
f51134deef
commit
b8049fab87
@ -115,9 +115,9 @@ Prompt command
|
|||||||
|
|
||||||
In addition to the above configuration options you can use
|
In addition to the above configuration options you can use
|
||||||
``$POWERLINE_COMMAND`` environment variable to tell shell or tmux to use
|
``$POWERLINE_COMMAND`` environment variable to tell shell or tmux to use
|
||||||
specific powerline implementation. This is mostly useful for putting powerline
|
specific powerline implementation and ``$POWERLINE_CONFIG`` to tell zsh or tmux
|
||||||
into different directory or replacing ``powerline`` script with
|
where ``powerline-config`` script is located. This is mostly useful for putting
|
||||||
``powerline-client`` for performance reasons.
|
powerline into different directory.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
@ -150,6 +150,6 @@ fish in order to support multiline prompt you should set
|
|||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
Most supported shells’ configuration scripts check for additional
|
Most supported shells’ configuration scripts check for ``$POWERLINE_CONFIG``
|
||||||
configuration variables being empty. But tcsh configuration script checks
|
and ``$POWERLINE_COMMAND`` configuration variables being empty. But tcsh
|
||||||
for variables being *defined*, not empty.
|
configuration script checks for variables being *defined*, not empty.
|
||||||
|
@ -123,6 +123,28 @@ Common configuration is a subdictionary that is a value of ``ext`` key in
|
|||||||
``module_attribute`` should point to a function that returns boolean value
|
``module_attribute`` should point to a function that returns boolean value
|
||||||
indicating that current buffer has (not) matched conditions.
|
indicating that current buffer has (not) matched conditions.
|
||||||
|
|
||||||
|
``components``
|
||||||
|
Determines which extension components should be enabled. This key is highly
|
||||||
|
extension-specific, here is the table of extensions and corresponding
|
||||||
|
components:
|
||||||
|
|
||||||
|
+---------+----------+-----------------------------------------------------+
|
||||||
|
|Extension|Component |Description |
|
||||||
|
+---------+----------+-----------------------------------------------------+
|
||||||
|
|vim |statusline|Makes Vim use powerline statusline. |
|
||||||
|
| +----------+-----------------------------------------------------+
|
||||||
|
| |tabline |Makes Vim use powerline tabline. |
|
||||||
|
+---------+----------+-----------------------------------------------------+
|
||||||
|
|shell |prompt |Makes shell display powerline prompt. |
|
||||||
|
| +----------+-----------------------------------------------------+
|
||||||
|
| |tmux |Makes shell report its current working directory |
|
||||||
|
| | |and screen width to tmux for tmux powerline |
|
||||||
|
| | |bindings. |
|
||||||
|
| | | |
|
||||||
|
+---------+----------+-----------------------------------------------------+
|
||||||
|
|
||||||
|
All components are enabled by default.
|
||||||
|
|
||||||
.. _config-colors:
|
.. _config-colors:
|
||||||
|
|
||||||
Color definitions
|
Color definitions
|
||||||
|
@ -394,7 +394,15 @@ class Powerline(object):
|
|||||||
self.ext_config = config['ext'][self.ext]
|
self.ext_config = config['ext'][self.ext]
|
||||||
if self.ext_config != self.prev_ext_config:
|
if self.ext_config != self.prev_ext_config:
|
||||||
ext_config_differs = True
|
ext_config_differs = True
|
||||||
if not self.prev_ext_config or self.ext_config.get('local_themes') != self.prev_ext_config.get('local_themes'):
|
if (
|
||||||
|
not self.prev_ext_config
|
||||||
|
or self.ext_config.get('components') != self.prev_ext_config.get('components')
|
||||||
|
):
|
||||||
|
self.setup_components(self.ext_config.get('components'))
|
||||||
|
if (
|
||||||
|
not self.prev_ext_config
|
||||||
|
or self.ext_config.get('local_themes') != self.prev_ext_config.get('local_themes')
|
||||||
|
):
|
||||||
self.renderer_options['local_themes'] = self.get_local_themes(self.ext_config.get('local_themes'))
|
self.renderer_options['local_themes'] = self.get_local_themes(self.ext_config.get('local_themes'))
|
||||||
load_colorscheme = (load_colorscheme
|
load_colorscheme = (load_colorscheme
|
||||||
or not self.prev_ext_config
|
or not self.prev_ext_config
|
||||||
@ -439,6 +447,16 @@ class Powerline(object):
|
|||||||
else:
|
else:
|
||||||
self.renderer = renderer
|
self.renderer = renderer
|
||||||
|
|
||||||
|
def setup_components(self, components):
|
||||||
|
'''Run component-specific setup
|
||||||
|
|
||||||
|
:param set components:
|
||||||
|
Set of the enabled componets or None.
|
||||||
|
|
||||||
|
Should be overridden by subclasses.
|
||||||
|
'''
|
||||||
|
pass
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_config_paths():
|
def get_config_paths():
|
||||||
'''Get configuration paths.
|
'''Get configuration paths.
|
||||||
|
@ -35,7 +35,7 @@ _powerline_init_tmux_support() {
|
|||||||
_powerline_tmux_set_columns
|
_powerline_tmux_set_columns
|
||||||
|
|
||||||
test "x$PROMPT_COMMAND" != "x${PROMPT_COMMAND/_powerline_tmux_set_pwd}" ||
|
test "x$PROMPT_COMMAND" != "x${PROMPT_COMMAND/_powerline_tmux_set_pwd}" ||
|
||||||
export PROMPT_COMMAND="${PROMPT_COMMAND}"$'\n_powerline_tmux_set_pwd'
|
PROMPT_COMMAND="${PROMPT_COMMAND}"$'\n_powerline_tmux_set_pwd'
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,21 +54,23 @@ _powerline_set_prompt() {
|
|||||||
_powerline_setup_prompt() {
|
_powerline_setup_prompt() {
|
||||||
VIRTUAL_ENV_DISABLE_PROMPT=1
|
VIRTUAL_ENV_DISABLE_PROMPT=1
|
||||||
if test -z "${POWERLINE_COMMAND}" ; then
|
if test -z "${POWERLINE_COMMAND}" ; then
|
||||||
if which powerline-config &>/dev/null ; then
|
POWERLINE_COMMAND="$("$POWERLINE_CONFIG" shell command)"
|
||||||
export POWERLINE_COMMAND="$(powerline-config shell command)"
|
|
||||||
else
|
|
||||||
# `$0` is set to `-bash` when using SSH so that won't work
|
|
||||||
local powerline_dir="$(dirname "$BASH_SOURCE")/../../.."
|
|
||||||
export POWERLINE_COMMAND="$($powerline_dir/scripts/powerline-config shell command)"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
test "x$PROMPT_COMMAND" != "x${PROMPT_COMMAND%_powerline_set_prompt*}" ||
|
test "x$PROMPT_COMMAND" != "x${PROMPT_COMMAND%_powerline_set_prompt*}" ||
|
||||||
export PROMPT_COMMAND=$'_powerline_set_prompt\n'"${PROMPT_COMMAND}"
|
PROMPT_COMMAND=$'_powerline_set_prompt\n'"${PROMPT_COMMAND}"
|
||||||
}
|
}
|
||||||
|
|
||||||
if test -z "$POWERLINE_NO_BASH_PROMPT$POWERLINE_NO_SHELL_PROMPT" ; then
|
if test -z "${POWERLINE_CONFIG}" ; then
|
||||||
|
if which powerline-config >/dev/null ; then
|
||||||
|
POWERLINE_CONFIG=powerline-config
|
||||||
|
else
|
||||||
|
POWERLINE_CONFIG="$(dirname "$BASH_SOURCE")/../../../scripts/powerline-config"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if "${POWERLINE_CONFIG}" shell --shell=bash uses prompt ; then
|
||||||
_powerline_setup_prompt
|
_powerline_setup_prompt
|
||||||
fi
|
fi
|
||||||
if test -z "$POWERLINE_NO_BASH_TMUX_SUPPORT$POWERLINE_NO_SHELL_TMUX_SUPPORT" ; then
|
if "${POWERLINE_CONFIG}" shell --shell=bash uses tmux ; then
|
||||||
_powerline_init_tmux_support
|
_powerline_init_tmux_support
|
||||||
fi
|
fi
|
||||||
|
@ -118,10 +118,14 @@ def source_tmux_files(pl, args):
|
|||||||
run_tmux_command('refresh-client')
|
run_tmux_command('refresh-client')
|
||||||
|
|
||||||
|
|
||||||
def create_powerline_logger(args):
|
def get_main_config(args):
|
||||||
find_config_files = generate_config_finder()
|
find_config_files = generate_config_finder()
|
||||||
config_loader = ConfigLoader(run_once=True)
|
config_loader = ConfigLoader(run_once=True)
|
||||||
config = load_config('config', find_config_files, config_loader)
|
return load_config('config', find_config_files, config_loader)
|
||||||
|
|
||||||
|
|
||||||
|
def create_powerline_logger(args):
|
||||||
|
config = get_main_config(args)
|
||||||
common_config = finish_common_config(config['common'])
|
common_config = finish_common_config(config['common'])
|
||||||
logger = create_logger(common_config)
|
logger = create_logger(common_config)
|
||||||
return PowerlineLogger(use_daemon_threads=True, logger=logger, ext='config')
|
return PowerlineLogger(use_daemon_threads=True, logger=logger, ext='config')
|
||||||
@ -166,3 +170,22 @@ def shell_command(pl, args):
|
|||||||
print(cmd)
|
print(cmd)
|
||||||
else:
|
else:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
def uses(pl, args):
|
||||||
|
component = args.component
|
||||||
|
if not component:
|
||||||
|
raise ValueError('Must specify component')
|
||||||
|
shell = args.shell
|
||||||
|
template = 'POWERLINE_NO_{shell}_{component}'
|
||||||
|
for sh in (shell, 'shell') if shell else ('shell'):
|
||||||
|
varname = template.format(shell=sh.upper(), component=component.upper())
|
||||||
|
if os.environ.get(varname):
|
||||||
|
print ('HERE')
|
||||||
|
sys.exit(1)
|
||||||
|
config = get_main_config(args)
|
||||||
|
if component in config.get('ext', {}).get('shell', {}).get('components', ('tmux', 'prompt')):
|
||||||
|
sys.exit(0)
|
||||||
|
else:
|
||||||
|
print ('THERE')
|
||||||
|
sys.exit(1)
|
||||||
|
@ -18,14 +18,17 @@ function powerline-setup
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if test -z "$POWERLINE_NO_FISH_PROMPT$POWERLINE_NO_SHELL_PROMPT"
|
if test -z "$POWERLINE_CONFIG"
|
||||||
|
if which powerline-config >/dev/null
|
||||||
|
set -g POWERLINE_CONFIG powerline-config
|
||||||
|
else
|
||||||
|
set -g POWERLINE_CONFIG (dirname (status -f))/../../../scripts/powerline-config
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if eval $POWERLINE_CONFIG shell --shell=fish uses prompt
|
||||||
if test -z "$POWERLINE_COMMAND"
|
if test -z "$POWERLINE_COMMAND"
|
||||||
if false ;and which powerline-config >/dev/null
|
set -g POWERLINE_COMMAND (eval $POWERLINE_CONFIG shell command)
|
||||||
set -g -x POWERLINE_COMMAND (powerline-config shell command)
|
|
||||||
else
|
|
||||||
set -l powerline_dir (dirname (status -f))/../../..
|
|
||||||
set -g -x POWERLINE_COMMAND (eval $powerline_dir/scripts/powerline-config shell command)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
function --on-variable POWERLINE_COMMAND _powerline_update
|
function --on-variable POWERLINE_COMMAND _powerline_update
|
||||||
set -l addargs "--last_exit_code=\$status"
|
set -l addargs "--last_exit_code=\$status"
|
||||||
@ -60,7 +63,7 @@ function powerline-setup
|
|||||||
end
|
end
|
||||||
_powerline_update
|
_powerline_update
|
||||||
end
|
end
|
||||||
if test -z "$POWERLINE_NO_FISH_TMUX_SUPPORT$POWERLINE_NO_SHELL_TMUX_SUPPORT"
|
if eval $POWERLINE_CONFIG shell --shell=fish uses tmux
|
||||||
if test -n "$TMUX"
|
if test -n "$TMUX"
|
||||||
if tmux refresh -S ^/dev/null
|
if tmux refresh -S ^/dev/null
|
||||||
function _powerline_tmux_setenv
|
function _powerline_tmux_setenv
|
||||||
@ -79,3 +82,4 @@ function powerline-setup
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
# vim: ft=fish
|
||||||
|
@ -98,12 +98,7 @@ _powerline_set_set_jobs() {
|
|||||||
|
|
||||||
_powerline_set_command() {
|
_powerline_set_command() {
|
||||||
if test -z "${POWERLINE_COMMAND}" ; then
|
if test -z "${POWERLINE_COMMAND}" ; then
|
||||||
if which powerline-config &>/dev/null ; then
|
POWERLINE_COMMAND="$("$POWERLINE_CONFIG" shell command)"
|
||||||
export POWERLINE_COMMAND="$(powerline-config shell command)"
|
|
||||||
else
|
|
||||||
local powerline_dir="$(dirname "$POWERLINE_SOURCED")/../../.."
|
|
||||||
export POWERLINE_COMMAND="$($powerline_dir/scripts/powerline-config shell command)"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -167,14 +162,22 @@ _powerline_init_tmux_support() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if test -z "${POWERLINE_CONFIG}" ; then
|
||||||
|
if which powerline-config >/dev/null ; then
|
||||||
|
POWERLINE_CONFIG=powerline-config
|
||||||
|
else
|
||||||
|
POWERLINE_CONFIG="$(dirname "$_POWERLINE_SOURCED")/../../../scripts/powerline-config"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Strips the leading `-`: it may be present when shell is a login shell
|
# Strips the leading `-`: it may be present when shell is a login shell
|
||||||
_POWERLINE_USED_SHELL=${0#-}
|
_POWERLINE_USED_SHELL=${0#-}
|
||||||
_POWERLINE_USED_SHELL=${_POWERLINE_USED_SHELL#/usr}
|
_POWERLINE_USED_SHELL=${_POWERLINE_USED_SHELL#/usr}
|
||||||
_POWERLINE_USED_SHELL=${_POWERLINE_USED_SHELL#/bin/}
|
_POWERLINE_USED_SHELL=${_POWERLINE_USED_SHELL#/bin/}
|
||||||
|
|
||||||
if test -z "$POWERLINE_NO_BB_PROMPT$POWERLINE_NO_SHELL_PROMPT" ; then
|
if "${POWERLINE_CONFIG}" shell uses tmux ; then
|
||||||
_powerline_setup_prompt $_POWERLINE_USED_SHELL
|
|
||||||
fi
|
|
||||||
if test -z "$POWERLINE_NO_BB_TMUX_SUPPORT$POWERLINE_NO_SHELL_TMUX_SUPPORT" ; then
|
|
||||||
_powerline_init_tmux_support $_POWERLINE_USED_SHELL
|
_powerline_init_tmux_support $_POWERLINE_USED_SHELL
|
||||||
fi
|
fi
|
||||||
|
if "${POWERLINE_CONFIG}" shell --shell=bash uses prompt ; then
|
||||||
|
_powerline_setup_prompt $_POWERLINE_USED_SHELL
|
||||||
|
fi
|
||||||
|
@ -5,17 +5,20 @@
|
|||||||
# Guess this relies on `$_` being set as to last argument to previous command
|
# Guess this relies on `$_` being set as to last argument to previous command
|
||||||
# which must be `.` or `source` in this case
|
# which must be `.` or `source` in this case
|
||||||
set POWERLINE_SOURCED=($_)
|
set POWERLINE_SOURCED=($_)
|
||||||
if ! ( $?POWERLINE_NO_TCSH_TMUX_SUPPORT || $?POWERLINE_NO_SHELL_TMUX_SUPPORT ) then
|
if ! $?POWERLINE_CONFIG then
|
||||||
|
if ( { which powerline-config > /dev/null } ) then
|
||||||
|
set POWERLINE_CONFIG="powerline-config"
|
||||||
|
else
|
||||||
|
set POWERLINE_CONFIG="$POWERLINE_SOURCED[2]:h:h:h:h/scripts/powerline-config"
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
if ( { $POWERLINE_CONFIG shell --shell=tcsh uses tmux } ) then
|
||||||
alias _powerline_tmux_set_pwd 'if ( $?TMUX && { tmux refresh -S >&/dev/null } ) tmux setenv -g TMUX_PWD_`tmux display -p "#D" | tr -d %` $PWD:q ; if ( $?TMUX ) tmux refresh -S >&/dev/null'
|
alias _powerline_tmux_set_pwd 'if ( $?TMUX && { tmux refresh -S >&/dev/null } ) tmux setenv -g TMUX_PWD_`tmux display -p "#D" | tr -d %` $PWD:q ; if ( $?TMUX ) tmux refresh -S >&/dev/null'
|
||||||
alias cwdcmd "`alias cwdcmd` ; _powerline_tmux_set_pwd"
|
alias cwdcmd "`alias cwdcmd` ; _powerline_tmux_set_pwd"
|
||||||
endif
|
endif
|
||||||
if ! ( $?POWERLINE_NO_TCSH_PROMPT || $?POWERLINE_NO_SHELL_PROMPT ) then
|
if ( { $POWERLINE_CONFIG shell --shell=tcsh uses prompt } ) then
|
||||||
if ! $?POWERLINE_COMMAND then
|
if ! $?POWERLINE_COMMAND then
|
||||||
if ( { which powerline-config > /dev/null } ) then
|
set POWERLINE_COMMAND="`$POWERLINE_CONFIG:q shell command`"
|
||||||
setenv POWERLINE_COMMAND "`powerline-config shell command`"
|
|
||||||
else
|
|
||||||
setenv POWERLINE_COMMAND "`$POWERLINE_SOURCED[2]:h:h:h:h:q/scripts/powerline-config shell command`"
|
|
||||||
endif
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if ( $?POWERLINE_NO_TCSH_ABOVE || $?POWERLINE_NO_SHELL_ABOVE ) then
|
if ( $?POWERLINE_NO_TCSH_ABOVE || $?POWERLINE_NO_SHELL_ABOVE ) then
|
||||||
|
@ -126,12 +126,7 @@ _powerline_setup_prompt() {
|
|||||||
zpython 'del _powerline_setup'
|
zpython 'del _powerline_setup'
|
||||||
else
|
else
|
||||||
if test -z "${POWERLINE_COMMAND}" ; then
|
if test -z "${POWERLINE_COMMAND}" ; then
|
||||||
if which powerline-config &>/dev/null ; then
|
POWERLINE_COMMAND=( "$($POWERLINE_CONFIG shell command)" )
|
||||||
export POWERLINE_COMMAND="$(powerline-config shell command)"
|
|
||||||
else
|
|
||||||
local powerline_dir="$POWERLINE_SOURCED:h:h:h:h"
|
|
||||||
export POWERLINE_COMMAND="$($powerline_dir/scripts/powerline-config shell command)"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local add_args='--last_exit_code=$?'
|
local add_args='--last_exit_code=$?'
|
||||||
@ -176,12 +171,21 @@ _powerline_add_widget() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if test -z "${POWERLINE_CONFIG}" ; then
|
||||||
|
if which powerline-config >/dev/null ; then
|
||||||
|
export POWERLINE_CONFIG=powerline-config
|
||||||
|
else
|
||||||
|
export POWERLINE_CONFIG="$_POWERLINE_SOURCED:h:h:h:h/scripts/powerline-config"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
setopt promptpercent
|
setopt promptpercent
|
||||||
setopt promptsubst
|
setopt promptsubst
|
||||||
if test -z "$POWERLINE_NO_ZSH_PROMPT$POWERLINE_NO_SHELL_PROMPT" ; then
|
|
||||||
|
if ${POWERLINE_CONFIG} shell --shell=zsh uses prompt ; then
|
||||||
_powerline_setup_prompt
|
_powerline_setup_prompt
|
||||||
_powerline_init_modes_support
|
_powerline_init_modes_support
|
||||||
fi
|
fi
|
||||||
if test -z "$POWERLINE_NO_ZSH_TMUX_SUPPORT$POWERLINE_NO_SHELL_TMUX_SUPPORT" ; then
|
if ${POWERLINE_CONFIG} shell --shell=zsh uses tmux ; then
|
||||||
_powerline_init_tmux_support
|
_powerline_init_tmux_support
|
||||||
fi
|
fi
|
||||||
|
@ -525,6 +525,7 @@ ext_spec = Spec(
|
|||||||
theme=ext_theme_spec(),
|
theme=ext_theme_spec(),
|
||||||
top_theme=top_theme_spec().optional(),
|
top_theme=top_theme_spec().optional(),
|
||||||
).copy
|
).copy
|
||||||
|
gen_components_spec = (lambda *components: Spec().list(Spec().type(unicode).oneof(set(components))))
|
||||||
main_spec = (Spec(
|
main_spec = (Spec(
|
||||||
common=Spec(
|
common=Spec(
|
||||||
default_top_theme=top_theme_spec().optional(),
|
default_top_theme=top_theme_spec().optional(),
|
||||||
@ -556,6 +557,7 @@ main_spec = (Spec(
|
|||||||
).context_message('Error while loading common configuration (key {key})'),
|
).context_message('Error while loading common configuration (key {key})'),
|
||||||
ext=Spec(
|
ext=Spec(
|
||||||
vim=ext_spec().update(
|
vim=ext_spec().update(
|
||||||
|
components=gen_components_spec('statusline', 'tabline').optional(),
|
||||||
local_themes=Spec(
|
local_themes=Spec(
|
||||||
__tabline__=ext_theme_spec(),
|
__tabline__=ext_theme_spec(),
|
||||||
).unknown_spec(
|
).unknown_spec(
|
||||||
@ -570,6 +572,7 @@ main_spec = (Spec(
|
|||||||
),
|
),
|
||||||
).optional(),
|
).optional(),
|
||||||
shell=ext_spec().update(
|
shell=ext_spec().update(
|
||||||
|
components=gen_components_spec('tmux', 'prompt').optional(),
|
||||||
local_themes=Spec(
|
local_themes=Spec(
|
||||||
continuation=ext_theme_spec(),
|
continuation=ext_theme_spec(),
|
||||||
select=ext_theme_spec(),
|
select=ext_theme_spec(),
|
||||||
|
@ -27,6 +27,7 @@ class VimPowerline(Powerline):
|
|||||||
def __init__(self, pyeval='PowerlinePyeval', **kwargs):
|
def __init__(self, pyeval='PowerlinePyeval', **kwargs):
|
||||||
super(VimPowerline, self).__init__('vim', **kwargs)
|
super(VimPowerline, self).__init__('vim', **kwargs)
|
||||||
self.last_window_id = 1
|
self.last_window_id = 1
|
||||||
|
self.pyeval = pyeval
|
||||||
self.window_statusline = '%!' + pyeval + '(\'powerline.statusline({0})\')'
|
self.window_statusline = '%!' + pyeval + '(\'powerline.statusline({0})\')'
|
||||||
|
|
||||||
def add_local_theme(self, key, config):
|
def add_local_theme(self, key, config):
|
||||||
@ -159,6 +160,18 @@ class VimPowerline(Powerline):
|
|||||||
vim.command('return ' + json.dumps(eval(vim.eval('a:e'),
|
vim.command('return ' + json.dumps(eval(vim.eval('a:e'),
|
||||||
__main__.__dict__)))
|
__main__.__dict__)))
|
||||||
|
|
||||||
|
def setup_components(self, components):
|
||||||
|
if components is None:
|
||||||
|
components = ('statusline', 'tabline')
|
||||||
|
if 'statusline' in components:
|
||||||
|
# Is immediately changed after new_window function is run. Good for
|
||||||
|
# global value.
|
||||||
|
vim.command('set statusline=%!{pyeval}(\'powerline.new_window()\')'.format(
|
||||||
|
pyeval=self.pyeval))
|
||||||
|
if 'tabline' in components:
|
||||||
|
vim.command('set tabline=%!{pyeval}(\'powerline.tabline()\')'.format(
|
||||||
|
pyeval=self.pyeval))
|
||||||
|
|
||||||
|
|
||||||
pycmd = None
|
pycmd = None
|
||||||
|
|
||||||
@ -192,6 +205,7 @@ def setup(pyeval=None, pycmd=None, can_replace_pyeval=True):
|
|||||||
pyeval = 'PowerlinePyeval'
|
pyeval = 'PowerlinePyeval'
|
||||||
|
|
||||||
powerline = VimPowerline(pyeval)
|
powerline = VimPowerline(pyeval)
|
||||||
|
powerline.update_renderer()
|
||||||
__main__.powerline = powerline
|
__main__.powerline = powerline
|
||||||
|
|
||||||
# Cannot have this in one line due to weird newline handling (in :execute
|
# Cannot have this in one line due to weird newline handling (in :execute
|
||||||
@ -202,8 +216,3 @@ def setup(pyeval=None, pycmd=None, can_replace_pyeval=True):
|
|||||||
vim.command(' autocmd! ColorScheme * :{pycmd} powerline.reset_highlight()'.format(pycmd=pycmd))
|
vim.command(' autocmd! ColorScheme * :{pycmd} powerline.reset_highlight()'.format(pycmd=pycmd))
|
||||||
vim.command(' autocmd! VimLeavePre * :{pycmd} powerline.shutdown()'.format(pycmd=pycmd))
|
vim.command(' autocmd! VimLeavePre * :{pycmd} powerline.shutdown()'.format(pycmd=pycmd))
|
||||||
vim.command('augroup END')
|
vim.command('augroup END')
|
||||||
|
|
||||||
# Is immediately changed after new_window function is run. Good for global
|
|
||||||
# value.
|
|
||||||
vim.command('set statusline=%!{pyeval}(\'powerline.new_window()\')'.format(pyeval=pyeval))
|
|
||||||
vim.command('set tabline=%!{pyeval}(\'powerline.tabline()\')'.format(pyeval=pyeval))
|
|
||||||
|
@ -20,6 +20,7 @@ TMUX_ACTIONS = {
|
|||||||
|
|
||||||
SHELL_ACTIONS = {
|
SHELL_ACTIONS = {
|
||||||
'command': config.shell_command,
|
'command': config.shell_command,
|
||||||
|
'uses': config.uses,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -40,7 +41,19 @@ if __name__ == '__main__':
|
|||||||
'function',
|
'function',
|
||||||
choices=tuple(SHELL_ACTIONS.values()),
|
choices=tuple(SHELL_ACTIONS.values()),
|
||||||
type=(lambda v: SHELL_ACTIONS.get(v)),
|
type=(lambda v: SHELL_ACTIONS.get(v)),
|
||||||
help='If action is "command" then preferred powerline command is output',
|
metavar='action',
|
||||||
|
help='If action is "command" then preferred powerline command is output, if it is “uses” then powerline-config script will exit with 1 if specified component is disabled and 0 otherwise.',
|
||||||
|
)
|
||||||
|
shell_parser.add_argument(
|
||||||
|
'component',
|
||||||
|
nargs='?',
|
||||||
|
choices=('tmux', 'prompt'),
|
||||||
|
metavar='component',
|
||||||
|
)
|
||||||
|
shell_parser.add_argument(
|
||||||
|
'-s', '--shell',
|
||||||
|
nargs='?',
|
||||||
|
help='Shell for which query is run',
|
||||||
)
|
)
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user