[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.