Change made by @kovidgoyal. Comment:
Fix a bug in the inotify tree watcher that incorrectly marked a tree as
unchanged if an ignored event happens after a non-ignored event. This allows an
optimisation in the git backed to be used (ignoring changes to .git/index.lock).
--
Not including actual commit as I do not think removing pygit2 backend is a good
idea. Worse, removing pygit2 backend in the same commit fix is added is
definitely bad idea.
segment_info should have been initialized with self.segment_info, not updated:
new values must have priority. Refactored the result so that static values are
defined in VimRenderer.segment_info.
Notes:
- I had to launch script twice because tcsh does not actually support multiline
prompt: it squashes everything into one line.
- Thus I had to add POWERLINE_TCSH_NO_ABOVE_PROMPT: running python twice is not
nice for performance.
- Due to 1) tcsh shifting rprompt by 1 and 2) tcsh not accepting %{%}-escaped
color section at the very end of rprompt (actually it is accepting it, just
makes user input colored as that section) I had to reduce computed width by 2.
- As running powerline command in precmd modifies status code I had to use
POWERLINE_STATUS variable to save status.
- As tcsh does not accept names that start with underscore non-API powerline
variables do not start with underscore.
Notes:
- Unlike fish zsh outputs right prompt shifted by one to the left. Which means
I have to subtract 1 from computed width.
- PS2 and PS3 produce too lengthy prompts when fed with real width. Thus they
are fed with PS1 prompt width like in ipython (out prompts).
Not that I wanted this: cmake cannot be told I do not want `lib` prefix. `zsh/`
prefix in any case should have been removed: zpython is not pretending it is
a part of zsh now. Keeping old name for those who are still using zpython branch
(i.e. nearly everybody since zpython got moved less then an hour ago).
tmux configuration has become very fragmented between versions due to a
combination of new features and deprecation of older options. As such,
version checking for tmux became a requirement to allow maximum
functionality along with version-appropriate configuration. However,
wrapping nearly every line with `if-shell` is tedious and becomes
virtually unreadable.
This enhancement to tmux version-checking creates a logical
configuration file structure that reflects the development of tmux. As
additional configurations are added and tmux development continues, this
structure can be leveraged appropriately and extended as needed.
Rather than having multiple `if-shell` checks for the same version, each
version or version group with specific requirements can be checked only
once. This leads to simpler and fewer `if-shell` version checks. It also
reduces the ambiguity introduced by complex `if-shell` commands that
include an 'else' conditional.
A caveat to adding this enhancement is the additional requirement of the
end user to add a tmux variable definition (`POWERLINE_BINDINGS_DIR`) to
his/her `~/.tmux.conf` file. For existing tmux users leveraging
powerline, this may prove to be a slight one-time nuisance immediately
after upgrading. Without this definition, there is no way to determine
the location of the additional tmux powerline config files that have
been added with this enhancement. The docs have also been updated in
this commit to reflect this initial configuration requirement change.
Also added are some additional troubleshooting notes that point to
definition of this variable as a potential issue. Powerline will
continue to work without the definition of `POWERLINE_BINDINGS_DIR`, but
some of the functionality will be reduced and the appearance incomplete
(i.e. colors).
Ultimately, the caveat above is a small price to pay in exchange for a
framework that can be leveraged for proper version-appropriate
configuration of tmux going forward.