emacs και C++ syntax highlighting
Giorgos Keramidas
keramida at ceid.upatras.gr
Sat Sep 30 16:49:54 EEST 2006
On 2006-09-29 20:56, Giorgos Keramidas <keramida at ceid.upatras.gr> wrote:
> Υπάρχει τρόπος να ορίσεις δικά σου `font faces' και να ρυθμίσεις το C++
> mode να τα χρησιμοποιεί με βάση ότι συντακτικό κανόνα θέλεις.
>
> Για παράδειγμα, το παρακάτω, δημιουργεί ένα νέο `font face' με όνομα
> `font-lock-function-call-face' και ορίζει ότι θα έχει τα ίδια attributes
> με το υπάρχον `font-lock-function-name-face':
>
> (make-face "font-lock-function-call-face" nil)
> (let ((fg (face-attribute 'font-lock-function-name-face
> :foreground nil 'default)))
> (set-face-attribute 'font-lock-function-call-face nil
> :inherit 'font-lock-function-name-face))
Χμ, αυτό δεν είναι ακριβώς αυτό που δοκίμασα. Μάλλον κάτι σαν το
παρακάτω είναι πιο απλό και εξίσου λειτουργικό :)
(make-face "font-lock-function-call-face" nil)
(set-face-attribute 'font-lock-function-call-face nil
:inherit 'font-lock-function-name-face)
> Για να ορίσεις ότι το `font-lock-mode' θα χρησιμοποιεί αυτό το font face
> όταν βρίσκει function-call, μπορείς ύστερα να χρησιμοποιήσεις την
> `font-lock-add-keywords' για να ορίσεις ότι σε C και C++ modes, το Emacs θα
> χρησιμοποιεί το `font-lock-function-call-face' για να `χρωματίζει' τις
> κλήσεις συναρτήσεων.
>
> (defun gker-c++-mode-hook ()
> (font-lock-add-keywords nil
> '(("\\<\\([^\\s()]+\\)(" 1 'font-lock-function-call-face t))))
> (add-hook 'c++-mode-hook 'gker-c++-mode-hook)
>
> Το regexp matching εδώ είναι ψιλο-gay, αλλά είναι απλά ένα παράδειγμα
> από το πώς μπορείς να κάνεις match & highlight regexps με custom font
> faces σε GNU Emacs. Για syntax-based matching θα χρειαστεί λίγο πιο
... `περισσότερη δουλειά', λείπει εδώ.
More information about the Linux-greek-users
mailing list