(json-pretty-print (point-min) (point-max) minimize))
(defvar json-pretty-print-max-secs 2.0
- "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.")
+ "Maximum time for `json-pretty-print's comparison.")
+(make-obsolete-variable json-pretty-print-max-secs nil "27.1")
(defun json-pretty-print (begin end &optional minimize)
"Pretty-print selected region.
;; Distinguish an empty objects from 'null'
(json-null :json-null)
;; Ensure that ordering is maintained
- (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)))
+ (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))))))
(defun json-pretty-print-buffer-ordered (&optional minimize)
"Pretty-print current buffer with object keys ordered.