Auto save git-tracked files in-place

This commit is contained in:
Ohad Livne 2025-06-04 22:46:43 +03:00
parent 025d532633
commit bc1522e639
Signed by: libohad-dev
GPG key ID: 34FDC68B51191A4D

View file

@ -1,5 +1,11 @@
(load-file ".config/emacs/init-elpaca.el") (load-file ".config/emacs/init-elpaca.el")
(defun git-tracked-file-p (filename)
"Check whether the file FILENAME is tracked by git."
(let ((dirname (file-name-parent-directory filename)))
(zerop (call-process "git" nil nil nil
"-C" dirname "ls-files" "--error-unmatch" filename))))
(use-package emacs (use-package emacs
:ensure nil :ensure nil
:bind (("C-z" . nil) :bind (("C-z" . nil)
@ -20,6 +26,8 @@
:custom :custom
; keep-sorted start ; keep-sorted start
(auto-save-interval 20) (auto-save-interval 20)
(auto-save-visited-mode t)
(auto-save-visited-predicate (lambda () (git-tracked-file-p buffer-file-name)))
(column-number-mode t) (column-number-mode t)
(dired-dwim-target 'dired-dwim-target-next) (dired-dwim-target 'dired-dwim-target-next)
(display-time-24hr-format t) (display-time-24hr-format t)