[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master bff6411: Fix pretty-printing of multiple JSON objec
From: |
Lars Ingebrigtsen |
Subject: |
[Emacs-diffs] master bff6411: Fix pretty-printing of multiple JSON objects |
Date: |
Tue, 9 Jul 2019 15:36:04 -0400 (EDT) |
branch: master
commit bff64115a0ad081282e0f99305f41c8dd1917d67
Author: Lars Ingebrigtsen <address@hidden>
Commit: Lars Ingebrigtsen <address@hidden>
Fix pretty-printing of multiple JSON objects
* lisp/json.el (json-pretty-print-max-secs): Make obsolete.
(json-pretty-print): Pretty-print all JSON objects in the region
instead of just the first one (and then deleting all other
objects) (bug#34160).
---
lisp/json.el | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/lisp/json.el b/lisp/json.el
index a36cff7..460fdec 100644
--- a/lisp/json.el
+++ b/lisp/json.el
@@ -734,8 +734,8 @@ you will get the following structure returned:
"Return a JSON representation of OBJECT as a string.
OBJECT should have a structure like one returned by `json-read'.
-If an error is detected during encoding, this function signals
-an error based on `json-error'."
+If an error is detected during encoding, an error based on
+`json-error' is signalled."
(cond ((memq object (list t json-null json-false))
(json-encode-keyword object))
((stringp object) (json-encode-string object))
@@ -762,6 +762,7 @@ With prefix argument MINIMIZE, minimize it instead."
The function `json-pretty-print' uses `replace-region-contents'
(which see) passing the value of this variable as argument
MAX-SECS.")
+(make-obsolete-variable 'json-pretty-print-max-secs nil "27.1")
(defun json-pretty-print (begin end &optional minimize)
"Pretty-print selected region.
@@ -771,14 +772,17 @@ 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))
- (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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master bff6411: Fix pretty-printing of multiple JSON objects,
Lars Ingebrigtsen <=