From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#21616: [PATCH] Enable sorting of JSON object keys when encoding Date: Mon, 9 Nov 2015 02:01:25 +0200 Message-ID: <563FE255.5080506@yandex.ru> References: <87twq6e986.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1447027345 29851 80.91.229.3 (9 Nov 2015 00:02:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 9 Nov 2015 00:02:25 +0000 (UTC) To: Simen =?UTF-8?Q?Heggest=C3=B8yl?= , 21616@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Nov 09 01:02:12 2015 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZvZuU-0007qH-0m for geb-bug-gnu-emacs@m.gmane.org; Mon, 09 Nov 2015 01:02:10 +0100 Original-Received: from localhost ([::1]:49214 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZvZuT-0000hx-Bd for geb-bug-gnu-emacs@m.gmane.org; Sun, 08 Nov 2015 19:02:09 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:39468) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZvZuQ-0000hl-NZ for bug-gnu-emacs@gnu.org; Sun, 08 Nov 2015 19:02:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZvZuM-0001ge-Lh for bug-gnu-emacs@gnu.org; Sun, 08 Nov 2015 19:02:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:39016) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZvZuM-0001gZ-Iq for bug-gnu-emacs@gnu.org; Sun, 08 Nov 2015 19:02:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZvZuM-0001ZY-88 for bug-gnu-emacs@gnu.org; Sun, 08 Nov 2015 19:02:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 09 Nov 2015 00:02:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 21616 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 21616-submit@debbugs.gnu.org id=B21616.14470272906003 (code B ref 21616); Mon, 09 Nov 2015 00:02:02 +0000 Original-Received: (at 21616) by debbugs.gnu.org; 9 Nov 2015 00:01:30 +0000 Original-Received: from localhost ([127.0.0.1]:57957 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZvZtq-0001Yl-8T for submit@debbugs.gnu.org; Sun, 08 Nov 2015 19:01:30 -0500 Original-Received: from mail-wi0-f169.google.com ([209.85.212.169]:33420) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZvZto-0001Yd-Sg for 21616@debbugs.gnu.org; Sun, 08 Nov 2015 19:01:29 -0500 Original-Received: by wiby19 with SMTP id y19so8591711wib.0 for <21616@debbugs.gnu.org>; Sun, 08 Nov 2015 16:01:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-type:content-transfer-encoding; bh=E5eE14R0s3ZafOkMnS979YZQXyb/WtnaUtZiiT9/VFA=; b=lOkoUHfu4mBL5ykohrUznxU/64mqaITKi9VSP66rqnDx1T1foTWZcgWT1l80nB+Dwe KADlMfvjE/9+XPX/7gyfexpioRhq7zJBajGYDxLCEKdKGvPLKMtDzqUHziPBHOBxbJpN fLgv2/t2DcmGGgiGK19ir632J3afipUJlutkVHK0WiVncdOz3PEceHkPkqfVVaZjDAmB NI7jh0hkCIS5pNC9kbeouWzVHF0WwdaN8xTv/n7J+Bk8UrMdgicQSSz3xV7hpfx8yEw4 YCrHYmxR27ftFWSoAM5Kgj45TUEzOpaKtk0xA6wy6uVTYSHtfMbHK96XbX0UPySXf9cL Gmzg== X-Received: by 10.194.52.72 with SMTP id r8mr26991974wjo.8.1447027288269; Sun, 08 Nov 2015 16:01:28 -0800 (PST) Original-Received: from [192.168.1.2] ([185.105.175.24]) by smtp.googlemail.com with ESMTPSA id lb2sm12319011wjc.15.2015.11.08.16.01.26 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 08 Nov 2015 16:01:27 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:42.0) Gecko/20100101 Thunderbird/42.0 In-Reply-To: <87twq6e986.fsf@gmail.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:108588 Archived-At: Hi Simen, On 10/04/2015 10:15 PM, Simen Heggestøyl wrote: > When working with JSON data, it is often convenient to be able to > prettify the data, and having object keys sorted in a fixed order. > This patch adds the variable `json-encoding-object-sort-key' which I think it's a "predicate", not a "key". See the argument names in `sort' and `cl-sort': the latter has a :key keyword argument, but it has different purpose. Call it json-[encode-]key-sort-predicate, maybe? > This gets rid of a lot of redundant code from `json-encode-hash-table' > and `json-encode-plist' by going via alists, and using the logic of > `json-encode-alist' commonly for all the structures. The unification part makes me concerned, again, from the performance standpoint. Did you do any measuring here? > I was in doubt whether to make `json-pretty-print-ordered' and > `json-pretty-print-buffer-ordered' their own commands, or if it would > be better to provide this functionality by having `json-pretty-print' > and `json-pretty-print-buffer' accept prefix arguments. I decided on > the former, because I think it makes the commands easier to discover. Yes, making them separate seems to be more in line with other Emacs commands.