bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#25478: 26.0.50; No hooks are called when auto-saving


From: Philipp Stephani
Subject: bug#25478: 26.0.50; No hooks are called when auto-saving
Date: Sun, 26 Mar 2017 19:17:53 +0000



Eli Zaretskii <eliz@gnu.org> schrieb am So., 26. März 2017 um 20:46 Uhr:
> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Sun, 26 Mar 2017 18:21:01 +0000
> Cc: 25478@debbugs.gnu.org
>
>  All in all, I think this option is subtly dangerous and should be
>  either deprecated or completely reimplemented to invoke
>  basic-save-buffer instead. I'm quite sure this option made sense in
>  the past, when complications with encoding and save-related hooks
>  didn't exist, but that is no longer the case in Emacs these days.
>  If someone thinks using this option will allow them not to bother with
>  saving their edits, they are in for an unpleasant surprise.
>
> That's quite unfortunate, as not having to bother with saving edits manually is a very desirable feature that I
> think Emacs should offer out of the box.
>
> If you really want to deprecate auto-save-visited-file-name, how about adding a simple global minor mode that
> invokes save-some-buffers from an idle timer to files.el?

As I wrote, I'm also okay with Someone™ volunteering to reimplement
this option such that it invokes basic-save-buffer instead.

A minor mode that you describe would also be fine, but then it should
probably disable auto-saving if auto-save-visited-file-name is set,
right?

Sounds reasonable. I'll try to come up with something by next weekend. Probably it will be just 

(defvar auto-save--timer nil)
(defcustom auto-save-visited-interval 5
  "seconds"
  :group 'files
  :type 'number
  :set (lambda (symbol value)
         (set-default symbol value)
         (when auto-save--timer
           (timer-set-idle-time auto-save--timer value :repeat))))
(define-minor-mode auto-save-visited-mode nil
  :group 'files
  :global t
  (when auto-save--timer (kill-timer auto-save--timer))
  (setq auto-save--timer
        (when auto-save-visited-mode
          (run-with-idle-timer
           auto-save-visited-interval :repeat
           #'save-some-buffers :no-prompt
           (lambda ()
             (not (and buffer-auto-save-file-name auto-save-visited-file-name)))))))

but it will also need tests and documentation, which take a bit more time.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]