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

Eclipse C & C++ Discussion :

Ajout de namespace à partir du code


Sujet :

Eclipse C & C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut Ajout de namespace à partir du code
    Bonjour,

    J'essaie d'ajouter un namespace dans la définition d'une classe suite à sa création dans Eclipse à partir du code.

    J'ai une référence sur IFile correspondant à la classe et je l'utilise de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ITranslationUnit tu = CoreModelUtil.findTranslationUnit(file);
    INamespace ns = tu.createNamespace("foo", null,    null);
    Malheureusement le namespace ajouté apparaît après la définition de la classe et ne contient pas la classe. Pour déplacer la classe à l'intérieur du namespace, j'utilise le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ICElement[] ce = new ICElement[] { classElement }; // la classe
    ICElement[] nse = new ICElement[] { ns }; // le namespace
    tu.getCModel().move(ce, nse, null, null, true, null);
    La classe est déplacée mais elle est placée après le namespace et non à l'intérieur de ce dernier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    namespace foo {
    }
    class C1 {
    public:
        C1();
        virtual ~C1();
    };
    Quelqu'un saurait-il m'indiquer comment ajouter un namespace qui englobe la classe, ou comment déplacer la classe à l'intérieur du namespace ?

    Merci d'avance pour votre aide.

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 84
    Points
    84
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    namespace foo {
     
        class C1 {
        public:
            C1();
            virtual ~C1();
        };
     
    }

  3. #3
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 140
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par emardjean Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    namespace foo {
     
    class C1 {
    public:
        C1();
        virtual ~C1();
    };
     
    }
    ???
    si c'est la manière d'écrire le code C++ pour que la classe soit englobée dans le namespace, ce n'est pas du tout la question.
    (avec la balise code, c'est mieux.)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut

    Je sais comment ajouter un namespace manuellement mais j'essaie de le faire à partir du code dans un plugin pour eclipse CDT qui détecte la création de classes et ajoute le namespace automatiquement.

  5. #5
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 140
    Points : 103
    Points
    103
    Par défaut
    As-tu été voir sur le forum eclipse.org ?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut
    Oui j'ai posé la question dans le forum mais pas eu de réponses.
    http://www.eclipse.org/forums/index.php/t/440552/

    J'ai aussi posé la question sur stackoverflow:
    http://stackoverflow.com/questions/1...ranslationunit

    J'ai fini par ajouter le namespace en manipulant le text dans le IFile correspondant à la classe. J'ouvre le IFile, je cherche le début et la fin de la classe et j'ajoute le namespace. Même si ca fonctionne, ca me semble très risqué.

  7. #7
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 140
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Nehmé Voir le message
    Pour déplacer la classe à l'intérieur du namespace, j'utilise le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ICElement[] ce = new ICElement[] { classElement }; // la classe
    ICElement[] nse = new ICElement[] { ns }; // le namespace
    tu.getCModel().move(ce, nse, null, null, true, null);
    À quoi servent les autres paramètres de la fonction "move" ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par MicBeastKiller Voir le message
    À quoi servent les autres paramètres de la fonction "move" ?
    http://help.eclipse.org/indigo/index...ipulation.html

  9. #9
    Membre régulier
    Inscrit en
    Juin 2008
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 140
    Points : 103
    Points
    103
    Par défaut
    Le container ne devrait-il pas plutôt être le namespace ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut
    Citation Envoyé par MicBeastKiller Voir le message
    Le container ne devrait-il pas plutôt être le namespace ?
    Pardon la bonne description est ici:
    http://help.eclipse.org/indigo/index...2FICModel.html

    Le container est bien le namespace.

Discussions similaires

  1. [Débutant] Ajouter un label à partir du code
    Par Pol63 dans le forum ASP.NET MVC
    Réponses: 10
    Dernier message: 16/03/2015, 16h44
  2. Réponses: 4
    Dernier message: 18/03/2011, 15h25
  3. [XSLT] Ajout du Ref XSL dans XML a partir du code JAVA
    Par rasenganguy dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 25/01/2010, 20h40
  4. [Hibernate] Ajouter des tables à partir du code
    Par oughlad dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/05/2006, 12h17
  5. Executer un DTS a partir du code VB
    Par Total dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 17/11/2005, 16h23

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