question pour des champions
Le
Gilles Pion

Tiens, puisqu'il semble y avoir des personnes compétentes par ici, est-ce que
quelqu'un saurait répondre à cette question que j'ai posée il y a peu sur
superuser.com sans avoir de réponse jusqu'ici:
http://superuser.com/questions/583552/prevent-emacs-shell-mode-to-apply-string-face-to-output-lines-containing-a-colon
--
Gilles Pion
quelqu'un saurait répondre à cette question que j'ai posée il y a peu sur
superuser.com sans avoir de réponse jusqu'ici:
http://superuser.com/questions/583552/prevent-emacs-shell-mode-to-apply-string-face-to-output-lines-containing-a-colon
--
Gilles Pion
Ben des fois, juste lancer un grep sur une sous-partie du code lisp
d'Emacs, ça peut aider... Pas besoin de magie noire :)
En cherchant font-lock-string-face dans shell.el, je trouve ceci :
(defvar shell-font-lock-keywords
'(("[ t]\([+-][^ tn]+\)" 1 font-lock-comment-face)
("^[^ tn]+:.*" . font-lock-string-face)
("^\[[1-9][0-9]*\]" . font-lock-string-face))
"Additional expressions to highlight in Shell mode.")
et donc en adaptant ça à tes besoins, cela devrait fonctionner... Je
pense que tu peux soit modifier l'une de ces expressions régulières, ou
en ajouter une qui évitera string-face dans les cas que tu souhaites.
--
DW
Gilles Pion
cf. shell-font-lock-keywords dans shell.el.
;;; dans shell.el, ne pas décorer les lignes du type "^foo: bar"
(setq local/unwanted-shell-font-lock-keywords-entry
'("^[^ tn]+:.*" . font-lock-string-face))
(eval-after-load "shell"
'(setq shell-font-lock-keywords
(delete local/unwanted-shell-font-lock-keywords-entry
shell-font-lock-keywords)))
Testé un peu trop vite pour être sûr que ça marche  ©.
Et attention aux possibles futures modifications de cet élément de
shell-font-lock-keywords.
--
Jérémie Courrèges-Anglas
Empreinte PGP : 61DB D9A0 00A4 67CF 2A90 8961 6191 8FBF 06A1 1494
Le pire c'est que j'avais trouvé aussi ce bout de code, mais après avoir
redéfini cette variable sans le deuxième élément j'avais toujours la
colorisation.
Je viens de m'apercevoir que la modif ne s'applique qu'aux buffers shells
ouverts *apres* avoir modifié la variable.
--
Gilles Pion
Ok ça marche après avoir utilisé un autre nom que
"local/unwanted-shell-font-lock-keywords-entry" (quelle est cette sorte de elisp
qui accepte un "/" dans les symboles ?)
--
Gilles Pion
Oh bah Emacs Lisp ; j'utilise un préfixe jca/ pour pas mal de tru cs dans
ma conf, cf. (info "(elisp) Symbol Type") pour les caractères accept és
dans un nom de symbole.
--
Jérémie Courrèges-Anglas
Empreinte PGP : 61DB D9A0 00A4 67CF 2A90 8961 6191 8FBF 06A1 1494
Tiens, pour ma part j'utilise "my-" en préfixe pour *exactement* le même usage!
Mais et en effet ça marche, je devais avoir un autre typo dans mon source
(pourtant me semblait bien avoir juste fait copier/coller), j'ai cru que ça
venait de là et j'ai corrigé le nom de variable.
Reste qu'il me serait intéressant de comprendre la raison d'avoir fait ces choix
par défaut pour la colorisation du stdout dans les buffers shell?
Pour cette regexp particulière par exemple, ça fontifie comme "string" les
lignes commençant par une suite de caractères "non-espace" suivis d'un ":".
--
Gilles Pion
[...]
Ah voui, j'ai essayé de chercher ce matin-là , mais j'ai abandonn é après
une dizaine de minutes sans réponse de la part de git (le dépà ´t d'emacs
est assez gros et complexe).
Je suppose que c'est pour matcher les warnings des compilateurs et autres
grep -l, une version canada dry de compilation-mode, en somme.
--
Jérémie Courrèges-Anglas
Empreinte PGP : 61DB D9A0 00A4 67CF 2A90 8961 6191 8FBF 06A1 1494
Pour moi, ça ressemble furieusement à la sortie d'un "grep truc *" où les noms des fichiers matchant sont suivis de ':'
En effet, mais cette regexp matche aussi bien d'autre choses et je pense que
pour faire un grep dans emacs on va plutôt utiliser la function définie dans
grep.el comme l'a évoqué entre les lignes jca.
--
Gilles Pion