From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Lennart Borgman (gmail)" Newsgroups: gmane.emacs.devel Subject: Re: Selecting mumamo modes Date: Thu, 25 Sep 2008 23:12:30 +0200 Message-ID: <48DBFEBE.7010400@gmail.com> References: <48D44761.6000809@gmail.com> <87ljxny6n8.fsf@catnip.gol.com> <48D44C79.9020004@gmail.com> <48D63F30.8060102@gmail.com> <48D6E8FB.4070108@gmail.com> <48D79A25.7050000@gmail.com> <48D8BD92.5080403@gmail.com> <48D925EA.3030703@gmail.com> <48D95601.8010703@gmail.com> <48D95FE7.7040807@gmail.com> <48DAB149.9060408@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1222377174 29097 80.91.229.12 (25 Sep 2008 21:12:54 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 25 Sep 2008 21:12:54 +0000 (UTC) Cc: monnier@IRO.UMontreal.CA, emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Thu Sep 25 23:13:51 2008 connect(): Connection refused Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Kiy9n-0001KZ-2b for ged-emacs-devel@m.gmane.org; Thu, 25 Sep 2008 23:13:51 +0200 Original-Received: from localhost ([127.0.0.1]:50861 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kiy8k-0006bB-M7 for ged-emacs-devel@m.gmane.org; Thu, 25 Sep 2008 17:12:46 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kiy8f-0006Yr-AL for emacs-devel@gnu.org; Thu, 25 Sep 2008 17:12:41 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kiy8c-0006VU-Th for emacs-devel@gnu.org; Thu, 25 Sep 2008 17:12:39 -0400 Original-Received: from [199.232.76.173] (port=49163 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kiy8c-0006V7-NA for emacs-devel@gnu.org; Thu, 25 Sep 2008 17:12:38 -0400 Original-Received: from ch-smtp01.sth.basefarm.net ([80.76.149.212]:40453) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Kiy8b-0005Kj-FQ; Thu, 25 Sep 2008 17:12:37 -0400 Original-Received: from c83-254-151-87.bredband.comhem.se ([83.254.151.87]:59759 helo=[127.0.0.1]) by ch-smtp01.sth.basefarm.net with esmtp (Exim 4.68) (envelope-from ) id 1Kiy8Z-00056y-5u; Thu, 25 Sep 2008 23:12:36 +0200 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.666 In-Reply-To: X-Enigmail-Version: 0.95.7 X-Antivirus: avast! (VPS 080925-0, 2008-09-25), Outbound message X-Antivirus-Status: Clean X-Originating-IP: 83.254.151.87 X-Scan-Result: No virus found in message 1Kiy8Z-00056y-5u. X-Scan-Signature: ch-smtp01.sth.basefarm.net 1Kiy8Z-00056y-5u 95eb12925c0fa3441fa06190db0e7f21 X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6? (barebone, rare!) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:104157 Archived-At: Richard M. Stallman wrote: > Here's an idea. Suppose that `normal-mode' sees that a file specifies > a major mode of the form `A+B'. If there is no function `A+B-mode', > it could create one using mumamo, based on `A-mode' and `B-mode', and > then call it. Let me see if I understand how you think here ;-) The structural unit needed are those for defining the chunks. They must contain info like: a) B can contain A b) a chunk dividing function for B in A c) the major mode specifier A d) the major mode specifier B and maybe also e) order relative to other such structural units; for chunk dividing. If units like that are available then maybe something like you propose can be done, yes. But this is actually rather similar to what is done today in the defmacro define-mumamo-multi-major-mode, isn't it? I can still see that it may be useful, of course, but I do not find it necessary now. Internally I think the structure above will be needed to allow sub-chunks in sub-chunks. I am still in doubt about how to implement that however. * Some notes about sub-chunks in sub-chunks: I think the best way to do sub-chunks in sub-chunks will be to always do the chunk dividing from beginning of the file to the end of the file. (And we could also require that the information about the sub-chunk major mode should be in the beginning border.) I have been hesitating to implement this because it might take to long time if the user for example starts by jumping to the end of the file. A way to solve that problem is perhaps to first guess the chunk from the information at the buffer contents close to point and then just change the chunk if needed when the chunk dividing running from beginning of the file to the end has come to the chunk containing point. > That is safe because it only lets a file call `A-mode' and `B-mode', > which files can already do individually. > > Naturally the feature should handle cases of more than two modes in a > similar way.