Commit Graph

638 Commits

Author SHA1 Message Date
Andy Stewart
09bc754efc Fix splitting on a string not a pattern 2019-09-26 16:56:19 +01:00
Andy Stewart
b94fab3070 Use matchaddpos() instead of text properties
matchaddpos() has better backward compatibility than text properties.  I
only used text properties inside Vim popups because I did not think
there was a way to use matchaddpos(), but then I found a way.
2019-09-26 15:08:56 +01:00
Andy Stewart
ba049e707a Add note 2019-09-24 18:38:54 +01:00
Andy Stewart
45347c9a4b Add comment 2019-09-24 18:38:36 +01:00
Andy Stewart
f2ea4f7034 Fix missing empty string when LCS at one end 2019-09-24 18:38:12 +01:00
Andy Stewart
3405ad72b6 Handle edge case in common prefix calculation 2019-09-24 18:33:12 +01:00
Andy Stewart
ccd4972d23 Fix off-by-one error in LCS calculation 2019-09-24 17:10:26 +01:00
Andy Stewart
d2796a277e Use relative path for screenshot 2019-09-24 11:44:01 +01:00
Andy Stewart
6660aca947 Update screenshot to include hunk preview 2019-09-24 11:37:14 +01:00
Andy Stewart
677a80c4ed Only show intra line highlights in Vim popups when supported 2019-09-24 11:25:48 +01:00
Andy Stewart
dfa6972b67 Add intra-line change highlighting for Vim popups 2019-09-24 11:07:29 +01:00
Andy Stewart
9231bda97f Enable intra-line highlights to handle multiple regions
For example consider:

    -The cat in the hat.
    +The ox in the box.

Before this change the highlights would be:

    -The cat in the hat.
         ^^^^^^^^^^^^^^
    +The ox in the box.
         ^^^^^^^^^^^^^

After this change the highlights are:

    -The cat in the hat.
         ^^^        ^^^
    +The ox in the box.
         ^^        ^^^

Another example; before:

    -The quick brown fox jumped
    +The (quick) brown (fox) jumped
         ^^^^^^^^^^^^^^^^^^^

And after:

    -The quick brown fox jumped
    +The (quick) brown (fox) jumped
         ^     ^       ^   ^
2019-09-24 10:26:31 +01:00
Andy Stewart
68e735b92c Improve intra-line change highlighting
Handle two insertions and two deletions.
2019-09-23 15:59:37 +01:00
Andy Stewart
ae9edf0602 Fix non-empty suffix condition 2019-09-23 13:19:49 +01:00
Andy Stewart
f980fab55c Do not enable syntax in Vim floating popup
Fixes #653
Closes #654
2019-09-23 10:33:17 +01:00
Andy Stewart
76aa5920db Handle no prefix in GitGutterQuickFix
Fixes #649.
2019-09-19 12:26:38 +01:00
Andy Stewart
12bb0e9634 Do not write EOL after last line when no EOL present
See #650.
2019-09-19 12:20:42 +01:00
Andy Stewart
92deed378d Add cterm value for intra-line highlights 2019-09-18 15:54:21 +01:00
Andy Stewart
fdecc23368 Hunk previews highlight intra-line changes.
Closes #577.
2019-09-18 11:55:01 +01:00
Andy Stewart
b71ab64dc1 Add comment about quickfix list 2019-09-05 18:36:55 +01:00
Andy Stewart
c5d2519cd5 Update example maps to use g-based maps 2019-09-05 18:36:39 +01:00
Andy Stewart
7be1f83092 Fix escaping in non-expression map warnings.
Closes #648.
2019-09-05 09:24:01 +01:00
Andy Stewart
0469b8435a Deprecate <Plug>... maps in favour of <Plug>(...) 2019-09-04 08:56:36 +01:00
Andy Stewart
43c82ce8fb Whitespace. 2019-09-03 13:53:52 +01:00
Andy Stewart
0804623cb7 Reset hunk previewing window's modified state. 2019-09-03 13:52:55 +01:00
Andy Stewart
558e51bd5c Avoid duplicate autocommands in previewing window. 2019-09-02 10:40:25 +01:00
Andy Stewart
c375aea57a Enable any write in hunk previewing window to stage. 2019-08-29 15:45:27 +01:00
Andy Stewart
88d396f1b4 Add :GitGutterQuickFix command.
It loads all hunks into the quickfix list.

Closes #617.
2019-08-28 11:59:19 +01:00
Andy Stewart
307caf6f39 Extract general assert method. 2019-08-28 11:56:52 +01:00
Andy Stewart
2364d14242 Fix test logic when no signs expected. 2019-08-28 11:41:09 +01:00
Andy Stewart
3d71ac7e14 Fix duplicate tag. 2019-08-28 10:24:58 +01:00
Andy Stewart
2980a162fc Minor docs update. 2019-08-28 09:23:39 +01:00
Andy Stewart
8bafd08ef4 Support diffs relative to the working tree.
Closes #558.
2019-08-28 09:22:06 +01:00
Andy Stewart
83eb5377be Fix FileChangedShellPost handler on terminal vim.
It seems to be necessary to delay the update by 1 tick.

See #607.
2019-08-28 09:09:15 +01:00
Andy Stewart
7e3b079e6a Fix option setting logic for floating windows. 2019-08-28 09:00:48 +01:00
Andy Stewart
afb8e03222 Do not run ex commands unnecessarily via normal mode. 2019-08-27 19:49:49 +01:00
Andy Stewart
98ce886999 Mention staging partial hunks in top of readme. 2019-08-27 16:57:13 +01:00
Andy Stewart
67c8cca890 Support Vim's popup windows for hunk previews.
Note this prevents staging partial hunks via the previw window.
2019-08-27 16:56:30 +01:00
Andy Stewart
f0f56b9569 Use floating windows for hunk previews on Neovim. 2019-08-27 16:02:51 +01:00
Andy Stewart
0c3e7219b4 Extract operations on hunk preview window. 2019-08-27 11:52:50 +01:00
Daniel Hahler
e929cb8b86 Prevent whitespace problems in test. 2019-08-22 15:41:30 +01:00
Andy Stewart
7dfbb8be11 Fix incorrect expectations in test. 2019-08-22 15:16:43 +01:00
Andy Stewart
5458e3db8a Use feedkeys() so cabbrev sees it. 2019-08-22 15:15:54 +01:00
Andy Stewart
77fb3fd81e Enable :w in preview window to stage the hunk. 2019-08-21 10:27:23 +01:00
Andy Stewart
46f15ed42a More doc updates. 2019-08-16 16:52:38 +01:00
Andy Stewart
c351eb13cf Update docs. 2019-08-16 16:38:32 +01:00
Andy Stewart
cbaa22e38c Use sign functions, groups, and priority, where available.
On Vims that support it, signs are placed in the "gitgutter" group with
a priority set by g:gitgutter_sign_priority.

Closes #544.
Closes #576.
Closes #627.
2019-08-16 16:21:06 +01:00
Andy Stewart
afe94ede1b Do not use a dummy sign to keep the sign column open.
This removes the g:gitgutter_sign_column_always option.

Vim 7.4.2201 introduced the |signcolumn| option to configure when the
signcolumn is visible, building in behaviour which the plugin provided
manually.

Although it would be good to maintain this feature for older Vims, the
complexity added by the code outweighs the benefit of backward
compatibility.
2019-08-16 12:06:28 +01:00
Andy Stewart
f6f425e4cf Do not use a dummy sign to prevent sign column flicker.
In fe2b4ec869 (from 2013) the plugin
started using a dummy sign to prevent the sign column briefly
disappearing then reappearing when updating signs.

Since then Vim has vastly improved its handling of signs and the sign
column no longer flickers like this.
2019-08-16 11:55:01 +01:00
Andy Stewart
53996f5cd1 Use simpler syntax for zero-width positive lookbehind. 2019-08-15 11:58:14 +01:00