Commit Graph

104 Commits

Author SHA1 Message Date
Andy Stewart
b18e23cdfa Fix broken highlight link for GitGutterChangeDeleteLine.
Thanks to @JacobLeach for pointing this out.
2015-10-21 09:43:35 +01:00
Andy Stewart
62cfae461f Suppress any errors from wiping out buffers.
The buffers being wiped out are temporary ones used to hold the contents
of a "real", unsaved buffer.  Ideally vim wouldn't create them at all;
and in fact it seems sometimes vim does not create them (#258).

It would be good to find why the buffers are usually there but sometimes
not.  In the meantime this change works around the problem.
2015-10-21 09:24:49 +01:00
Andy Stewart
a30ee7f23e Handle filenames containing equals signs. 2015-10-13 13:03:14 +01:00
somini
1067294cdc Specify help files correctly
This makes so that editing helpfiles directly triggers the gutters,
while keeping the default behaviour of editing help buffers (opened
with `:help stuff`) doesn't.
2015-08-26 10:43:01 +02:00
Andy Stewart
62462a25a7 Minor refactor. 2015-08-17 09:45:31 +02:00
Manuel Johannes Messner
0ca15c8ad2 Add support for fish shell
The `&&` and the `||` operators aren't available in fish.
The equivalents are `; and` and `; or`.
Also single parentheses are used for command substitution.
The fish equivalents are `begin` and `end`.
But they aren't needed here.
2015-08-17 09:29:15 +02:00
Mathias Stearn
fe10e6474d Wipeout temporary buffer created when writing file to diff.
This avoids creating a ton of dead buffers that slow down plugins that
iterate over all buffers, such as YouCompleteMe.
2015-07-28 10:41:19 +02:00
Andy Stewart
2e98692278 Do not process help files. 2015-07-14 14:44:35 +02:00
Andy Stewart
937930e647 Fix regex to eliminate false positives in match. 2015-04-21 10:10:18 +02:00
Andy Stewart
e098491906 Preserve '[ and '] marks, and &modified, during realtime diff.
See #242.
2015-04-01 10:28:01 +02:00
Andy Stewart
07d7c9d478 Override SignColumn highlight group by default.
Most colorschemes (e.g. solarized) don't give any thought to the
SignColumn highlight group so generally the sign column is ugly.

With this change vim-gitgutter defaults to making the sign column look
like the line number column.

Solarized users no longer need `highlight clear SignColumn` in their
vimrc :)

To stop vim-gitgutter from overriding the SignColumn highlight, add this
to your vimrc:

    let g:gitgutter_override_sign_column_highlight = 0
2015-03-31 16:23:55 +02:00
Andy Stewart
8345c35770 Stop early when file is in .git directory. 2015-03-23 11:36:34 +01:00
Andy Stewart
1a7f1c5bf6 Fix typo with variable scope. 2015-03-10 12:11:04 +01:00
Andy Stewart
11b6813b94 Use echo instead of echom.
No need to save the warnings in the messages list.
2015-03-10 12:10:32 +01:00
Andy Stewart
1be63d780c Use warn function instead of plain echo. 2015-03-10 12:10:17 +01:00
Maximilian Antoni
275d598196 Echo message if no next/previous hunk is available
Gives some feedback when hunk navigation does nothing.
2015-03-10 11:25:10 +01:00
Andy Stewart
3420cbf6cb Preserve alternate buffer when processing realtime diff.
See #238.
2015-03-10 10:17:34 +01:00
Andy Stewart
186dada663 Warn when cursor not in a hunk. 2015-03-05 12:19:02 +01:00
Andy Stewart
c6ed14c662 Finer granularity for staging/reverting hunks. 2015-03-05 11:09:18 +01:00
Andy Stewart
4e22ad501f Add a simple log function. 2015-03-04 14:40:40 +01:00
Eli Young
d59ac0394a Don't use --color if grep doesn't support it
Not all versions of grep support the --color flag. This checks the
output of grep --help when building the grep command and avoids using
flags that aren't compatible with the version present.

Fixes #234.
2015-03-04 11:22:39 +01:00
Andy Stewart
4a239a7602 Idiomatic execute. 2015-03-04 11:00:01 +01:00
Eli Young
d613f0f3b2 Remove buffer_contents function
This was only used for realtime diffs, which now write to a temporary
file.
2015-03-04 10:55:32 +01:00
Eli Young
0cb1e41b23 Use a temporary file for buffer for realtime diffs
`git diff` doesn't perform EOL conversion on stdin, causing it to
mistakenly flag every line as having changed when the working tree uses
a different EOL than the blobs. Writing the buffer to a temporary file
and diffing against that avoids this issue.

Fixes #232.
2015-03-04 10:55:31 +01:00
Eli Young
06240f3af3 Delete temporary blob file after use 2015-03-04 10:55:31 +01:00
Andy Stewart
1fae335a65 Force grep to produce colourless output. 2015-03-03 10:52:07 +01:00
Andy Stewart
6b8e908cc9 Enable . command to work with staging/reverting hunks. 2015-01-14 10:40:43 +01:00
Lingnan Dai
25257c44e7 Dealt with the case where the preview window is used by another plugin 2015-01-07 16:55:25 +01:00
Andrea Cedraro
88c7916d2f Use system() with silent to avoid visual artifact 2014-11-30 17:54:24 +01:00
Andy Stewart
57342e33a5 Minor refactor. 2014-11-19 10:06:17 +01:00
Chris Bandy
f73df41654 Handle files with the same name as revisions.
Before this change diffing a file with the same name as a branch would
fail because git found the name ambiguous.

See #210.
2014-11-19 10:01:09 +01:00
Andy Stewart
83309ee075 Cache the fact that a file is known to git.
This allows us to avoid checking whether a file known to git is known to
git every time we run a diff.
2014-11-17 15:41:44 +01:00
Andy Stewart
a114088f22 Support symlinked files.
Adds support for when a symlink file <target> points to another file
<source>, where <srouce> is a file under Git version control.

Thanks to @Z1MM32M4N for work on this (see #209).
2014-11-14 14:16:40 +01:00
Andy Stewart
dfe985a1a6 Use buffer numbers instead of buffer names.
Also don't pass buffer number to functions when they can look it up
themselves.

Using buffer numbers also eliminates any ambiguity which might arise
from symbolic links, where you have potentially two names for a file.

Thanks to @Z1MM32M4N for work on this (see #209).
2014-11-14 12:55:40 +01:00
Andy Stewart
b0e9efa11c Make realtime diff use git-diff.
The only reason the realtime diff used `diff` instead of `git-diff`
previously was that I couldn't figure out how to do it in a way that
worked on Windows as well as Unix.
2014-11-11 10:14:38 +01:00
Andy Stewart
39f0119096 Whitespace. 2014-10-17 09:24:52 +02:00
Andy Stewart
067160c86b Remove obsolete comment. 2014-10-17 09:24:47 +02:00
Andy Stewart
e5eb9e6ecf Fix staging of hunks coming after deleted lines.
Previously vim-gitgutter generated context-free patches and applied
those to the index.  However when staging a hunk situated after any
deleted lines, the line numbers on the patch were out by the number
of lines deleted, and without any context git would apply the patch
to the wrong part of the file in the index.

This commit ensure patches are generated with 1 line of context,
allowing git to adjust the line numbers appropriately and apply the
patch to the right location.

More lines of context would help git more to adjust line numbers; but
the more context we have the more we group together hunks we would
like to treat separately.
2014-10-16 11:50:20 +02:00
Andy Stewart
1e8201963c Ensure closing preview window deletes previewed buffer. 2014-09-23 10:03:14 +02:00
Andy Stewart
198faa119a Report updatetime option in debugging buffer. 2014-09-22 14:39:38 +02:00
Andy Stewart
83ace2014a Suppress signs when there are more than 500. 2014-07-21 16:36:16 +02:00
Andy Stewart
fed2dbad34 Move every function into gitgutter namespace.
This makes profiling much easier.
2014-06-26 11:09:29 +02:00
Andy Stewart
a2aa2b1100 Avoid Windows command prompt popups when possible.
Before this commit some Windows users saw the command prompt pop
up briefly, and/or the taskbar flicker, every time the plugin ran.

Now the plugin will use xolox's vim-shell and vim-misc, if they are
available and we are on Windows, to execute external commands.  Xolox's
clever plugins avoid the command prompt popup and taskbar flicker.

Windows users with those plugins installed can opt out by setting a
variable in their vimrc.

Many thanks to @suxpert for the initial code.
2014-06-19 10:45:40 +02:00
Andy Stewart
c9595f22e8 Fix bug where custom highlights were lost. 2014-06-04 11:00:53 +02:00
Andy Stewart
c6e5cf49f2 Show sign on first line when line(s) deleted at start of file.
This time with silly mistake fixed.
2014-06-02 09:20:51 +02:00
Andy Stewart
d1e66b71f9 Revert "Show sign on first line when line(s) deleted at start of file."
Signs aren't shown for deleted lines which aren't at the start of the
file.

This reverts commit 0fd18d66f6.
2014-05-31 16:57:15 +02:00
Andy Stewart
0fd18d66f6 Show sign on first line when line(s) deleted at start of file. 2014-05-30 17:03:54 +02:00
Chris Faulkner
833b8a439f Use proper regex when fetching SignColumn colors.
The previous regex would incorrectly match null characters in some cases.
2014-05-21 20:47:33 -07:00
Andy Stewart
ceeba75239 Fix independent toggling of signs in sign column and line highlights.
Note that line highlighting requires signs to be placed (because the
line highlight is simply an attribute of a sign).  If the user doesn't
want to see signs in the sign column, but does want line highlighting,
then we make the signs in the sign column invisible.

If neither the signs in the sign column nor the line highlights are
needed (presumably the user just looks at the hunks stats) then we can
remove all signs, at which point Vim removes the sign column...unless
the "sign column always" option is set.
2014-05-19 15:50:51 +02:00
Andy Stewart
0759c96770 Rename function for clarity. 2014-05-19 14:44:58 +02:00