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 Platform Discussion :

Plugin : auto activation de la complétion


Sujet :

Eclipse Platform

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut Plugin : auto activation de la complétion
    Bonjour,

    j'ai un petit soucis avec l'auto activation de la complétion.

    J'ai créé un éditeur qui comporte une auto-complétion. Celle ci s'affiche après certain caractères ('<' le plus souvent). Pour qu'elle s'affiche je suis obligé de faire ctrl+espace.
    Seulement je voudrais qu'un fois que le caractère < est entré elle s'affiche automatiquement.

    Voilà comment j'ai opéré pour essayer de faire cela. Premièrement voici le constructeur de mon éditeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public XulEditor() {
        super();
        colorManager = new ColorManager();
        setSourceViewerConfiguration(new XulEditorConfiguration(colorManager));
        setDocumentProvider(new XULDocumentProvider());
        setEditorContextMenuId("#XulEditor");
    }
    Et voici la méthode getContentAssistant de la classe XulEditorConfiguration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public IContentAssistant getContentAssistant(ISourceViewer sv){
        ContentAssistant ca = new ContentAssistant();
        IContentAssistProcessor pr = new XmlCompletionProcessor();
        ca.enableAutoActivation(true);
        ca.setAutoActivationDelay(0);
        ca.setDocumentPartitioning(getConfiguredDocumentPartitioning(sv));
        ca.setContentAssistProcessor(pr,XULPartitionScanner.XML_TAG);
        ca.setInformationControlCreator(getInformationControlCreator(sv));
        return ca;
    }
    Normalement les méthodes enableAutoActivation() et setAutoActivationDelay() devrait faire ce que je souhaite cependant ça ne marche pas :/

    Y a t-il quelque chose d'autre à faire en plus pour que l'auto-activation ait lieu ?

    Merci de votre aide

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bonjour,

    Pour l'activation automatique de l'auto-complétion, je ne suis pas expert mais ne faudrait-il pas spécifier un caractère déclencheur ?

    Je dis ça parce que si je regarde dans le paramétrage XML d'un Eclipse, ce sont les caractères "<=:" qui sont censés être pris en compte comme déclencheur (bien que j'ai du mal à voir exactement la signification de cette chaîne)... Donc peut-être faut-il indiquer ce genre de chose pour ça devienne réellement actif ?
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut
    Oui, il faut spécifier un caractère déclencheur. Dans mon cas c'est donc '<'. Ce caractère est spécifié dans la classe XmlCompletionProcessor.

    Comme tu le dis avec la chaîne "<=:" pour le xml chaque caractère doit être un déclencheur. Donc si dans le fichier xml l'utilisateur entre <,= ou : une liste affichant les complétions possibles doit apparaître

    Comme tu peux le voir dans mon code la classe XmlCompletionProcessor est créée dans la méthode getContentAssistant().

    Cette classe hérite de TemplateCompletionProcessor. J'ai ré-écrit la méthode getCompletionAutoActivationCharacters(). La voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public char[] getCompletionProposalAutoActivationCharacters() {
          return new char[] {'<'};
    }
    Le nom de la méthode est explicite. C'est après ces caractères que l'auto complétion doit s'activer. Seulement problème elle ne veut pas s'activer automatiquement

  4. #4
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Ah oui ok

    Merci pour les explications, je pensais que <=: était une chaîne à part entière.

    Bon désolé, je n'ai pas fait avancer le schmilblik
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut
    Pas de soucis tu m'a quand même permis de préciser les choses =)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 91
    Par défaut
    J'ai résolu le bug.

    Simplement en rajoutant cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ca.setContentAssistProcessor(pr, IDocument.DEFAULT_CONTENT_TYPE);
    Je ne sais pas trop pourquoi mais enfin bon ça marche donc si quelqu'un rencontre un jour ce problème voilà la solution.

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

Discussions similaires

  1. [Joomla!] plugin "auto readmore"
    Par osmen dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 03/09/2010, 18h07
  2. Pilotage Browser Plugin ou Active X dans une app Java
    Par kredik dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 16/06/2010, 11h56
  3. plugin "auto suffisant"
    Par kohsaka dans le forum jQuery
    Réponses: 2
    Dernier message: 18/03/2010, 13h13
  4. identification auto active directory
    Par philippe123 dans le forum Langage
    Réponses: 5
    Dernier message: 15/06/2006, 23h56

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