From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: [Babel] [PATCH] Customize regular expression to match noweb references Date: Fri, 27 Jan 2012 16:05:54 -0700 Message-ID: <87fwf0aeyq.fsf@gmx.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:49080) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RqvSm-0007XW-8n for emacs-orgmode@gnu.org; Fri, 27 Jan 2012 18:44:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RqvSk-0001Aa-Lg for emacs-orgmode@gnu.org; Fri, 27 Jan 2012 18:44:12 -0500 Received: from mailout-us.gmx.com ([74.208.5.67]:39468) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1RqvSk-0001AU-DT for emacs-orgmode@gnu.org; Fri, 27 Jan 2012 18:44:10 -0500 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Sean O'Halpin Cc: Org Mode Good idea, I've changed your implementation to rely on two new customization variables `org-babel-noweb-wrap-start' and `org-babel-noweb-wrap-end' as this provides more flexibility to the backend implementation to place constraints on the properties of the noweb names. In you're situation you will now want to set... (setq org-babel-noweb-wrap-start "=C2=AB" org-babel-noweb-wrap-end "=C2=BB") Thanks for the great idea, "Sean O'Halpin" writes: > Hi, > > Here's a patch I'm using to change the default regular expression used > to match noweb references. > The default regular expression "<<\\(.+?\\)>>" conflicts with Ruby > syntax and confuses syntax highlighting. > I now set this to "=C2=AB\\(.+?\\)=C2=BB", i.e. using guillemots instead > (AltGr-z and AltGr-x on my keyboard). > > Regards, > Sean > > > Customizable regular expression to match noweb references. > --- > lisp/ob-tangle.el | 4 +++- > lisp/ob.el | 7 ++++++- > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/lisp/ob-tangle.el b/lisp/ob-tangle.el > index d7c4d7e..4148774 100644 > --- a/lisp/ob-tangle.el > +++ b/lisp/ob-tangle.el > @@ -281,12 +281,14 @@ references." > (interactive) > (goto-char (point-min)) > (while (or (re-search-forward "\\[\\[file:.*\\]\\[.*\\]\\]" nil t) > - (re-search-forward "<<[^[:space:]]*>>" nil t)) > + (re-search-forward org-babel-noweb-regexp nil t)) > (delete-region (save-excursion (beginning-of-line 1) (point)) > (save-excursion (end-of-line 1) (forward-char 1) (poi= nt))))) > > (defvar org-stored-links) > (defvar org-bracket-link-regexp) > +(defvar org-babel-noweb-regexp) > + > (defun org-babel-tangle-collect-blocks (&optional language) > "Collect source blocks in the current Org-mode file. > Return an association list of source-code block specifications of > diff --git a/lisp/ob.el b/lisp/ob.el > index 47be708..bbd6209 100644 > --- a/lisp/ob.el > +++ b/lisp/ob.el > @@ -113,6 +113,11 @@ remove code block execution from the C-c C-c keybind= ing." > :group 'org-babel > :type 'boolean) > > +(defcustom org-babel-noweb-regexp "<<\\(.+?\\)>>" > + "Regular expression to use to match noweb references." > + :group 'org-babel > + :type 'string) > + > (defcustom org-babel-results-keyword "RESULTS" > "Keyword used to name results generated by code blocks. > Should be either RESULTS or NAME however any capitalization may > @@ -2159,7 +2164,7 @@ block but are passed literally to the \"example-blo= ck\"." > (with-temp-buffer > (insert body) (goto-char (point-min)) > (setq index (point)) > - (while (and (re-search-forward "<<\\(.+?\\)>>" nil t)) > + (while (and (re-search-forward org-babel-noweb-regexp nil t)) > (save-match-data (setf source-name (match-string 1))) > (save-match-data (setq evaluate (string-match "\(.*\)" source-= name))) > (save-match-data --=20 Eric Schulte http://cs.unm.edu/~eschulte/