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