Consider the following script:
% powerline-daemon -s powerline-test
% powerline --socket powerline-test -p/dev/null shell left
Config file not found in search paths (/dev/null): config.json
% powerline --socket powerline-test shell left
Config file not found in search paths (/dev/null): config.json
Note the problem: second call to powerline does not use offending path, but it
still emits the error “Config file not found in search paths”.
According to the documentation and linter `'highlight_group': 'string'` was not
correct even at the current stage, but it worked. This commit fixes this
situation.
Now imports follow the following structure:
1. __future__ line: exactly one line allowed:
from __future__ import (unicode_literals, division, absolute_import, print_function)
(powerline.shell is the only exception due to problems with argparse).
2. Standard python library imports in a form `import X`.
3. Standard python library imports in a form `from X import Y`.
4. and 5. 2. and 3. for third-party (non-python and non-powerline imports).
6. 3. for powerline non-test imports.
7. and 8. 2. and 3. for powerline testing module imports.
Each list entry is separated by exactly one newline from another import. If
there is module docstring it goes between `# vim:` comment and `__future__`
import. So the structure containing all items is the following:
#!/usr/bin/env python
# vim:fileencoding=utf-8:noet
'''Powerline super module'''
import sys
from argparse import ArgumentParser
import psutil
from colormath.color_diff import delta_e_cie2000
from powerline.lib.unicode import u
import tests.vim as vim_module
from tests import TestCase
.
Four possible results of running tests (first three are errors):
- “The change to inotify/file2 was not detected” on line 84: most common
- “Spurious change detected” at line 82 (uncommon, usually fixed by sleeping
before running test in do_test_for_change)
- “The change to inotify was not detected” in tree watcher test (e.g. from line
131) (very rare)
- All OK.
Among other benefits (i.e. correct fall back to ascii theme when Vim uses
non-unicode encoding) this should also fix travis tests: apparently travis is
not setting LANG or similar environment variables to some unicode locale, so
tests are failing.
This byte is useless and can be seen in zsh output (strange that it did not
cause bugs so far, at least none I know about). It may have been needed if any
client was supposed to hold connection with daemon for a few runs, but all
current clients work in “request → output response → exit” fashion without
caring about terminating newline and definitely without preserving connection to
daemon accross runs.
- This segment displays the number of attached tmux clients to the
currently running session.
- The minimum argument is used to specify a threshold for when the
segment should be visible.
Fixes#661Closes#662
Conflicts:
docs/source/index.rst
powerline/config_files/colorschemes/shell/default.json
powerline/config_files/colorschemes/shell/solarized.json
powerline/config_files/colorschemes/tmux/default.json
powerline/config_files/colorschemes/vim/default.json
powerline/config_files/colorschemes/vim/solarized.json
powerline/config_files/colorschemes/wm/default.json
tests/test_segments.py
- Replaced two powerline objects with one powerline object utilizing
RendererProxy proxy class that holds two Renderer instances.
- Made .setup() functions do something more meaningful.
Specifically I searched for all lines that are more then one tab off compared to
the previous line with
BufGrep /\(^\t\+\)\S.*\n\1\t\t\+/
and replaced them with something more appropriate. Most of time this resulted in
a few more newlines, but there are cases when I used mixed tabs/spaces
indentation+alignment.
Note: by default this segment is disabled. Until #923 it may only be enabled by
copying the whole file and changing "enabled" to "true". After #923 it may be
enabled by having `~/.config/powerline/themes/vim/default.json` with the
following contents:
{
"segment_data": {
"trailing_whitespace": {
"display": true
}
}
}
Fixes#388
What was done:
- Implemented loading using configuration hierarhy as proposed in the issue
- Implemented group aliasing
What was not:
- Some tests (config_reload) are failing
- Other (test_configuration) are spamming console with unexpected messages
- No support for powerline-lint
- No tests for new functionality
- Specifically I have not checked whether group aliasing actually works
- Colorschemes were not ported
Some other things: I have named this branch `config-ng` because I have other
ideas about configuration and it would be good to include them making only one
possibly backwards-incompatible merge commit instead of many. Specifically I am
going to rebase `merge-config` branch here.
dark_green_gray gradient was generated with
tools/generate_gradients.py 70 247
. It is used for non-insert modes in the current window. light_green_gray
gradient was generated with
./tools/generate_gradients.py 148 250
. It is used for insert mode in the current window.
Red hearts for battery full are still more optimal in case white hearts are for
empty (though I do not understand why they have to be red). Cannot agree about
per cents though: red is better for empty then white is if there are no related
parts to compare.