diff options
Diffstat (limited to 'lisp/json.el')
-rw-r--r-- | lisp/json.el | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/lisp/json.el b/lisp/json.el index 8dd96b08640..a36cff7c67b 100644 --- a/lisp/json.el +++ b/lisp/json.el @@ -758,8 +758,10 @@ With prefix argument MINIMIZE, minimize it instead." (json-pretty-print (point-min) (point-max) minimize)) (defvar json-pretty-print-max-secs 2.0 - "Maximum time for `json-pretty-print's comparison.") -(make-obsolete-variable json-pretty-print-max-secs nil "27.1") + "Maximum time for `json-pretty-print's comparison. +The function `json-pretty-print' uses `replace-region-contents' +(which see) passing the value of this variable as argument +MAX-SECS.") (defun json-pretty-print (begin end &optional minimize) "Pretty-print selected region. @@ -769,17 +771,14 @@ With prefix argument MINIMIZE, minimize it instead." ;; Distinguish an empty objects from 'null' (json-null :json-null) ;; Ensure that ordering is maintained - (json-object-type 'alist) - json) - (save-restriction - (narrow-to-region begin end) - (goto-char begin) - (while (setq json (condition-case _ - (json-read) - (json-error nil))) - (delete-region begin (point)) - (insert (json-encode json)) - (setq begin (point)))))) + (json-object-type 'alist)) + (replace-region-contents + begin end + (lambda () (json-encode (json-read))) + 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))) (defun json-pretty-print-buffer-ordered (&optional minimize) "Pretty-print current buffer with object keys ordered. |