This commit refactors `TestVim` test class in test_configuration so that
1. `test_environ_update` does not leave state (value of `powerline_config_paths`
global Vim variable) behind other tests can use.
2. `test_local_themes` does not rely on state left from `test_environ_update`,
instead using new facility for providing needed value of
`Powerline.get_config_paths` call. This facility will be used later in BAR
tests.
Ref #1256
Added functionality:
- Added fbterm (framebuffer terminal emulator) support.
- Added theme with unicode-7.0 symbols. (Note: most software is not ready for it
yet, including all Python-2\* versions.)
- Added support for PyPy3.
- Compiler is now called with CFLAGS from environment in setup.py if present.
- Added support for pyuv-1.\*.
- Added a way to write error log to Vim global variable.
- `powerline` script now supports overrides from `$POWERLINE_CONFIG_OVERRIDES`,
`$POWERLINE_THEME_OVERRIDES` environment variables, so does `powerline-config`
script.
- `powerline` and `powerline-config` scripts now support taking paths from
`$POWERLINE_CONFIG_PATHS`.
- `powerline-lint` is now able to report dictionaries which were merged in to
form marked dictionary and what were the previous values of overridden values.
- Added support for Byron Rakitzis’ rc shell reimplementation.
- Added support for querying battery status on cygwin platform.
Fixes:
- Vim: made all mode strings have equal width.
- Vim: fixed intermediate Vim-7.3\* support.
- Fixed typo in battery segment implementation that made it not possible to fall
back to next implementation if UPower is not available, but dbus is.
- Fixed libzpython overrides and modes support.
- Fixed Python-3\* support in zpython bindings.
- Fixed checking of themes located in user configuration directories in
`powerline-lint`.
- `powerline-daemon` now allows `--foreground` argument to be used in
conjunction with `--replace`.
- Fixed outdated tmux versions support (1.6 and 1.7).
Incompatible changes:
- Removed CtrlP support. If one wants to readd it make sure to fix problems
listed in 4e6b0a7ec8f2fa54053e4162c8b604a85e8d667d.
- `highlight_group` key in segment description (both in configuration and in
function output) was renamed to `highlight_groups` (note the trailing `s`).
- `attr` key in colorschemes was renamed to `attrs` key (note the trailing `s`).
- All highlight groups looking like `foo.bar` were renamed to `foo:bar`: dot in
highlight group names is no longer allowed.
- `detect` argument value was renamed to `auto` in network segments.
- `$POWERLINE_COMMAND` is now a single path to one executable. No arguments to
the executable are allowed inside `$POWERLINE_COMMAND`. Overrides using
argument to `$POWERLINE_COMMAND` are now deprecated.
- In place of overrides being part of `$POWERLINE_COMMAND` variable all shell
and tmux bindings now support overrides from `$POWERLINE_CONFIG_OVERRIDES` and
`$POWERLINE_THEME_OVERRIDES` environment variables.
- In place of config paths specified as a part of `$POWERLINE_COMMAND` variable
paths are now taken from `$POWERLINE_CONFIG_PATHS` environment variable.
- `$POWERLINE_CONFIG` was replaced with `$POWERLINE_CONFIG_OVERRIDES` for
zpython bindings when talking about overrides.
- `$POWERLINE_THEME_CONFIG` was renamed to `$POWERLINE_THEME_OVERRIDES` in
zpython bindings.
- `$POWERLINE_CONFIG` was replaced with `$POWERLINE_CONFIG_COMMAND` in all shell
bindings when talking about path to `powerline-config` executable.
- In Vim in place of `g:powerline_theme_overrides__{theme_name}` per-theme
dictionaries `g:powerline_theme_overrides` dictionary should be used. Theme
names in this case are top-level keys in the new dictionary.
- In IPython configuration paths list can be specified via `config_paths`
option, not via `paths` option.
- Some long options that defined overrides were renamed:
- `--theme_option` was renamed to `--theme-override`.
- `--config` was renamed to `--config-override`.
Note that these options are deprecated and shall be used for testing purposes
only.
- All long options that used to have underscore in them are now using
HYPHEN-MINUS instead. I.e.
- `--config_path` was renamed to `--config-path`.
- `--last_pipe_status` was renamed to `--last-pipe-status`.
- `--renderer_arg` was renamed to `--renderer-arg`.
- `--theme_option` was renamed to `--theme-override`.
Short options were not touched.
- All segments from `powerline.segments.common` were removed. Now they live in
`powerline.segments.common` submodules: e.g.
`powerline.segments.common.weather` is now
`powerline.segments.common.wthr.weather`. List of available segments can be
found in documentation, section [Common segments][common-segments].
- Segments `powerline.segments.common.now_playing` and
`powerline.segments.common.players.now_playing` were removed. In place of them
all players should be accessed via their own segments. List of segments is
available in [Media players][media-players].
[common-segments]: http://powerline.readthedocs.org/en/master/configuration/segments/common.html
[media-players]: http://powerline.readthedocs.org/en/master/configuration/segments/common.html#module-powerline.segments.common.players
Reasoning:
1. vt* TERMs (used to be vt100 here) make tmux-1.9 use different and identical
colors for inactive windows. This is not like tmux-1.6: foreground color is
different from separator color and equal to (0, 102, 153) for some reason
(separator has correct color). tmux-1.8 is fine, so are older versions
(though tmux-1.6 and tmux-1.7 do not have highlighting for previously active
window) and my system tmux-1.9a.
2. screen, xterm and some other non-256color terminals both have the same issue
and make libvterm emit complains like `Unhandled CSI SGR 3231`.
3. screen-256color, xterm-256color and other -256color terminals make libvterm
emit complains about unhandled escapes to stderr.
4. `st-256color` does not have any of the above problems, but it may be not
present on the target system because it is installed with x11-terms/st and
not with sys-libs/ncurses.
For the given reasons decision was made: to fix tmux-1.9 tests and not make
libvterm emit any data to stderr st-256color $TERM should be used, up until
libvterm has its own terminfo database entry (if it ever will). To make sure
that relevant terminfo entry is present on the target system it should be
distributed with powerline test package. To make distribution not require
modifying anything outside of powerline test directory TERMINFO variable is set.
It appears that tmux-1.6 is not able to function properly. Most likely this is
because prior to some tmux version running shell commands in background is the
default and only option and starting from some version `run-shell` does not run
processes in background *by default*.
This means that `source` action is run while `setenv` action is running and
since `source` needs to load a bunch of configuration files, *including*
importing a bunch of modules when creating renderer `source` and corresponding
tmux actions are finished earlier.
It is only a guess though: I am not even seeing race condition: `source` *is*
run, `setenv` also *is*, but `source` is *always* before `setenv`.