From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: Re: Modern Conventions for Emacs Lisp files? Date: Mon, 8 Apr 2013 09:32:39 +0000 Message-ID: <20130408093239.GA3810@acm.acm> References: <87hajhswdh.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1365445610 3136 80.91.229.3 (8 Apr 2013 18:26:50 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 8 Apr 2013 18:26:50 +0000 (UTC) Cc: Bastien , =?iso-8859-1?Q?Fran=E7ois?= Pinard , Jonas Bernoulli , emacs-devel@gnu.org To: Thorsten Jolitz Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Apr 08 20:26:53 2013 Return-path: Envelope-to: ged-emacs-devel@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 1UPGmF-0004Y8-9A for ged-emacs-devel@m.gmane.org; Mon, 08 Apr 2013 20:26:47 +0200 Original-Received: from localhost ([::1]:39895 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP8SD-0006AP-6I for ged-emacs-devel@m.gmane.org; Mon, 08 Apr 2013 05:33:33 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:45072) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP8S4-00066j-AQ for emacs-devel@gnu.org; Mon, 08 Apr 2013 05:33:31 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UP8Rx-0004N4-Bl for emacs-devel@gnu.org; Mon, 08 Apr 2013 05:33:24 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:16885 helo=mail.muc.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UP8Rx-0004Ma-23 for emacs-devel@gnu.org; Mon, 08 Apr 2013 05:33:17 -0400 Original-Received: (qmail 79388 invoked by uid 3782); 8 Apr 2013 09:33:11 -0000 Original-Received: from acm.muc.de (pD9518E7B.dip.t-dialin.net [217.81.142.123]) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 08 Apr 2013 11:32:56 +0200 Original-Received: (qmail 4069 invoked by uid 1000); 8 Apr 2013 09:32:39 -0000 Content-Disposition: inline In-Reply-To: <87hajhswdh.fsf@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Delivery-Agent: TMDA/1.1.12 (Macallan) X-Primary-Address: acm@muc.de X-detected-operating-system: by eggs.gnu.org: FreeBSD 8.x X-Received-From: 193.149.48.1 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 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-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:158766 Archived-At: Morning, Thorsten! On Mon, Apr 08, 2013 at 02:23:54AM +0200, Thorsten Jolitz wrote: > Hi List, > there are new ways (libraries) to make Emacs Lisp buffers similar to > Org-mode buffers in looks and (outline) functionality. > I made a screencast showing these new libraries for 'Org-mode outside > Org-mode' (outshine, outorg, poporg, navi-mode) in action: > ,---------------------------- > | http://youtu.be/nqE6YxlY0rw > `---------------------------- I must admit, I spent more time listening to the music than paying attention to the screen. ;-) > (Watch in HD) > Would it make sense to define 'modern conventions for Emacs Lisp files' > based on all this new functionality and the popularity of Org-mode? Maybe for new elisp files, and those old ones which somebody is prepared to convert. But not as a standard applicable to all elisp files. > Something like this: > 1. File structuring with outcommented Org-mode headlines (;; * Headline) > 2. Meta information not as free text anymore but as Org-mode properties, > maybe like this: > ,--------------------------------------------------------- > | * navi-mode.el --- major-mode for easy buffer-navigation > | :PROPERTIES: > | :copyright: Thorsten Jolitz > | :copyright-years: 2013 > | :version: 0.9 > | :licence: GPL 2 or later (free software) > | :licence-url: http://www.gnu.org/licenses/ > | :part-of-emacs: no > | :author: Thorsten Jolitz > | :author_email: tjolitz AT gmail DOT com > | :inspiration: occur-mode org-mode > | :keywords: emacs outline lisp > | :END: > `--------------------------------------------------------- > 3. A file template somehow similar to this: > ,--------------------------------------------------------- > | * navi-mode.el --- major-mode for easy buffer-navigation > | ** Commentary > | *** About navi-mode > | *** Usage > | *** Installation > | *** Emacs Version > | ** ChangeLog > | * Requires > | * Mode Definitions > | * Variables > | ** Consts > | ** Vars > | ** Hooks > | ** Fonts > | ** Customs > | *** Custom Groups > | *** Custom Vars > | * Defuns > | ** Functions > | ** Commands > | * Menus and Keys > | ** Menus > | ** Keys > | * Run Hooks and Provide > `--------------------------------------------------------- I would be against this bit. I think that semantically close defined entities should be close together. For example, cc-engine.el is divided up into pages by ^Ls, and all the def{const,var,macro,subst,fun}s to do with "A system for finding noteworthy parens before the point" are together in that page. It is convenient to `narrow-to-page' to enclose all these definitions together. This facility would be lost if all definitions in the file (over 200 of them) were ordered as suggested above. > -- > cheers, > Thorsten -- Alan Mackenzie (Nuremberg, Germany).