From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: lee Newsgroups: gmane.emacs.help Subject: Re: replacing a function with another one Date: Wed, 12 Mar 2014 16:11:34 +0100 Organization: my virtual residence Message-ID: <87r467moyh.fsf@yun.yagibdah.de> References: <87vbvofsi6.fsf@yun.yagibdah.de> <87bnxgs4r9.fsf@web.de> <87lhwj1cfz.fsf@yun.yagibdah.de> <87zjkz6vd5.fsf@web.de> <8738ir161u.fsf@yun.yagibdah.de> <87eh2b6nfm.fsf@web.de> <87r46anab5.fsf@yun.yagibdah.de> <87vbvleiey.fsf@yun.yagibdah.de> <87vbvlbm8p.fsf@web.de> <87ppltbj8q.fsf@web.de> <87wqg01rp0.fsf@yun.yagibdah.de> <87fvmotk9a.fsf@web.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1394646184 15116 80.91.229.3 (12 Mar 2014 17:43:04 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 12 Mar 2014 17:43:04 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Mar 12 18:43:12 2014 Return-path: Envelope-to: geh-help-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 1WNnBQ-0002EV-0V for geh-help-gnu-emacs@m.gmane.org; Wed, 12 Mar 2014 18:43:12 +0100 Original-Received: from localhost ([::1]:33825 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNnBP-0005oZ-BB for geh-help-gnu-emacs@m.gmane.org; Wed, 12 Mar 2014 13:43:11 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41468) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNnB4-0005ni-JD for help-gnu-emacs@gnu.org; Wed, 12 Mar 2014 13:42:55 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WNnAz-0004ek-D9 for help-gnu-emacs@gnu.org; Wed, 12 Mar 2014 13:42:50 -0400 Original-Received: from client-194-42-186-216.muenet.net ([194.42.186.216]:52971 helo=yun.yagibdah.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNnAz-0004e0-3v for help-gnu-emacs@gnu.org; Wed, 12 Mar 2014 13:42:45 -0400 Original-Received: from lee by yun.yagibdah.de with local (Exim 4.80.1) (envelope-from ) id 1WNnAs-00060F-MY for help-gnu-emacs@gnu.org; Wed, 12 Mar 2014 18:42:38 +0100 In-Reply-To: <87fvmotk9a.fsf@web.de> (Michael Heerdegen's message of "Tue, 11 Mar 2014 23:58:57 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) Mail-Followup-To: help-gnu-emacs@gnu.org X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 194.42.186.216 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:96463 Archived-At: Michael Heerdegen writes: > lee writes: > > >> > You can specify the pattern save file in the local variables >> > section at the end of a file, but before a hi-lock mode specification, >> > like here: >> > >> > Local Variables: >> > hi-lock-patterns-file: "patterns.txt" >> > mode: hi-lock >> > End: >> >> Apparently this doesn=C2=B4t work because hi-lock-mode is called before = the >> variable is getting a value assigned. See `hack-one-local-variable=C2= =B4 in >> files.el --- IIUC, it calls the mode before it makes the variable. It= =C2=B4s >> hilarious ... > > No, that works well here, I've tested in detail what I had posted here, > and it worked well. AFAIK, local variable specifications are processed > in the order as they appear textually in the file - I see that in the > code. What I=C2=B4m referring to is not in which order they are created compared = to where they appear in the text. When a specification of a variable is encountered, what is in "mode:" will be called as a function if it ends in "-mode". Calling such function always seems to happen before the variable is created. > Maybe this is not the case in your Emacs version ... or you > didn't use it in the intended way. Yes, I=C2=B4m using it in a different way. The mode I=C2=B4m doing this wi= th is not hi-lock-mode but lsl-mode. lsl-mode requires hi-lock-mode because it=C2=B4s using it. With "mode: hi-lock", not much did happen and it somehow wasn=C2=B4t right. So I put "mode: lsl-mode" instead and was surprised to get an error message saying that lsl-mode-mode is a void function. So I found out about this sort of function calling. It=C2=B4s a cool feature, though. So I made a function lsl-mode-mode, yet the variable was only created after I would need it. Consequently, I abandoned this approach and went back to just put a line into the file which is searched for and the file name is taken from. When it=C2=B4s found, read the patterns from that file and use hi-lock-set-file-patterns to set them. That works fine without any advices. Now when lsl-mode is enabled, just do that (i. e. search, read, apply). It could even be done for several files that include patterns by doing it over and over again until no more files to include are found. It=C2=B4s working; the only problem I have atm is how to intentionally retu= rn a particular value from a function ... Once it=C2=B4s a bit nicer, I want to make it a mode on its own. I think it=C2=B4s too useful to leave it limited to lsl-mode. I guess I can make it a mode derived from hi-lock mode; it simply adds some functionality to hi-lock. --=20 Knowledge is volatile and fluid. Software is power.