Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

l'analyseur de code source

14 réponses
Avatar
Rakotomandimby mihamina
Bonjour,

Comment s'appellent en général les outils qui permettent la coloration
syntaxique? Des parseurs? Est-ce le même outil qui défini les blocs (les
portion entre accolades, parenthèses et indentées)?

Que vaut celui d'Emacs par rapport à ceux de la concurrence
(Kate/Kdevelop/Quanta, Eclipse,...) d'une manière générale (pour les
langages pour lesquels il existe un mode) en terme de performance et de
pérénité?

Je me posais la question juste "comme ça"...

10 réponses

1 2
Avatar
Vincent Belaïche
Rakotomandimby mihamina a écrit :
Bonjour,

Comment s'appellent en général les outils qui permettent la coloration
syntaxique? Des parseurs? Est-ce le même outil qui défini les blocs (les


Un "parseur" est un analyseur syntaxique, c'est un module qui permet à
un programme de lire un fichier écrit dans une certaine grammaire.

Dans le cas de la coloration syntaxique je ne suis pas sûr qu'on puisse
parler d'analyseur syntaxique (même s'il y a une analyse syntaxique de
faite) car l'Editeur n'extrait pas vraiment toute l'information contenu
dans le fichier faisant l'objet de l'analyse, mais ne reconnait que
certaine construction pour les rendre plus visible.

portion entre accolades, parenthèses et indentées)?




Pour les parenthèses je crois que c'est traité à un bas niveau dans
Emacs pour des raisons de performance, et parce qu'Emacs est basé sur du
Lisp, mais pour le reste (coloration, indentation, etc...), c'est fait
en général par le même module qui fournit le mode majeur d'édition.
Note qu'en général le but des modules fournissant un certain mode
d'édition (comprenant notamment l'accentuation de la syntaxe par
coloration/indentation/casse) n'est pas de re-indenté un code source
existant (il existe des programme spécialisé pour ça), mais de permettre
une bonne indentation au cours de la frappe et de la création de nouveau
code.

Que vaut celui d'Emacs par rapport à ceux de la concurrence
(Kate/Kdevelop/Quanta, Eclipse,...) d'une manière générale (pour les
langages pour lesquels il existe un mode) en terme de performance et de
pérénité?



Je en connais pas bien ce que font les produits alternatifs à Emacs,
mais je pense que pour la pérénité, et l'évolutivité, Emacs est le
meilleur choix (pas étonnant de la part de qq qui suit ce forum).

Note que certain environnment fournisse un éditeur en plus de plein
d'autres choses (compilateur, déboggueur). En général rien n'interdit
d'utiliser Emacs à la place de l'editeur intégré à ces environnements.

Je me posais la question juste "comme ça"...



A+,
Vincent.
Avatar
Rakotomandimby mihamina
Vincent Belaïche wrote:
Comment s'appellent en général les outils qui permettent la coloration
syntaxique? Des parseurs? Est-ce le même outil qui défini les blocs (les


Un "parseur" est un analyseur syntaxique, c'est un module qui permet à
un programme de lire un fichier écrit dans une certaine grammaire.
Dans le cas de la coloration syntaxique je ne suis pas sûr qu'on puisse
parler d'analyseur syntaxique (même s'il y a une analyse syntaxique de
faite) car l'Editeur n'extrait pas vraiment toute l'information contenu
dans le fichier faisant l'objet de l'analyse, mais ne reconnait que
certaine construction pour les rendre plus visible.



OK.

portion entre accolades, parenthèses et indentées)?


Pour les parenthèses je crois que c'est traité à un bas niveau dans
Emacs pour des raisons de performance, et parce qu'Emacs est basé sur du
Lisp, mais pour le reste (coloration, indentation, etc...), c'est fait
en général par le même module qui fournit le mode majeur d'édition.
Note qu'en général le but des modules fournissant un certain mode
d'édition (comprenant notamment l'accentuation de la syntaxe par
coloration/indentation/casse) n'est pas de re-indenté un code source
existant (il existe des programme spécialisé pour ça), mais de permettre
une bonne indentation au cours de la frappe et de la création de nouveau
code.



Il y a pourtant un truc genre "M-x indent-region" que j'utilise
régulièrement. Surtout pour le *HTML.

Que vaut celui d'Emacs par rapport à ceux de la concurrence
(Kate/Kdevelop/Quanta, Eclipse,...) d'une manière générale (pour les
langages pour lesquels il existe un mode) en terme de performance et
de pérénité?


Je en connais pas bien ce que font les produits alternatifs à Emacs,
mais je pense que pour la pérénité, et l'évolutivité, Emacs est le
meilleur choix



... pour l'évolutivité, je ne conteste pas.
Emacs pourra-t-il encore tenir tete à ces autres IDE dans 5~7 ans?
Il y en a qui ont des satannées fonctionalités, hein...

(pas étonnant de la part de qq qui suit ce forum).



Ca se discute.
Avatar
pjb
Rakotomandimby mihamina writes:

Vincent Belaïche wrote:
Comment s'appellent en général les outils qui permettent la
coloration syntaxique? Des parseurs? Est-ce le même outil qui
défini les blocs (les


Un "parseur" est un analyseur syntaxique, c'est un module qui permet
à un programme de lire un fichier écrit dans une certaine grammaire.
Dans le cas de la coloration syntaxique je ne suis pas sûr qu'on
puisse parler d'analyseur syntaxique (même s'il y a une analyse
syntaxique de faite) car l'Editeur n'extrait pas vraiment toute
l'information contenu dans le fichier faisant l'objet de l'analyse,
mais ne reconnait que certaine construction pour les rendre plus
visible.



OK.

portion entre accolades, parenthèses et indentées)?


Pour les parenthèses je crois que c'est traité à un bas niveau dans
Emacs pour des raisons de performance, et parce qu'Emacs est basé
sur du Lisp, mais pour le reste (coloration, indentation, etc...),
c'est fait en général par le même module qui fournit le mode majeur
d'édition.
Note qu'en général le but des modules fournissant un certain mode
d'édition (comprenant notamment l'accentuation de la syntaxe par
coloration/indentation/casse) n'est pas de re-indenté un code source
existant (il existe des programme spécialisé pour ça), mais de
permettre une bonne indentation au cours de la frappe et de la
création de nouveau code.



Il y a pourtant un truc genre "M-x indent-region" que j'utilise
régulièrement. Surtout pour le *HTML.

Que vaut celui d'Emacs par rapport à ceux de la concurrence
(Kate/Kdevelop/Quanta, Eclipse,...) d'une manière générale (pour
les langages pour lesquels il existe un mode) en terme de
performance et de pérénité?


Je en connais pas bien ce que font les produits alternatifs à Emacs,
mais je pense que pour la pérénité, et l'évolutivité, Emacs est le
meilleur choix



... pour l'évolutivité, je ne conteste pas.
Emacs pourra-t-il encore tenir tete à ces autres IDE dans 5~7 ans?
Il y en a qui ont des satannées fonctionalités, hein...



Lire:
http://steve-yegge.blogspot.com/2008/04/xemacs-is-dead-long-live-xemacs.html

(pas étonnant de la part de qq qui suit ce forum).



Ca se discute.




--
__Pascal Bourguignon__ http://www.informatimago.com/

WARNING: This product warps space and time in its vicinity.
Avatar
Vincent Belaïche
Rakotomandimby mihamina a écrit :


Il y a pourtant un truc genre "M-x indent-region" que j'utilise
régulièrement. Surtout pour le *HTML.




Dans l'info node "(ccmode)Indentation Commands" on peut lire par exemple:

Changing the "hanginess" of a brace and then reindenting, will not move
the brace to a different line. For this, you're better off getting an
external program like GNU `indent', which will rearrange brace
location, amongst other things.


A+
Vincent
Avatar
Matthieu Moy
Vincent Belaïche writes:

Rakotomandimby mihamina a écrit :


Il y a pourtant un truc genre "M-x indent-region" que j'utilise
régulièrement. Surtout pour le *HTML.




Dans l'info node "(ccmode)Indentation Commands" on peut lire par exemple:

Changing the "hanginess" of a brace and then reindenting, will not move
the brace to a different line. For this, you're better off getting an
external program like GNU `indent', which will rearrange brace
location, amongst other things.



Oui, M-x indent-region RET fait de l'indentation, et seulement de
l'indentation. Mais il n'empêche que ça marche très bien pour
ré-indenter du code mal indenté à la base.

--
Matthieu
Avatar
Vincent Belaïche
Matthieu Moy a écrit :
Vincent Belaïche writes:

Rakotomandimby mihamina a écrit :

Il y a pourtant un truc genre "M-x indent-region" que j'utilise
régulièrement. Surtout pour le *HTML.




Dans l'info node "(ccmode)Indentation Commands" on peut lire par exemple:

Changing the "hanginess" of a brace and then reindenting, will not move
the brace to a different line. For this, you're better off getting an
external program like GNU `indent', which will rearrange brace
location, amongst other things.



Oui, M-x indent-region RET fait de l'indentation, et seulement de
l'indentation. Mais il n'empêche que ça marche très bien pour
ré-indenter du code mal indenté à la base.



Je n'ai pas dit le contraire. Bien au contraire cette fonction est
vraiment excellente et je l'utilise très souvent

(au fait dans un autre fil je me demandais comment remapper le quand
on est windozien, car comme chacun sait C-M- (indent-region) n'est pas
accessible sur un clavier français sous MS-Ouindoze. Ca a fini en eau de
boudin et j'en suis toujours au même point...

Pour revenir à indent-region, ce que je voulais dire c'est que si on
fait tourner sur du code qui est mal découpé en lignes, alors le
résultat ne sera pas aussi bon qu'avec un programme externe. Si c'est
juste l'indentation qui est à revoir, mais que le code est déjà bien
fichu, alors c'est OK (du moment que la quantité de lignes à indenter
reste raisonnable bien sûr).

A+,
Vincent.
Avatar
pjb
Vincent Belaïche writes:
(au fait dans un autre fil je me demandais comment remapper le quand
on est windozien, car comme chacun sait C-M- (indent-region) n'est
pas accessible sur un clavier français sous MS-Ouindoze. Ca a fini en
eau de boudin et j'en suis toujours au même point...



(global-set-key (kbd "<F9>") 'indent-region)

pour l'assigner sur F9.

--
__Pascal Bourguignon__ http://www.informatimago.com/

READ THIS BEFORE OPENING PACKAGE: According to certain suggested
versions of the Grand Unified Theory, the primary particles
constituting this product may decay to nothingness within the next
four hundred million years.
Avatar
Vincent Belaïche
Pascal J. Bourguignon a écrit :
Vincent Belaïche writes:
(au fait dans un autre fil je me demandais comment remapper le quand
on est windozien, car comme chacun sait C-M- (indent-region) n'est
pas accessible sur un clavier français sous MS-Ouindoze. Ca a fini en
eau de boudin et j'en suis toujours au même point...



(global-set-key (kbd "<F9>") 'indent-region)

pour l'assigner sur F9.




Merci, mais la question n'était pas comment faire un key-binding, mais
plutôt comment faire pour remapper le clavier pour que par exemple ²
soit équivalent à .

Ca permettrait que quelque-soit le mode, et le key-binding de de `',
`C-', `C-M-', on n'ait pas à se poser de question.

Pour info si on fait:

(keyboard-translate ?262 ?)

Ca va bien remapper ² sur , mais par contre C-² et C-M-² ne seront pas
reconnus comme C- et C-M-.

A+,
Vincent.

PS : le sujet du fil c'était "Comment faire C- quand on est une
grenouille (Croa)"
Avatar
Nicolas Goaziou
Vincent Belaïche writes:

Pour info si on fait:

(keyboard-translate ?262 ?)

Ca va bien remapper ² sur , mais par contre C-² et C-M-² ne seront
pas reconnus comme C- et C-M-.




Alors ne suffit-il pas de compléter la transposition par :

(keyboard-translate ?C-?262 ?C-?)

de même pour C-M-…

J’avoue ne pas avoir essayé ceci étant dit.

--
Nicolas Goaziou
Avatar
Luc.Habert.00__arjf
Vincent Belaïche :

Merci, mais la question n'était pas comment faire un key-binding, mais
plutôt comment faire pour remapper le clavier pour que par exemple ²
soit équivalent à .

Ca permettrait que quelque-soit le mode, et le key-binding de de `',
`C-', `C-M-', on n'ait pas à se poser de question.



La dernière fois que j'avais regardé (ça date d'emacs 21), il fallait
traduire , C- et C-M- séparément.

(define-key key-translation-map [?²] [?])
(define-key key-translation-map [(control ?²)] [(control ?)])
(define-key key-translation-map [(control meta ?²)] [(control meta ?)])
1 2