Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 10 sur 10
  1. #1
    Membre régulier
    Profil pro Nehmé Bilal
    Inscrit en
    septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Nom : Nehmé Bilal
    Âge : 31
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2008
    Messages : 248
    Points : 87
    Points
    87

    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 :
    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 :
    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 :
    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 du Club
    Inscrit en
    janvier 2006
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : janvier 2006
    Messages : 73
    Points : 61
    Points
    61

    Par défaut

    Code :
    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
    128
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 128
    Points : 78
    Points
    78

    Par défaut

    Citation Envoyé par emardjean Voir le message
    Code :
    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 Nehmé Bilal
    Inscrit en
    septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Nom : Nehmé Bilal
    Âge : 31
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2008
    Messages : 248
    Points : 87
    Points
    87

    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
    128
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 128
    Points : 78
    Points
    78

    Par défaut

    As-tu été voir sur le forum eclipse.org ?

  6. #6
    Membre régulier
    Profil pro Nehmé Bilal
    Inscrit en
    septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Nom : Nehmé Bilal
    Âge : 31
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2008
    Messages : 248
    Points : 87
    Points
    87

    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
    128
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 128
    Points : 78
    Points
    78

    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 :
    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 Nehmé Bilal
    Inscrit en
    septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Nom : Nehmé Bilal
    Âge : 31
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2008
    Messages : 248
    Points : 87
    Points
    87

    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
    128
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 128
    Points : 78
    Points
    78

    Par défaut

    Le container ne devrait-il pas plutôt être le namespace ?

  10. #10
    Membre régulier
    Profil pro Nehmé Bilal
    Inscrit en
    septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Nom : Nehmé Bilal
    Âge : 31
    Localisation : Canada

    Informations forums :
    Inscription : septembre 2008
    Messages : 248
    Points : 87
    Points
    87

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •