[ESS] trouble with the colored string in R chunk

LaurentEss |@urente@@ @end|ng |rom |ree@|r
Sat Feb 7 17:13:36 CET 2026


Ok, thank you for this information.

I must have a problem with my configuration but I feel that I will have 
trouble finding where my problem comes from.

Best regards


Le 06/02/2026 à 15:50, Naresh Gurbuxani a écrit :
> With my default setup, I see character strings rendered in different colour.  Some keywords like “library” and “function” are also shown in different colour.
>
>
> Sent from my iPhone
>
>> On Feb 2, 2026, at 12:06 PM, LaurentEss via ESS-help <ess-help using r-project.org> wrote:
>>
>> Dear Ess-Help list,
>>
>> I work with noweb files .Rnw and polymode. I can’t get the string coloring in the R chunks of my files. And yet I searched for a while with the help of chatGPT. Is it possible ? How do we get the string colored in the R chunk ? I succeed to have the string coloring in the .R files but not in the R chunk. When I do M-: major-mode in a R chunk of my .Rnw file I have the answer ess-r-mode but the strings are not colored.
>>
>> Thank you very much for your help.
>>
>> Laurent
>>
>>
>> ----o<--------------------------------------------------------------------------->o-----------------
>>
>> Here below is what I put in my init.el file.
>>
>> ;; -*- lexical-binding: t; -*-
>> ;;
>> ;; highlighting R code for ESS in R chunk in .
>> ;;
>> (with-eval-after-load 'ess-r-mode
>>
>>    ;; 🔹 Catégories officielles ESS
>>    (setq ess-R-font-lock-keywords
>>          '((ess-R-fl-keyword:keywords   . t)
>>            (ess-R-fl-keyword:constants  . t)
>>            (ess-R-fl-keyword:modifiers  . t)
>>            (ess-R-fl-keyword:fun-defs   . t)
>>            (ess-R-fl-keyword:assign-ops . t)
>>            (ess-R-fl-keyword:%op%       . t)
>>            (ess-fl-keyword:fun-calls    . t)
>>            (ess-fl-keyword:numbers      . t)
>>            (ess-fl-keyword:operators    . t)
>>            (ess-fl-keyword:delimiters   . t)
>>            (ess-fl-keyword:=            . t)
>>            (ess-R-fl-keyword:F&T        . t)))
>>
>>    ;; 🔹 Ajouter fonctions R et builtins supplémentaires
>>    (setq ess-R-font-lock-keywords
>>          (append ess-R-font-lock-keywords
>> '(("\\<\\(library\\|require\\|source\\|setwd\\|read\\.csv\\|readRDS\\)\\>"
>>                     . font-lock-builtin-face))))
>>
>>
>>    ;; 🔹 Coloration des chaînes
>>    (font-lock-add-keywords
>>     'ess-r-mode
>>     '(("\"[^\"]*\"" . font-lock-string-face)
>>       ("'[^']*'"   . font-lock-string-face)))
>>
>>
>>    ;; 🔹 Ajouter toutes les règles supplémentaires avec font-lock-add-keywords
>>    (font-lock-add-keywords
>>     'ess-r-mode
>>     '(
>>       ;; Arguments nommés : x = ...
>>       ("\\(\\_<[[:alpha:].]+\\_>\\)[[:space:]]*="
>>        1 font-lock-variable-name-face)
>>
>>       ;; Pipes : %>% %<>% %$%
>>       ("%>%\\|%<>%\\|%\\$%" . font-lock-keyword-face)
>>
>>       ;; Fonctions builtins classiques
>>   ("\\<\\(library\\|require\\|source\\|return\\|stop\\|warning\\|message\\)\\>"
>>        . font-lock-builtin-face)
>>
>>       ;; Nombres
>>       ("\\<\\([0-9]+\\(\\.[0-9]*\\)?\\)\\>" . font-lock-constant-face)
>>       ))
>>
>>    ;; 🔹 Pretty symbols pour <- etc.
>>    (setq ess-r-prettify-symbols t)
>>
>>    ;; 🔹 Outils utiles
>>    (add-hook 'ess-r-mode-hook #'outline-minor-mode)
>>    (add-hook 'ess-r-mode-hook #'hl-todo-mode))
>>
>>
>> ;; Recoloration automatique des chunks R polymode
>> (with-eval-after-load 'poly-noweb
>>    (add-hook 'poly-noweb+r-mode-hook
>>              (lambda ()
>>                ;; activer font-lock si ce n'est pas déjà fait
>>                (font-lock-mode 1)
>>                (font-lock-ensure))))
>>
>>
>>
>> ;; Wrapper interactif pour recoloration
>> (defun my/ess-r-font-lock-ensure ()
>>    "Recolorer le buffer ESS-R courant."
>>    (interactive)
>>    (font-lock-ensure))
>>
>> ;; Raccourci dans tous les chunks R de polymode
>> (with-eval-after-load 'poly-noweb
>>    (define-key poly-noweb+r-mode-map (kbd "C-c C-l") #'my/ess-r-font-lock-ensure))
>>
>>
>>
>> (with-eval-after-load 'poly-noweb
>>    ;; Hook pour tous les chunks R à l'ouverture
>>    (add-hook 'poly-noweb+r-mode-hook
>>              (lambda ()
>>                ;; activer font-lock si ce n'est pas déjà fait
>>                (font-lock-mode 1)
>>
>>                ;; Coloration personnalisée
>>                (font-lock-add-keywords
>>                 nil
>>                 '(("\"[^\"]*\"" . font-lock-string-face)
>>                   ("'[^']*'"   . font-lock-string-face)))
>>
>>                ;; Recoloration immédiate
>>                (font-lock-ensure)
>>
>>                ;; Outline et TODO
>>                (outline-minor-mode 1)
>>                (hl-todo-mode 1))))
>>
>> ;; 🔹 Recolorer tous les chunks R déjà ouverts
>> (dolist (buf (buffer-list))
>>    (with-current-buffer buf
>>      (when (derived-mode-p 'poly-noweb+r-mode)
>>        ;; s'assurer que font-lock est actif
>>        (font-lock-mode 1)
>>        ;; appliquer les couleurs de chaînes
>>        (font-lock-add-keywords
>>         nil
>>         '(("\"[^\"]*\"" . font-lock-string-face)
>>           ("'[^']*'"   . font-lock-string-face)))
>>        (font-lock-ensure))))
>>
>> ______________________________________________
>> ESS-help using r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/ess-help



More information about the ESS-help mailing list