variables locales

Le
Didier Couderc
Bonjour,

Je travaille sur plusieurs projets qui utilisent des conventions
différentes et c'est un peu pénible.

Je voudrais utiliser les variables locales pour positionner, par
exemple, tab-width. Donc, à la fin de machin.cpp (c'est du C++) je
rajoute ces 3 lignes :

// Local Variables:
// tab-width: 4
// End:

Je recharge le fichier, fume, toujours 8.

La syntaxe est valide car si je change l'extension du fichier, en
machin.blorf par exemple, j'ai bien 4.

Je suppose donc que c'est c-mode qui change la valeur.

Est-ce qu'il y a un moyen de lui faire respecter la valeur spécifiée
dans les variables locales ?

Au cas ou :
XEmacs 21.4 patch 12
CC Mode version 5.30.10 (venant des packages XEmacs)

--
Mog
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
Alain Ketterlin
Le #26309358
Didier Couderc
Je voudrais utiliser les variables locales pour positionner, par
exemple, tab-width. Donc, à la fin de machin.cpp (c'est du C++) je
rajoute ces 3 lignes :

// Local Variables:
// tab-width: 4
// End:

Je recharge le fichier, fume, toujours 8.



CC Mode utilise c-basic-offset (4 par défaut il me semble) pour calcul er
son indentation.

Pour ce qui est de l'interaction avec les tabs, tu trouveras peut-être
des infos là : http://www.emacswiki.org/emacs/IndentingC (la partie
"Tabs Instead of Spaces"). Peut-être indent-tabs-mode ? Sais pas, je
n'utilise jamais de tabulation.

[...]
Au cas ou :
XEmacs 21.4 patch 12
CC Mode version 5.30.10 (venant des packages XEmacs)



Ouch. Je ne sais pas si tout cela est valable pour cette version.

-- Alain.
Didier Couderc
Le #26309449
Bonjour,

Alain Ketterlin
Didier Couderc
Je voudrais utiliser les variables locales pour positionner, par
exemple, tab-width. Donc, à la fin de machin.cpp (c'est du C++) je
rajoute ces 3 lignes :

// Local Variables:
// tab-width: 4
// End:

Je recharge le fichier, fume, toujours 8.



CC Mode utilise c-basic-offset (4 par défaut il me semble) pour calculer
son indentation.



Il me semble que cette valeur sert pour la saisie de code nouveau.

Mon pb est essentiellement avec le code existant, qui contient des
TAB, qui occupent tab-width espaces à l'écran et que quand je charge
un fichier, tab-width vaut 8 et l'indentation est foireuse. Je change
la valeur de tab-width à 4 et ça corrige l'affichage.

Pour ce qui est de l'interaction avec les tabs, tu trouveras peut-être
des infos là : http://www.emacswiki.org/emacs/IndentingC (la partie
"Tabs Instead of Spaces"). Peut-être indent-tabs-mode ? Sais pas, je
n'utilise jamais de tabulation.



Pareil. Seulement je ne suis pas seul :-)

Merci pour le lien, je vais fouiller.

--
Mog
vincent.belaiche
Le #26309772
Didier Couderc

[...]


Pareil. Seulement je ne suis pas seul :-)

Merci pour le lien, je vais fouiller.



Est-ce que par hasard tu n'aurais pas une fonction crochet appelée en
mode c, et qui remettrait le tab à 8.

Est-ce que tu as essayé d'ouvrir le même fichier en lançant Emacs sans
fichier d'init, c.-à-d. "emacs -q" en ligne de commande.

Sinon je trouve qu'utiliser les variables locales pour ce genre de chose
n'est pas une très bonne pratique --- avis personnel... On peut dans une
fonction crochet discriminer le chemin du fichier et régler la
tabulation en fonction.

Vincent.
sokobania.01
Le #26312344
Le mardi 16 septembre 2014 18:15:27 UTC+2, Didier Couderc a écrit  :
Bonjour,

Je travaille sur plusieurs projets qui utilisent des conventions
diff�rentes et c'est un peu p�nible.

Je voudrais utiliser les variables locales pour positionner, par
exemple, tab-width. Donc, � la fin de machin.cpp (c'est du C++) je
rajoute ces 3 lignes :

// Local Variables:
// tab-width: 4
// End:



As-tu connaissance de l'existence de variables locales à un réper toire (et non à un fichier)

https://www.gnu.org/software/emacs/manual/html_node/emacs/Directory-Variabl es.html

Ce qui ne résout pas ton autre problème...
Nicolas Richard
Le #26312365
Didier Couderc
Je voudrais utiliser les variables locales pour positionner, par
exemple, tab-width. Donc, à la fin de machin.cpp (c'est du C++) je
rajoute ces 3 lignes :

// Local Variables:
// tab-width: 4
// End:



J'ai essayé en créant un fichier foo.cpp qui contient

/* Local Variables: */
/* tab-width: 31 */
/* End: */

je l'ouvre, j'évalue tab-width (avec M-: tab-width RET) et j'obtiens
bien 31.

Au cas ou :
XEmacs 21.4 patch 12
CC Mode version 5.30.10 (venant des packages XEmacs)



J'utilise GNU emacs et CC Mode version 5.32.5

Regarde si tu as le même problème en n'utilisant pas tes fichiers
d'init. Si oui, tente un grep sur "tab-width" dans les différents
cc-*.el

a+

--
Nicolas Richard
Publicité
Poster une réponse
Anonyme