From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.help Subject: Re: replacing a function with another one Date: Tue, 11 Mar 2014 02:45:57 +0100 Message-ID: <87ppltbj8q.fsf@web.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> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1394502395 17228 80.91.229.3 (11 Mar 2014 01:46:35 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 11 Mar 2014 01:46:35 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Mar 11 02:46:44 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 1WNBmF-0007fw-Mg for geh-help-gnu-emacs@m.gmane.org; Tue, 11 Mar 2014 02:46:43 +0100 Original-Received: from localhost ([::1]:51954 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNBmF-0002EK-BN for geh-help-gnu-emacs@m.gmane.org; Mon, 10 Mar 2014 21:46:43 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:53222) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNBlw-0002EA-DQ for help-gnu-emacs@gnu.org; Mon, 10 Mar 2014 21:46:31 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WNBln-0000A8-4S for help-gnu-emacs@gnu.org; Mon, 10 Mar 2014 21:46:24 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:51964) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WNBlm-00009u-TX for help-gnu-emacs@gnu.org; Mon, 10 Mar 2014 21:46:15 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1WNBll-0007O3-9t for help-gnu-emacs@gnu.org; Tue, 11 Mar 2014 02:46:13 +0100 Original-Received: from ip-90-186-176-150.web.vodafone.de ([90.186.176.150]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 11 Mar 2014 02:46:13 +0100 Original-Received: from michael_heerdegen by ip-90-186-176-150.web.vodafone.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 11 Mar 2014 02:46:13 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 75 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: ip-90-186-176-150.web.vodafone.de User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux) Cancel-Lock: sha1:WFmWm6Z3q3ZR2sRkNXyVnZ1hPqs= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 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:96420 Archived-At: --=-=-= Content-Type: text/plain Michael Heerdegen writes: > If you want such automatic saving, we would just have to substitute the > dir local variable with a mechanism that loads and saves explicitly. Is > this what you want? I've created an example implementation: --=-=-= Content-Type: application/emacs-lisp Content-Disposition: inline; filename=hi-lock-lee.el Content-Transfer-Encoding: quoted-printable (require 'hi-lock) (defvar hi-lock-patterns-file nil) ;; use as buffer or dir local variable (defun get-patterns-from-file (file) (with-current-buffer (find-file-noselect file) (ignore-errors ;empty file (read (buffer-string))))) (advice-add 'hi-lock-find-patterns :after (lambda (&rest _) (hi-lock-set-file-patterns (append hi-lock-file-patterns (and hi-lock-patterns-file (get-patterns-from-file (expand-file-name hi-lock-patterns-file))))))) (defun hi-lock-write-patterns-file () "Use this instead of `hi-lock-write-interactive-patterns'." (interactive) (let ((new-patterns (copy-sequence hi-lock-interactive-patterns))) (with-current-buffer (find-file-noselect hi-lock-patterns-file) (let ((old-patterns (ignore-errors ;empty file (read (buffer-string))))) (erase-buffer) (insert (prin1-to-string (delete-dups (append old-patterns new-patterns)))) (save-buffer))))) --=-=-= Content-Type: text/plain 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: Several files can share one pattern file. The example completely substitutes file local patterns, if you want to use them at the same time, it will become more complicated. If you don't bind `hi-lock-patterns-file', the behavior is like before. Regards, Michael. --=-=-=--