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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Damien Wyart
Le #25350412
* 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



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
jca+news
Le #25350462
Bonjour,

Gilles Pion
Tiens, puisqu'il semble y avoir des personnes compétentes par ici, e st-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-s tring-face-to-output-lines-containing-a-colon



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
Gilles Pion
Le #25351702
Ref:

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.



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
Gilles Pion
Le #25351762
Ref:

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 ©.




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
jca+news
Le #25352182
Gilles Pion
Ref:

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 ©.




Ok ça marche après avoir utilisé un autre nom que
"local/unwanted-shell-font-lock-keywords-entry" (quelle est cette sorte d e elisp
qui accepte un "/" dans les symboles ?)



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
Gilles Pion
Le #25352482
Ref:
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 ?)



Oh bah Emacs Lisp ; j'utilise un préfixe jca/ pour pas mal de trucs dans
ma conf, cf. (info "(elisp) Symbol Type") pour les caractères acceptés
dans un nom de symbole.



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
jca+news
Le #25353772
Gilles Pion
[...]

Reste qu'il me serait intéressant de comprendre la raison d'avoir fa it ces choix
par défaut pour la colorisation du stdout dans les buffers shell?



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).

Pour cette regexp particulière par exemple, ça fontifie comme " string" les
lignes commençant par une suite de caractères "non-espace" suiv is d'un ":".



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
duthen.cnv
Le #25355492
Le samedi 20 avril 2013 09:18:56 UTC+2, Gilles Pion a écrit :

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 sh ell?

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'u n ":".




Pour moi, ça ressemble furieusement à la sortie d'un "grep truc *" où les noms des fichiers matchant sont suivis de ':'
Gilles Pion
Le #25356252
Ref:

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 ":".




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
Publicité
Poster une réponse
Anonyme