Releases: rbong/vim-flog
Releases · rbong/vim-flog
v3.0.0
Flog is a Git branch viewer that integrates with Fugitive.
This release focuses on making Flog even better looking, even faster, and adding auto-updates.
See the v3 help thread for migration instructions and configuration tips if you are coming from v2.
If you have any questions, don't hesitate to ask.
After installing Flog, you can also run :help flog
to see the full help documentation.
If you encounter any bugs or other problems, please post a new issue.
Major improvements:
- Add support for new branch drawing unicode characters.
This currently requires the Kitty terminal or flog-symbols.
These symbols make merges and forks clearer and make the graph prettier. - Use a streamlined branch drawing structure to make branches clearer even if new symbols aren't used.
- Improve performance even more.
The Rust repo now loads with 20,000 commits in0.38
seconds
Previously, it loaded in0.58
seconds, making this case a more than 1.5x improvement.
Performance improvements are non-linear and are better the more commits are included in the output. - Dynamically color commits instead of relying on syntax highlighting.
This relies on concealed characters in the output. - Dynamically color branches instead of relying on inaccurate syntax highlighting (Neovim only).
Branch color shifts with moving branches, and merges are colored according to relevant branches.
This is more performant than syntax-based highlighting while scrolling. - Add the
-auto-update
option to automatically update Flog when there are any changes to the repository (Neovim only). - Tweak default branch colors to avoid so many similar colors.
Other enhancements:
- Add mappings to yank commit graph window text with or without the graph:
y<C-X>
,y<C-T>
.
These removes any of the new concealed characters from the yanked text. - Add
-default-expanded
and-default-collapsed
options. - Add mappings to expand/collapse all commits:
g>
,g<
. - Toggle
-patch
based on implied value if it was not previously set. - Jump to top/bottom of commits when changing
-skip
using]]
/[[
. - Change the default number of branch highlight groups to 8 instead of 9.
- Add a setting to tweak the number of branch highlight groups for customization:
g:flog_num_branch_colors
- Add a setting to add an extra blank line after commits:
g:flog_enable_extra_padding
- Improve dynamic update detection even when not using auto-updates.
- Document available highlight groups.
- Add
flog#Version()
to make it easier for plugin authors to detect the version. - Add
:Flogsp
as an abbreviation for:Flogsplit
. - Add
:Flogspc
as an abbreviation for:Flogsplitcommit
. - Open
:Flog
in the current tab if it is empty by default. - Tweak the
flog#Exec()
API to be clearer and have better defaults. - Keep focus in the final window by default when using
:Floggit
.
Previously, focus returned to the commit graph window by default.
This makes the command work similarly to:Git
. - Close temporary side windows before opening new ones instead of after.
This fixes many cases where window layout could be butchered, but may make integration/custom commands harder to write. - Add Lua wrappers for public API functions for Neovim users.
- Disable mini.trailspace in the Flog buffer.
- Add the
%(h'x,'y)
format item for getting a range of hashes, such as the visual range. - Add the
%P
format item for getting the current path(s) prefixed with "--".
This can be used for constructing commands that always use the current path.
Other fixes:
- Fix Neovim-specific memory and performance issues, particularly with multiline commits and inline patches.
- Fix various user options being overridden with defaults.
- Make default jumplist mappings (
g:flog_jumplist_default_mappings
) silent. - Fix count on default jumplist mappings.
- Fix malformed jumplist when using default jumplist mappings.
- Improve handling of alternate filename and jumplist on update.
v2.1.0
Bug fixes:
- Fix an issue where completion caused an error if
-path
was specified. - Fix many cases of escaping special characters in shell commands.
- Fix case where contextual completion was not filtered by visual selection.
- Fix opening a visually selected range with only one line.
- Fix error when running Vim without Lua compiled.
- Fix incorrect colors in some cases with fading branches.
- Fix import errors using early versions of
vim9script
. - Fix error escaping shell commands on Windows.
- Don't overwrite the default register when initializing/updating.
- Fix missing light mode first branch color.
- Fix some warning messages mistakenly causing functions to abort.
- Fix completing branches and remotes with slashes.
Enhancements:
- Optimize syntax highlighting and improve matches.
- Add help mappings for different mapping groups:
d?
,c?
,r?
. - Add mappings for jumping to commit parents/children:
{
,}
. - Add mappings for jumping backwards/forwards in commit history:
<C-O>
,<C-I>
. - Add mappings for collapsing/expanding/toggling commits:
<
,>
,=
- Add ability to add commit jumplist/mark support to default Vim mappings.
- Add partial support in versions of Vim without
setcursorcharpos()
. - Add
-first-parent
flag which is equivalent togit log --first-parent
. - Add mappings to create commits borrowed from Fugitive:
cc
,ca
,ce
. - Add mapping to populate the command line with the commit under the cursor:
.
. - Add more contextual completions when selecting a visual range.
- Add the
-patch
flag, which enables inline diffs (previously only-no-patch
was supported).
Changes:
- Color curved lines according to their origin branch, which looks more correct.
- Use the commit under the cursor as the rebase target instead of its parent.
The parent is used as the rebase target in Fugitive, but since Flog can view multiple branches, this makes some targets impossible.
v2.0.0
This release contains many breaking changes and large updates. See the v2 Migration Guide for more details.
Most notably:
- Flog now draws the graph branches itself
- Flog is now faster
- Branch and commit highlighting is now more accurate
See also this issue if you have any problems.