Je voulais creer un mode perso dans emacs.
C'est un mode tres simple qui ne comporte aucune indentation. Je veux
juste qu'il me colorie les mots cles et les commentaires.
Compte tenu de mon niveaux debutant-novice en LISP-emacs, c'est deja un
exploit de mettre les couleurs les mots cles avec les explications
trouvees sur le net et faire mon fichier perso.el.
Mais pour les commentaires c'est pas encore au point.
J'ecris enormement de fichier input pour mes simulations numeriques et
je trouve le mode fundamental un peu tristounet l'edition de ces
fichiers.La syntaxe de ces fichiers n'est pas tres sophistiquee, mais
une coloration sous emacs permet d'eviter egalement certaines erreurs.
Mes fichiers input utilise le caractere "*" en debut de ligne pour
commenter toute la ligne. (meme principe que pour le "c" en mode
fortran pour le fortran 77)
mais il utilise "*" egalement comme operateur de multiplication (qui
n'est jamais en debut de ligne, la ligne commence par "calc" pour etre
plus precis).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric Reinbold
"hakpac" writes:
Bonjour,
Je voulais creer un mode perso dans emacs. C'est un mode tres simple qui ne comporte aucune indentation. Je veux juste qu'il me colorie les mots cles et les commentaires.
Compte tenu de mon niveaux debutant-novice en LISP-emacs, c'est deja un exploit de mettre les couleurs les mots cles avec les explications trouvees sur le net et faire mon fichier perso.el. Mais pour les commentaires c'est pas encore au point.
J'ecris enormement de fichier input pour mes simulations numeriques et je trouve le mode fundamental un peu tristounet l'edition de ces fichiers.La syntaxe de ces fichiers n'est pas tres sophistiquee, mais une coloration sous emacs permet d'eviter egalement certaines erreurs.
Mes fichiers input utilise le caractere "*" en debut de ligne pour commenter toute la ligne. (meme principe que pour le "c" en mode fortran pour le fortran 77) mais il utilise "*" egalement comme operateur de multiplication (qui n'est jamais en debut de ligne, la ligne commence par "calc" pour etre plus precis).
Je voulais creer un mode perso dans emacs.
C'est un mode tres simple qui ne comporte aucune indentation. Je veux
juste qu'il me colorie les mots cles et les commentaires.
Compte tenu de mon niveaux debutant-novice en LISP-emacs, c'est deja un
exploit de mettre les couleurs les mots cles avec les explications
trouvees sur le net et faire mon fichier perso.el.
Mais pour les commentaires c'est pas encore au point.
J'ecris enormement de fichier input pour mes simulations numeriques et
je trouve le mode fundamental un peu tristounet l'edition de ces
fichiers.La syntaxe de ces fichiers n'est pas tres sophistiquee, mais
une coloration sous emacs permet d'eviter egalement certaines erreurs.
Mes fichiers input utilise le caractere "*" en debut de ligne pour
commenter toute la ligne. (meme principe que pour le "c" en mode
fortran pour le fortran 77)
mais il utilise "*" egalement comme operateur de multiplication (qui
n'est jamais en debut de ligne, la ligne commence par "calc" pour etre
plus precis).
Je voulais creer un mode perso dans emacs. C'est un mode tres simple qui ne comporte aucune indentation. Je veux juste qu'il me colorie les mots cles et les commentaires.
Compte tenu de mon niveaux debutant-novice en LISP-emacs, c'est deja un exploit de mettre les couleurs les mots cles avec les explications trouvees sur le net et faire mon fichier perso.el. Mais pour les commentaires c'est pas encore au point.
J'ecris enormement de fichier input pour mes simulations numeriques et je trouve le mode fundamental un peu tristounet l'edition de ces fichiers.La syntaxe de ces fichiers n'est pas tres sophistiquee, mais une coloration sous emacs permet d'eviter egalement certaines erreurs.
Mes fichiers input utilise le caractere "*" en debut de ligne pour commenter toute la ligne. (meme principe que pour le "c" en mode fortran pour le fortran 77) mais il utilise "*" egalement comme operateur de multiplication (qui n'est jamais en debut de ligne, la ligne commence par "calc" pour etre plus precis).
Un autoload bien placé t'aurais évité de charger ce mode quand tu ne t'en sert pas ...
-- Matthieu
Pascal Bourguignon
"hakpac" writes:
Bonjour,
Je voulais creer un mode perso dans emacs. C'est un mode tres simple qui ne comporte aucune indentation. Je veux juste qu'il me colorie les mots cles et les commentaires.
Alors tu n'as pas vraiment besoin d'un mode. Une simple fonction que tu mettras en hook sur les modes ou les extensions de fichiers que tu utilises qui installera les parametres de font-locking que tu veux.
Mes fichiers input utilise le caractere "*" en debut de ligne pour commenter toute la ligne. (meme principe que pour le "c" en mode fortran pour le fortran 77) mais il utilise "*" egalement comme operateur de multiplication (qui n'est jamais en debut de ligne, la ligne commence par "calc" pour etre plus precis).
mais colorie aussi "en commentaire" l'operateur * qui ajoute alors plus de confusion.
Quelqu'un pourait m'aider a contourner ce probleme svp?
Voici un exemple "sophistiqué" de font-locking que j'ai implémenté pour un source assembleur.
Dans les cas simples, on peut mettre directement les regexp dans l'argument de font-lock-add-keywords. Mais si on a un peu d'analyse syntaxique à faire, on peut y mettre une fonction qui fasse le travail.
Bien lire la doc de font-lock-add-keywords, font-lock-keywords, aussi bien C-h f que info.
(eval-when-compile (require 'cl) (load "cl-seq" t t) (load "cl-macs" t t)) (require 'pjb-cl) (require 'asm-mode) (require 'font-lock)
-- __Pascal Bourguignon__ http://www.informatimago.com/ I need a new toy. Tail of black dog keeps good time. Pounce! Good dog! Good dog!
"hakpac" <hakpac@yahoo.fr> writes:
Bonjour,
Je voulais creer un mode perso dans emacs.
C'est un mode tres simple qui ne comporte aucune indentation. Je veux
juste qu'il me colorie les mots cles et les commentaires.
Alors tu n'as pas vraiment besoin d'un mode. Une simple fonction que
tu mettras en hook sur les modes ou les extensions de fichiers que tu
utilises qui installera les parametres de font-locking que tu veux.
Mes fichiers input utilise le caractere "*" en debut de ligne pour
commenter toute la ligne. (meme principe que pour le "c" en mode
fortran pour le fortran 77)
mais il utilise "*" egalement comme operateur de multiplication (qui
n'est jamais en debut de ligne, la ligne commence par "calc" pour etre
plus precis).
mais colorie aussi "en commentaire" l'operateur *
qui ajoute alors plus de confusion.
Quelqu'un pourait m'aider a contourner ce probleme svp?
Voici un exemple "sophistiqué" de font-locking que j'ai implémenté
pour un source assembleur.
Dans les cas simples, on peut mettre directement les regexp dans
l'argument de font-lock-add-keywords. Mais si on a un peu d'analyse
syntaxique à faire, on peut y mettre une fonction qui fasse le
travail.
Bien lire la doc de font-lock-add-keywords, font-lock-keywords, aussi
bien C-h f que info.
(eval-when-compile
(require 'cl)
(load "cl-seq" t t)
(load "cl-macs" t t))
(require 'pjb-cl)
(require 'asm-mode)
(require 'font-lock)
Je voulais creer un mode perso dans emacs. C'est un mode tres simple qui ne comporte aucune indentation. Je veux juste qu'il me colorie les mots cles et les commentaires.
Alors tu n'as pas vraiment besoin d'un mode. Une simple fonction que tu mettras en hook sur les modes ou les extensions de fichiers que tu utilises qui installera les parametres de font-locking que tu veux.
Mes fichiers input utilise le caractere "*" en debut de ligne pour commenter toute la ligne. (meme principe que pour le "c" en mode fortran pour le fortran 77) mais il utilise "*" egalement comme operateur de multiplication (qui n'est jamais en debut de ligne, la ligne commence par "calc" pour etre plus precis).
mais colorie aussi "en commentaire" l'operateur * qui ajoute alors plus de confusion.
Quelqu'un pourait m'aider a contourner ce probleme svp?
Voici un exemple "sophistiqué" de font-locking que j'ai implémenté pour un source assembleur.
Dans les cas simples, on peut mettre directement les regexp dans l'argument de font-lock-add-keywords. Mais si on a un peu d'analyse syntaxique à faire, on peut y mettre une fonction qui fasse le travail.
Bien lire la doc de font-lock-add-keywords, font-lock-keywords, aussi bien C-h f que info.
(eval-when-compile (require 'cl) (load "cl-seq" t t) (load "cl-macs" t t)) (require 'pjb-cl) (require 'asm-mode) (require 'font-lock)
Un autoload bien placé t'aurais évité de charger ce mode quand tu ne t'en sert pas ...
-- Matthieu
Le problème... ...c'est que je m'en sers tout le temps.
hakpac
Merci pour vos reponses.
J'ai repris tous les font-lock-comment-face d'Eric, ca rapproche un peu de ce que je voulais. Il ne me colorie pas toute la ligne commencant par "* ---------" (il le fait pour les "**" cepandant). Si Eric veut bien m'explique ce que veut dire les chaines entre quote de font-lock-comment-face, je pourrai ameliorer un peu mon niveau.
Merci quand meme a Pascal; c'est trop sophistique comme methode. Et vu mon niveau, c'est infaisable.
encore merci a Mathieu pour le lien.
-Hakpac-
Merci pour vos reponses.
J'ai repris tous les font-lock-comment-face d'Eric, ca rapproche un peu
de ce que je voulais.
Il ne me colorie pas toute la ligne commencant par "* ---------" (il le
fait pour les "**" cepandant).
Si Eric veut bien m'explique ce que veut dire les chaines entre quote
de font-lock-comment-face,
je pourrai ameliorer un peu mon niveau.
Merci quand meme a Pascal; c'est trop sophistique comme methode. Et vu
mon niveau, c'est infaisable.
J'ai repris tous les font-lock-comment-face d'Eric, ca rapproche un peu de ce que je voulais. Il ne me colorie pas toute la ligne commencant par "* ---------" (il le fait pour les "**" cepandant). Si Eric veut bien m'explique ce que veut dire les chaines entre quote de font-lock-comment-face, je pourrai ameliorer un peu mon niveau.
Merci quand meme a Pascal; c'est trop sophistique comme methode. Et vu mon niveau, c'est infaisable.
encore merci a Mathieu pour le lien.
-Hakpac-
Eric Reinbold
"hakpac" writes:
Merci pour vos reponses.
J'ai repris tous les font-lock-comment-face d'Eric, ca rapproche un peu de ce que je voulais. Il ne me colorie pas toute la ligne commencant par "* ---------" (il le fait pour les "**" cepandant). Si Eric veut bien m'explique ce que veut dire les chaines entre quote de font-lock-comment-face, je pourrai ameliorer un peu mon niveau.
En fait c'est des expression régulières:
("^\vspace{2mm}$" . font-lock-comment-face) Ca cherche vspace{2mm} , au début (^) et à la fin ($), en fait il n'y a rien d'autre sur cette ligne. Les trois , c'est parce que le quatrième fait partie aussi du language. En fait, c'est et
("^{\textbf{" . font-lock-comment-face) Toujours en début de ligne (^), {textbf{
("}}" . font-lock-comment-face) Deux }
("\\$" . font-lock-comment-face) Ca c'est le plus dur, c'est en fin de ligne ($)
("^Usage:.*|^Jour:.*|^Lieu:.*" . font-lock-comment-face) Usage: au début de ligne avec quelque chose derrière (.*) ou (|) Jour: ou Lieu
("^*+" . font-lock-comment-face) Une ligne de (*), héhé
Bon, je te laisse devinez la suite: ("^%%.+" . font-lock-function-name-face) ("^V:." . font-lock-function-name-face) ("^T:.+" . font-lock-keyword-face) ("^w:.+" . font-lock-doc-face)
Ca c'est !fine! ou !segno!, etc ("![a-z]+!" . font-lock-keyword-face)
Ca c'est [M:3/4] ou [K:Am] ("[[MLQPKV]:[^]]+]" . font-lock-keyword-face)
Ca c'est les accords "Am7" par ex: (""[A-G][#bMm98764]*"" . font-lock-variable-name-face)
Et ca c'est "|", tout simplement: ("|" . font-lock-constant-face)
Ah ca c'est le top, ca ne se mélange pas avec d'autres colorisations, en autre le ": )t)))
Enfin rien ne vaut un petit peu de lecture sur les expressions regulières. Eric
PS: J'espère que j'ai tout bon, hein chef?
"hakpac" <hakpac@yahoo.fr> writes:
Merci pour vos reponses.
J'ai repris tous les font-lock-comment-face d'Eric, ca rapproche un peu
de ce que je voulais.
Il ne me colorie pas toute la ligne commencant par "* ---------" (il le
fait pour les "**" cepandant).
Si Eric veut bien m'explique ce que veut dire les chaines entre quote
de font-lock-comment-face,
je pourrai ameliorer un peu mon niveau.
En fait c'est des expression régulières:
("^\\vspace{2mm}$" . font-lock-comment-face)
Ca cherche vspace{2mm} , au début (^) et à la fin ($),
en fait il n'y a rien d'autre sur cette ligne.
Les trois , c'est parce que le quatrième fait partie aussi du language.
En fait, c'est \ et \
("^{\\textbf{" . font-lock-comment-face)
Toujours en début de ligne (^), {textbf{
("}}" . font-lock-comment-face)
Deux }
("\\\\$" . font-lock-comment-face)
Ca c'est le plus dur, c'est \ en fin de ligne ($)
("^Usage:.*\|^Jour:.*\|^Lieu:.*" . font-lock-comment-face)
Usage: au début de ligne avec quelque chose derrière (.*) ou (\|) Jour: ou Lieu
("^\*+" . font-lock-comment-face)
Une ligne de (*), héhé
Bon, je te laisse devinez la suite:
("^%%.+" . font-lock-function-name-face)
("^V:." . font-lock-function-name-face)
("^T:.+" . font-lock-keyword-face)
("^w:.+" . font-lock-doc-face)
Ca c'est !fine! ou !segno!, etc
("![a-z]+!" . font-lock-keyword-face)
Ca c'est [M:3/4] ou [K:Am]
("\[[MLQPKV]:[^]]+\]" . font-lock-keyword-face)
Ca c'est les accords "Am7" par ex:
(""[A-G][#bMm98764]*"" . font-lock-variable-name-face)
Et ca c'est "|", tout simplement:
("|" . font-lock-constant-face)
Ah ca c'est le top, ca ne se mélange pas avec d'autres colorisations,
en autre le ":
)t)))
Enfin rien ne vaut un petit peu de lecture sur les expressions regulières.
Eric
J'ai repris tous les font-lock-comment-face d'Eric, ca rapproche un peu de ce que je voulais. Il ne me colorie pas toute la ligne commencant par "* ---------" (il le fait pour les "**" cepandant). Si Eric veut bien m'explique ce que veut dire les chaines entre quote de font-lock-comment-face, je pourrai ameliorer un peu mon niveau.
En fait c'est des expression régulières:
("^\vspace{2mm}$" . font-lock-comment-face) Ca cherche vspace{2mm} , au début (^) et à la fin ($), en fait il n'y a rien d'autre sur cette ligne. Les trois , c'est parce que le quatrième fait partie aussi du language. En fait, c'est et
("^{\textbf{" . font-lock-comment-face) Toujours en début de ligne (^), {textbf{
("}}" . font-lock-comment-face) Deux }
("\\$" . font-lock-comment-face) Ca c'est le plus dur, c'est en fin de ligne ($)
("^Usage:.*|^Jour:.*|^Lieu:.*" . font-lock-comment-face) Usage: au début de ligne avec quelque chose derrière (.*) ou (|) Jour: ou Lieu
("^*+" . font-lock-comment-face) Une ligne de (*), héhé
Bon, je te laisse devinez la suite: ("^%%.+" . font-lock-function-name-face) ("^V:." . font-lock-function-name-face) ("^T:.+" . font-lock-keyword-face) ("^w:.+" . font-lock-doc-face)
Ca c'est !fine! ou !segno!, etc ("![a-z]+!" . font-lock-keyword-face)
Ca c'est [M:3/4] ou [K:Am] ("[[MLQPKV]:[^]]+]" . font-lock-keyword-face)
Ca c'est les accords "Am7" par ex: (""[A-G][#bMm98764]*"" . font-lock-variable-name-face)
Et ca c'est "|", tout simplement: ("|" . font-lock-constant-face)
Ah ca c'est le top, ca ne se mélange pas avec d'autres colorisations, en autre le ": )t)))
Enfin rien ne vaut un petit peu de lecture sur les expressions regulières. Eric
PS: J'espère que j'ai tout bon, hein chef?
hakpac
Eric Reinbold wrote:
En fait c'est des expression régulières:
("^\vspace{2mm}$" . font-lock-comment-face) Ca cherche vspace{2mm} , au début (^) et à la fin ($), en fait il n'y a rien d'autre sur cette ligne. Les trois , c'est parce que le quatrième fait partie aussi du language. En fait, c'est et
("^*+" . font-lock-comment-face) Une ligne de (*), héhé
Merci ca devient un peu moins cabalistique. Est ce que ca marche un peu comme pour sed ?
Peut on definir une coloration entre 2 mots cles avec la meme methode? ex: ^calc coloration de tout ce qui suit jusqu'a fin de ligne.
avec calc en debut de ligne comme mot cle. C'est un sorte de syntax (j'arrive pas a definir "^calc" comme syntax-keyword)
J'ai modifie "^Usage" pour "^*" et ca marche nickel. Donc tres content, merci.
-Hakpac-
Eric Reinbold wrote:
En fait c'est des expression régulières:
("^\\vspace{2mm}$" . font-lock-comment-face)
Ca cherche vspace{2mm} , au début (^) et à la fin ($),
en fait il n'y a rien d'autre sur cette ligne.
Les trois , c'est parce que le quatrième fait partie aussi du language.
En fait, c'est \ et \
("^\*+" . font-lock-comment-face)
Une ligne de (*), héhé
Merci ca devient un peu moins cabalistique.
Est ce que ca marche un peu comme pour sed ?
Peut on definir une coloration entre 2 mots cles avec la meme methode?
ex:
^calc coloration de tout ce qui suit jusqu'a fin de ligne.
avec calc en debut de ligne comme mot cle.
C'est un sorte de syntax (j'arrive pas a definir "^calc" comme
syntax-keyword)
J'ai modifie "^Usage" pour "^*" et ca marche nickel.
Donc tres content, merci.
("^\vspace{2mm}$" . font-lock-comment-face) Ca cherche vspace{2mm} , au début (^) et à la fin ($), en fait il n'y a rien d'autre sur cette ligne. Les trois , c'est parce que le quatrième fait partie aussi du language. En fait, c'est et
("^*+" . font-lock-comment-face) Une ligne de (*), héhé
Merci ca devient un peu moins cabalistique. Est ce que ca marche un peu comme pour sed ?
Peut on definir une coloration entre 2 mots cles avec la meme methode? ex: ^calc coloration de tout ce qui suit jusqu'a fin de ligne.
avec calc en debut de ligne comme mot cle. C'est un sorte de syntax (j'arrive pas a definir "^calc" comme syntax-keyword)
J'ai modifie "^Usage" pour "^*" et ca marche nickel. Donc tres content, merci.
-Hakpac-
Eric Reinbold
"hakpac" writes:
Merci ca devient un peu moins cabalistique. Est ce que ca marche un peu comme pour sed ?
Il y a des pages internet sur les différences et les similitudes.
Peut on definir une coloration entre 2 mots cles avec la meme methode? ex: ^calc coloration de tout ce qui suit jusqu'a fin de ligne.
"^calc.+" Le point veut dire n'importe quel caractère. Le + au moins une occurence du . Le * 0 ou plus et ? au plus une occurence
avec calc en debut de ligne comme mot cle. C'est un sorte de syntax (j'arrive pas a definir "^calc" comme syntax-keyword)
J'ai modifie "^Usage" pour "^*" et ca marche nickel. Donc tres content, merci.
-Hakpac-
"hakpac" <hakpac@yahoo.fr> writes:
Merci ca devient un peu moins cabalistique.
Est ce que ca marche un peu comme pour sed ?
Il y a des pages internet sur les différences et les similitudes.
Peut on definir une coloration entre 2 mots cles avec la meme methode?
ex:
^calc coloration de tout ce qui suit jusqu'a fin de ligne.
"^calc.+"
Le point veut dire n'importe quel caractère.
Le + au moins une occurence du .
Le * 0 ou plus et ? au plus une occurence
avec calc en debut de ligne comme mot cle.
C'est un sorte de syntax (j'arrive pas a definir "^calc" comme
syntax-keyword)
J'ai modifie "^Usage" pour "^*" et ca marche nickel.
Donc tres content, merci.