[ESS] Highlighting matching parentheses

Frank E Harrell Jr f.harrell at vanderbilt.edu
Sun Apr 26 01:05:51 CEST 2009


Marc Schwartz wrote:
> 
> On Apr 25, 2009, at 9:13 AM, Frank E Harrell Jr wrote:
> 
>> Chris Evans wrote:
>>> Kevin W sent the following  at 24/04/2009 01:20:
>>>> I have been using show-paren-mode to highlight matching parentheses, 
>>>> but
>>>> wished that I could highlight more than one par of matching 
>>>> parentheses at a
>>>> time.  (Similar to the way Excel highlights parentheses when editing
>>>> formulas).
>>>>
>>>> I'm excited to report that I have discovered a way to do this and 
>>>> offer the
>>>> following bit from my .emacs file for your enjoyment.
>>>>
>>>> ; Download this into your emacs lisp directory
>>>> ; 
>>>> http://nschum.de/src/emacs/highlight-parentheses/highlight-parentheses.el 
>>>>
>>>> (require 'highlight-parentheses)
>>>> (setq hl-paren-colors '("gold" "IndianRed" "cyan" "green" "orange"
>>>> "magenta"))
>>>> (defun hpm-on ()
>>>>  (highlight-parentheses-mode t))
>>>> (add-hook 'ess-mode-hook 'hpm-on)
>>>> (add-hook 'inferior-ess-mode-hook 'hpm-on)
>>>>
>>>> I think you can add more colors to the list if needed.  
>>>> hl-paren-colors can
>>>> also be set via customization groups if you want.
>>>>
>>>> Kevin Wright
>>> I not infrequently mess up with parentheses so this sounded very good to
>>> me too, though I wasn't entirely sure what Excel had that was being
>>> emulated. I had a quick play with Excel and still wasn't that sure.
>>> However, I think I have installed highlight-parentheses.el correctly and
>>> put those lines (above) where they should be but I'm not seeing anything
>>> different in ESS.
>>> Could it be that I'm using XEmacs (21.4.21 on Windoze XP sp3)?  I have
>>> downloaded highlight-parentheses.el at:
>>>     D:\XEmacs\site-packages\lisp\highlight-parentheses.el
>>> and put those lines above in
>>>     C:\Documents and Settings\admin\.xemacs\init.el
>>> which are the appropriate places in XEmacs in my set up I think.
>>> However, I don't see any change as I say.
>>> Several questions for people, including, and great thanks to, Kevin, but
>>> also perhaps to fellow XEmacs users.
>>> 1) what should I see that would indicate that things are working (I'll
>>> put my glasses on!)?
>>> 2) what could I do that would confirm that XEmacs has loaded those lines
>>> correctly, invoking highlight-parentheses.el?
>>> TIA and continued thanks to everyone who makes ESS so wonderful.
>>> Chris
>>
>> I installed the new .el file in /usr/share/emacs22/site-lisp/ess and 
>> added the above lines to .emacs, then restarted Emacs22.  I see gold 
>> highlighting, but I don't see usage of any of the other colors listed.
> 
> Here is a PNG screen grab from OSX using Emacs 23.  Copy and paste the 
> following into a buffer:
> 
>   (((((((((Some Text)))))))))
> 
> Then *move* the cursor along the parens and if all is well, you should 
> see cycling of the colors as you go in or out from one pairing of parens 
> to another.
> 
> Note that it looks like the color nesting is limited to perhaps five 
> levels as, after that the outer parens are just black.
> 
> You can ignore the background yellow line highlight, which is not part 
> of this but something else that I do to highlight the current line of 
> the cursor.
> 
> I slightly modified the above code to add hooks for text and tex modes:
> 
> (add-hook 'tex-mode-hook 'hpm-on)
> (add-hook 'text-mode-hook 'hpm-on)
> 
> and set my colors as:
> 
>   (setq hl-paren-colors '("gold" "red" "blue" "green" "orange"))
> 
> Also, from what I can tell, this will work with emacs >=22, so those on 
> X[emacs] 21 may not be able to use this.
> 
> Thanks to Kevin for this.
> 
> HTH,
> 
> Marc Schwartz
> 
> 
> 
> ------------------------------------------------------------------------
> 

Thanks Marc for the improvements and the demo.  I see my main problem 
now: I was expecting the color coding to go across lines but it only 
works within a line.

Frank

-- 
Frank E Harrell Jr   Professor and Chair           School of Medicine
                      Department of Biostatistics   Vanderbilt University




More information about the ESS-help mailing list