From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Ted Zlatanov Newsgroups: gmane.emacs.devel Subject: general customize-like data editor? Date: Wed, 14 Dec 2016 10:02:32 -0500 Organization: =?utf-8?B?0KLQtdC+0LTQvtGAINCX0LvQsNGC0LDQvdC+0LI=?= @ Cienfuegos Message-ID: <87pokuk0zb.fsf@lifelogs.com> Reply-To: emacs-devel@gnu.org NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1481727841 19057 195.159.176.226 (14 Dec 2016 15:04:01 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Wed, 14 Dec 2016 15:04:01 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Dec 14 16:02:58 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cHB58-0002Gi-2u for ged-emacs-devel@m.gmane.org; Wed, 14 Dec 2016 16:02:58 +0100 Original-Received: from localhost ([::1]:48153 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cHB5C-0001fc-Dy for ged-emacs-devel@m.gmane.org; Wed, 14 Dec 2016 10:03:02 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:54654) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cHB53-0001Vh-2R for emacs-devel@gnu.org; Wed, 14 Dec 2016 10:02:54 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cHB50-00017O-02 for emacs-devel@gnu.org; Wed, 14 Dec 2016 10:02:53 -0500 Original-Received: from [195.159.176.226] (port=55003 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cHB4z-000174-QW for emacs-devel@gnu.org; Wed, 14 Dec 2016 10:02:49 -0500 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1cHB4s-00006L-WD for emacs-devel@gnu.org; Wed, 14 Dec 2016 16:02:42 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: emacs-devel@gnu.org Original-Lines: 37 Original-X-Complaints-To: usenet@blaine.gmane.org X-Face: bd.DQ~'29fIs`T_%O%C\g%6jW)yi[zuz6; d4V0`@y-~$#3P_Ng{@m+e4o<4P'#(_GJQ%TT= D}[Ep*b!\e,fBZ'j_+#"Ps?s2!4H2-Y"sx" Mail-Copies-To: never Cancel-Lock: sha1:nG3mHAnJehEuK2ZmYKprTIAoIAk= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:210452 Archived-At: Several times[1] I've wished for a general data editor. It would behave like Customize but at the data level. The closest I've found is `eieio-customize-object' from eieio-custom.el. The EIEIO facilities make a lot of sense for this, and I don't think it's a big burden for packages to map their *editable* structures to defclasses, even if they don't buy into it generally. So my questions are: 1) are there non-EIEIO field editors, based on alists or plists when you don't know all the fields in advance, but can specify their type? The use case here is "I have a data structure with integer keys x, y, z; all the rest should default to string editing." 2) inside Emacs, `eieio-customize-object' is only used by CEDET. Are there other packages that use it? Any experiences, positive or negative? 3) currently `eieio-customize-object' is focused on editing a single object. Are there table editors that would allow changing multiple objects? For instance the process environment editor in https://github.com/dgtized/list-environment.el could use that. The use case here is "I have a data structure with a list of strings I'd like to edit." Clearly this parallels the Customize interface, which knows how to validate and edit things like '(repeat string) etc. so if there are ways to simply use that interface, that's probably easiest. But that doesn't solve editing multiples as in (3) and seems to have a lot of hard-coded behavior specific to customizing named variables. So I'm not sure what to do. Thanks Ted [1] https://github.com/vmware/govmomi/issues/646 and https://github.com/dgtized/list-environment.el/issues/2 for instance