help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: changing visuals of code in emacs


From: Pascal J. Bourguignon
Subject: Re: changing visuals of code in emacs
Date: Sun, 12 Oct 2008 22:48:44 +0200
User-agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/22.2 (gnu/linux)

Andrei Alexandrescu <SeeWebsiteForEmail@erdani.org> writes:

> Hello,
>
>
> I'd like to change code visuals for the D programming language as
> follows. I'd like the construct:
>
> Symbol!(balanced_parens)
>
> to be visualized as:
>
> Symbol«balanced_parens»
>
> The chevrons should appear electrically when I type the closing
> ")". Note that balanced_parens could in turn nested use of "!()", as
> in A!(B!(C)), and they should all be paired using chevrons. The
> underlying file should not contain the chevrons, just the ASCII
> representation using "!(" and ")".
>
> I haven't done much elisp programming beyond the common .emacs
> configuration tricks, so I don't know where to start. A few searches
> suggested that overlays may be what I'm looking for... any ideas and
> pointers? Thank you.

If you didn't ask for recursion, this could have be done with
font-locking.

(font-lock-add-keywords nil
  '(("\\(!(\\)[^()]*\\()\\)" 
     0 (progn
         (compose-region (match-beginning 1) (match-end 1) ?« 'decompose-region)
         (compose-region (match-beginning 2) (match-end 2) ?» 'decompose-region)
         nil))))

But since this uses regular expressions, it won't work for recursive
!(...).


You can still use compose-region, but you'll have to implement the
parsing yourself.  Perhaps this could be hooked on the code doing the
parenthesis balancing?


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
You never feed me.
Perhaps I'll sleep on your face.
That will sure show you.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]