[ESS] Enhanced syntax highlighting (R-wiki style)
Vitalie Spinu
vitosmail at rambler.ru
Mon Jul 7 12:01:03 CEST 2008
Dear ESS useRs,
I changed the predefined keywords for syntax highlighting in R so that the
functions face (and optionally data.frames and vectors) could be
customised.
In case somebody is also interested in improving his/her code salad I
provide the following lines which should be placed in .emacs file.
A short description:
First, a new face font-lock-my-functions-face is defined (you can
customise it here or interactively, see EDIT>Text Properties> Display
Faces ). To change into R-wiki style place (:foreground "ForestGreen"
:weight bold ) in the font definition section below.
Second, the reg expression is defined.
If you also wish to highlight data.frames and vectors, preceding "[",
change the regexp string to :
"\\s\"?\\(\\(\\sw\\|\\s_\\)+\\(<-\\)?\\)\\s\"?*\\s-*[([]"
Finally the highlight pattern is appended to lists of keywords for
ess-mode and inferior-ess-mode.
Best,
Vitally.
________________________________________________________________
;;Declaration of new font face in font-lock-faces group.
;;You can customize it directly below, or via [Edit][Text
Properties][Display Faces]
;;To see all valid colors go to [Edit][Text Properties][Display Colors]
(defface font-lock-my-functions-face
'((((class color) (min-colors 88) (background light))
(:foreground "RoyalBlue4" ) ;;see customisation buffer for vald keys
;(:foreground "ForestGreen" :weight bold :slant italic) ;R-wiki style
))
"Font Lock mode face used to highlight function names."
:group 'font-lock-faces)
(defvar font-lock-my-functions-face 'font-lock-my-functions-face
"Face name to use for functions.")
(defvar ess-R-my-functions-name-regexp
"\\s\"?\\(\\(\\sw\\|\\s_\\)+\\(<-\\)?\\)\\s\"?*\\s-*("
"Regexp for function names")
(defvar functions-color ;;define the highlighter
(list
(cons ess-R-my-functions-name-regexp '(1 font-lock-my-functions-face
keep) ))
"Defines highlighting pattern for functions")
;; Append the highlighter to lists of predefined patterns:
(setq ess-R-mode-font-lock-keywords
(append ess-R-mode-font-lock-keywords functions-color ))
(setq inferior-ess-R-font-lock-keywords
(append inferior-ess-R-font-lock-keywords functions-color))
More information about the ESS-help
mailing list