ui/vc-gutter: defer git-gutter until file exists
If the current buffer doesn't represent a real file, defer enabling git-gutter-mode until the file is saved.
This commit is contained in:
parent
e0e82ffbeb
commit
1d40602c3e
1 changed files with 22 additions and 17 deletions
|
@ -23,11 +23,15 @@ to the right fringe.")
|
|||
:commands (git-gutter:revert-hunk git-gutter:stage-hunk)
|
||||
:init
|
||||
(defun +version-control|git-gutter-maybe ()
|
||||
"Enable `git-gutter-mode' in non-remote buffers."
|
||||
(when (and buffer-file-name
|
||||
(or +vc-gutter-in-remote-files
|
||||
(not (file-remote-p buffer-file-name)))
|
||||
(vc-backend buffer-file-name))
|
||||
"Enable `git-gutter-mode' in the current buffer.
|
||||
|
||||
If the buffer doesn't represent an existing file, `git-gutter-mode's activation
|
||||
is deferred until the file is saved."
|
||||
(when (or +vc-gutter-in-remote-files
|
||||
(not (file-remote-p (or buffer-file-name default-directory))))
|
||||
(if (not buffer-file-name)
|
||||
(add-hook 'after-save-hook #'+version-control|git-gutter-maybe nil t)
|
||||
(when (vc-backend buffer-file-name)
|
||||
(if (display-graphic-p)
|
||||
(progn
|
||||
(require 'git-gutter-fringe)
|
||||
|
@ -39,7 +43,8 @@ to the right fringe.")
|
|||
(setq-local git-gutter:view-diff-function #'git-gutter:view-diff-infos)
|
||||
(setq-local git-gutter:clear-function #'git-gutter:clear-diff-infos)
|
||||
(setq-local git-gutter:window-width 1))
|
||||
(git-gutter-mode +1)))
|
||||
(git-gutter-mode +1)
|
||||
(remove-hook 'after-save-hook #'+version-control|git-gutter-maybe t)))))
|
||||
(add-hook! (text-mode prog-mode conf-mode)
|
||||
#'+version-control|git-gutter-maybe)
|
||||
;; standardize default fringe width
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue