IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages fonctionnels Discussion :

Schéma d'indentation sous emacs


Sujet :

Langages fonctionnels

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Schéma d'indentation sous emacs
    Bonjour tout le monde.

    Alors, je ne savais pas trop ou placer ce post. Comme emacs utilise des scripts Lisp, j'ai choisi "Langages fonctionnels". J'espère que ça s'averera un bon choix!

    J'aimerais savoir s'il existe avec emacs la possibilité de customiser l'indentation en fonction de ce qui est contenu sur la ligne.
    Je m'explique: J'aimerais que mon code s'écrive de cette manière:
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void main()
    {
        boolean toto = true;
        if(toto)
        { /* ici, si je fais un 'indent-region' il me recale l'accolade 4 espaces plus loin, soit 8 espaces du début de ligne */
            printf("voilou\n"); /* du coup cette ligne commence également 4 espaces plus loin */
        }
    }
    Donc, pour reformuler ma question:

    J'aimerais, comme on le voit sur ce bout de code, que le caratère '{' soit aligné avec le if qui est au dessus, et non pas indenté de 4 espaces supplémentaires comme c'est le cas lors d'un 'indent-region'.


    Comme info supplémentaires, pour ceux qui souhaiteraient faire la même chose que moi, j'ajouterais que pour paramétrer l'unité d'indentation à 4 espaces j'ai ajouté ceci à .emacs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (defun my-c++-indent-setup ()
      (setq c-basic-offset 4)
      (setq indent-tabs-mode nil))
    (add-hook 'c-mode-hook 'my-c++-indent-setup)
    (add-hook 'c++-mode-hook 'my-c++-indent-setup)
    Alors, est-ce vous pensez que c'est possible de faire en sorte que 'indent-region' indente les lignes contenant 1 '{' sur la base de la ligne précédante ???

    Merci d'avance pour vos réponses

  2. #2
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Ajoute ça dans ta fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (c-set-offset 'substatement-open '0)
    (c-set-offset 'brace-list-open '0)
    (c-set-offset 'statement-case-open '0)
    La première ligne, c'est pour les blocs, comme dans ton exemple.
    Les deux autres lignes, tu les voudras peut-être : c'est pour avoir le même comportement pour les case et les struct.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Et bien, je n'aurais qu'un mot, mais un grand:
    MERCI

    C'est un truc un peu bête, mais, je suis super content

  4. #4
    Membre habitué Avatar de b Oo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 179
    Points : 185
    Points
    185
    Par défaut
    Salut,
    tu peux aussi faire C-c C-o, et ca te met la commande qui gere l'indentation de la ligne, par exemple : substatement-open, ensuite tu fais entrer et apres tu choisi ce que tu veux comme espace.
    Et en plus tu connais la commande pour la mettre dans ton .emacs.
    Je te conseille le tuto d'haypo : Indenter du code source C avec Emacs
    Voila.
    b Oo

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Merci pour cette info

    Ca va simplifier les echanges de codes avec mes collegues non utilisateurs d'emacs qui en avaient un peu marre des indentations à la gnu emacs.

    Quand a moi, etant minoritaire, je m'incline.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Auto indentation sous vi ?
    Par Nicomart dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 02/03/2011, 10h54
  2. indentation du lisp sous Emacs?
    Par maissa019 dans le forum Lisp
    Réponses: 2
    Dernier message: 15/04/2008, 10h45
  3. Schéma des dépendances sous Visual Studio 2005
    Par miniloutre dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 24/07/2007, 18h26
  4. Indentation sous Eclipse
    Par 60sman dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 19/04/2007, 12h55
  5. Problème d'indentation avec emacs
    Par azertyman dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 24/04/2006, 03h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo