Replace uses of replace-buffer-contents
* lisp/vc/vc.el (vc-diff-restore-buffer): * lisp/progmodes/python.el (python--do-isort): * lisp/progmodes/eglot.el (eglot--apply-text-edits): * lisp/files.el (revert-buffer-insert-file-contents-delicately): * lisp/json.el (json-pretty-print): Use `replace-region-contents`.
This commit is contained in:
parent
57da44fa70
commit
468c2aebae
5 changed files with 31 additions and 29 deletions
|
@ -7264,9 +7264,9 @@ an auto-save file."
|
|||
The command tries to preserve markers, properties and overlays.
|
||||
If the operation takes more than this time, a single
|
||||
delete+insert is performed. Actually, this value is passed as
|
||||
the MAX-SECS argument to the function `replace-buffer-contents',
|
||||
the MAX-SECS argument to the function `replace-region-contents',
|
||||
so it is not ensured that the whole execution won't take longer.
|
||||
See `replace-buffer-contents' for more details.")
|
||||
See `replace-region-contents' for more details.")
|
||||
|
||||
(defun revert-buffer-insert-file-contents-delicately (file-name _auto-save-p)
|
||||
"Optional function for `revert-buffer-insert-file-contents-function'.
|
||||
|
@ -7275,11 +7275,11 @@ The function `revert-buffer-with-fine-grain' uses this function by binding
|
|||
|
||||
As with `revert-buffer-insert-file-contents--default-function', FILE-NAME is
|
||||
the name of the file and AUTO-SAVE-P is non-nil if this is an auto-save file.
|
||||
Since calling `replace-buffer-contents' can take a long time, depending of
|
||||
Since calling `replace-region-contents' can take a long time, depending of
|
||||
the number of changes made to the buffer, it uses the value of the variable
|
||||
`revert-buffer-with-fine-grain-max-seconds' as a maximum time to try delicately
|
||||
reverting the buffer. If it fails, it does a delete+insert. For more details,
|
||||
see `replace-buffer-contents'."
|
||||
see `replace-region-contents'."
|
||||
(cond
|
||||
((not (file-exists-p file-name))
|
||||
(error (if buffer-file-number
|
||||
|
@ -7302,7 +7302,8 @@ see `replace-buffer-contents'."
|
|||
(let ((temp-buf (current-buffer)))
|
||||
(set-buffer buf)
|
||||
(let ((buffer-file-name nil))
|
||||
(replace-buffer-contents
|
||||
(replace-region-contents
|
||||
(point-min) (point-max)
|
||||
temp-buf
|
||||
revert-buffer-with-fine-grain-max-seconds))))))))
|
||||
;; See comments in revert-buffer-with-fine-grain for an explanation.
|
||||
|
|
20
lisp/json.el
20
lisp/json.el
|
@ -803,7 +803,7 @@ With prefix argument MINIMIZE, minimize it instead."
|
|||
(orig-buf (current-buffer)))
|
||||
;; Strategy: Repeatedly `json-read' from the original buffer and
|
||||
;; write the pretty-printed snippet to a temporary buffer.
|
||||
;; Use `replace-buffer-contents' to swap the original
|
||||
;; Use `replace-region-contents' to swap the original
|
||||
;; region with the contents of the temporary buffer so that point,
|
||||
;; marks, etc. are kept.
|
||||
;; Stop as soon as we get an error from `json-read'.
|
||||
|
@ -825,16 +825,14 @@ With prefix argument MINIMIZE, minimize it instead."
|
|||
(standard-output tmp-buf))
|
||||
(with-current-buffer tmp-buf
|
||||
(erase-buffer) (json--print json))
|
||||
(save-restriction
|
||||
(narrow-to-region beg (point))
|
||||
(replace-buffer-contents
|
||||
tmp-buf
|
||||
json-pretty-print-max-secs
|
||||
;; FIXME: What's a good value here? Can we use
|
||||
;; something better, e.g., by deriving a value
|
||||
;; from the size of the region?
|
||||
64)
|
||||
'keep-going))
|
||||
(replace-region-contents
|
||||
beg (point) tmp-buf
|
||||
json-pretty-print-max-secs
|
||||
;; FIXME: What's a good value here? Can we use
|
||||
;; something better, e.g., by deriving a value
|
||||
;; from the size of the region?
|
||||
64)
|
||||
'keep-going)
|
||||
;; EOF is expected because we json-read until we hit
|
||||
;; the end of the narrow region.
|
||||
(json-end-of-file nil))))))))))
|
||||
|
|
|
@ -3839,17 +3839,20 @@ If SILENT, don't echo progress in mode-line."
|
|||
0 howmany)))
|
||||
(done 0))
|
||||
(mapc (pcase-lambda (`(,newText ,beg . ,end))
|
||||
(let ((source (current-buffer)))
|
||||
(with-temp-buffer
|
||||
(insert newText)
|
||||
(let ((temp (current-buffer)))
|
||||
(with-current-buffer source
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(narrow-to-region beg end)
|
||||
(replace-buffer-contents temp)))
|
||||
(when reporter
|
||||
(eglot--reporter-update reporter (cl-incf done))))))))
|
||||
(if (> emacs-major-version 30)
|
||||
(replace-region-contents beg end newText)
|
||||
(let ((source (current-buffer)))
|
||||
(with-temp-buffer
|
||||
(insert newText)
|
||||
(let ((temp (current-buffer)))
|
||||
(with-current-buffer source
|
||||
(save-excursion
|
||||
(save-restriction
|
||||
(narrow-to-region beg end)
|
||||
(with-no-warnings
|
||||
(replace-buffer-contents temp)))))))))
|
||||
(when reporter
|
||||
(eglot--reporter-update reporter (cl-incf done))))
|
||||
(mapcar (lambda (edit)
|
||||
(eglot--dcase edit
|
||||
(((TextEdit) range newText)
|
||||
|
|
|
@ -6931,7 +6931,7 @@ Return non-nil if the buffer was actually modified."
|
|||
(unless (eq 0 status)
|
||||
(error "%s exited with status %s (maybe isort is missing?)"
|
||||
python-interpreter status))
|
||||
(replace-buffer-contents temp)
|
||||
(replace-region-contents (point-min) (point-max) temp)
|
||||
(not (eq tick (buffer-chars-modified-tick)))))))))
|
||||
|
||||
;;;###autoload
|
||||
|
|
|
@ -1970,7 +1970,7 @@ of NEW (without destroying existing markers), swapping their text
|
|||
objects, and finally killing buffer ORIGINAL."
|
||||
(with-current-buffer original
|
||||
(let ((inhibit-read-only t))
|
||||
(replace-buffer-contents new)))
|
||||
(replace-region-contents (point-min) (point-max) new)))
|
||||
(with-current-buffer new
|
||||
(buffer-swap-text original))
|
||||
(kill-buffer original))
|
||||
|
|
Loading…
Add table
Reference in a new issue