Processeur du Correctif rapide

Identificateur :
org.eclipse.wst.jsdt.ui.quickFixProcessors

Depuis la version :
3.0 pour le point d'extension. 3.2 pour l'élément handledMarkerTypes.

Description :
Ce point d'extension permet d'ajouter un processeur de correctif rapide pour mettre à disposition de nouveaux correctifs rapides pour les problèmes JavaScript.

A partir de la version 3.2, une extension peut définir les types de marqueur d'incident qu'elle peut gérer. Elle ne traitera que les problèmes relevant de ces types. Si aucun type de marqueur géré n'est spécifié, le processeur ne pourra extraire que les incidents de type org.eclipse.wst.jsdt.core.problem, org.eclipse.wst.jsdt.core.buildpath_problem et org.eclipse.wst.jsdt.core.task (compatible avec le comportement antérieur à la version 3.2).

Ce point d'extension prend en charge la balise enablement. Les propriétés sur lesquelles effectuer les tests sont les suivantes :

  • compilationUnit : type ICompilationUnit ; unité de compilation sur laquelle l'assistant rapide est appliqué
  • projectNatures : type Collection ; toutes les natures du projet en cours
  • sourceLevel : type String ; compatibilité source du projet en cours
  • Marquage de configuration :

    <!ELEMENT extension (quickFixProcessor+)>

    <!ATTLIST extension

    point CDATA #REQUIRED

    id    CDATA #IMPLIED

    name  CDATA #IMPLIED

    >


    <!ELEMENT quickFixProcessor (enablement? , handledMarkerTypes*)>

    <!ATTLIST quickFixProcessor

    id                  CDATA #REQUIRED

    name                CDATA #IMPLIED

    class               CDATA #REQUIRED

    requiredSourceLevel CDATA #IMPLIED

    >


    <!ELEMENT handledMarkerTypes (markerType+)>

    Indique les types de marqueur des problèmes que ce processeur de correctif rapide peut gérer. Si aucun type de marqueur géré n'est spécifié, le processeur ne pourra extraire que les incidents de type org.eclipse.wst.jsdt.core.problem, org.eclipse.wst.jsdt.core.buildpath_problem et org.eclipse.wst.jsdt.core.task.



    <!ELEMENT markerType EMPTY>

    <!ATTLIST markerType

    id CDATA #REQUIRED

    >


    <!ELEMENT enablement (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>

    Elément racine générique. L'élément peut être utilisé dans un point d'extension pour définir son expression d'activation. Les enfants d'une expression d'activation sont combinés à l'aide de l'opérateur AND.



    <!ELEMENT not (not | and | or | instanceof | test | systemTest | equals | count | with | resolve | adapt | iterate | reference)>

    Cet élément représente une opération NOT comme résultat de l'évaluation de son expression de sous-élément.



    <!ELEMENT and (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>

    Cet élément représente une opération AND comme résultat de l'évaluation de ses expressions de sous-élément.



    <!ELEMENT or (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>

    Cet élément représente une opération OR comme résultat de l'évaluation de ses expressions de sous-élément.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED

    >

    Cet élément permet d'effectuer une instance de vérification de l'objet concerné. L'expression renvoie EvaluationResult.TRUE si le type de l'objet est un sous-type du type spécifié par la valeur de l'attribut. Dans le cas contraire, EvaluationResult.FALSE est renvoyé.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property              CDATA #REQUIRED

    args                  CDATA #IMPLIED

    value                 CDATA #IMPLIED

    forcePluginActivation (true | false)

    >

    Cet élément permet d'évaluer l'état de la propriété de l'objet concerné. L'ensemble de propriétés pouvant être testées peut être étendu à l'aide du point d'extension org.eclipse.core.expressions.propertyTesters. L'expression de test renvoie EvaluationResult.NOT_LOADED si le testeur de propriétés réalisant le test n'est pas encore chargé et que l'attribut forcePluginActivation est défini sur "false". Si l'attribut forcePluginActivation est défini sur "true" et que le contexte d'évaluation employé pour évaluer cette expression prend en charge l'activation des plug-ins, l'évaluation de cette propriété entraîne l'activation du plug-in définissant le testeur.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED

    >

    Teste une propriété système en appelant la méthode System.getProperty et compare le résultat avec la valeur spécifiée via l'attribut value.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED

    >

    Cet élément permet d'effectuer une vérification d'égalité de l'objet concerné. L'expression renvoie EvaluationResult.TRUE si l'objet est égal à la valeur indiquée par l'attribut. Dans le cas contraire, EvaluationResult.FALSE est renvoyé.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED

    >

    Cet élément permet de tester le nombre d'éléments d'une collection.



    <!ELEMENT with (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>

    <!ATTLIST with

    variable CDATA #REQUIRED

    >

    Cet élément remplace l'objet à vérifier pour tous ses éléments enfant par l'objet auquel la variable donnée fait référence. Si la variable ne peut pas être résolue, l'expression génère une exception ExpressionException lors de l'évaluation. Les enfants d'une expression "with" sont combinés à l'aide de l'opérateur "and".



    <!ELEMENT resolve (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED

    >

    Cet élément remplace l'objet à vérifier pour tous ses éléments enfant par l'objet auquel la variable donnée fait référence. Si la variable ne peut pas être résolue, l'expression génère une exception ExpressionException lors de l'évaluation. Les enfants d'une expression "resolve" sont combinés à l'aide de l'opérateur "and".



    <!ELEMENT adapt (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>

    <!ATTLIST adapt

    type CDATA #REQUIRED

    >

    Cet élément permet d'adapter l'objet actif au type spécifié par le type d'attribut. L'expression renvoie l'indication EvaluationResult.NOT_LOADED si l'adaptateur ou le type référencé n'est pas encore chargé. Elle émet une exception ExpressionException lors de la détermination de l'existence du nom du type. Les enfants d'une expression d'adaptatation sont combinés à l'aide de l'opérateur AND.



    <!ELEMENT iterate (not , and , or , instanceof , test , systemTest , equals , count , with , resolve , adapt , iterate , reference)*>

    <!ATTLIST iterate

    operator (or|and)

    ifEmpty  (true | false)

    >

    Cet élément permet d'effectuer une itération sur une variable de type java.util.Collection ou une variable qui s'adapte à adapts to org.eclipse.core.expressions.IIterable. Si l'objet actif n'est pas l'un des objets ci-dessus, une exception CoreException avec l'état ExpressionStatus est générée lors de l'évaluation de l'expression. Les expressions enfant d'une expression d'itération sont combinées à l'aide de l'opérateur AND.



    <!ELEMENT reference EMPTY>

    <!ATTLIST reference

    definitionId IDREF #REQUIRED

    >

    Cet élément est utilisé pour faire référence à une expression du point d'extension org.eclipse.core.expressions.definitions. La définition de l'expression sera évaluée dans l'élément d'expression en cours en utilisant le contexte d'évaluation en cours.



    Exemples :
    Vous trouverez ci-dessous un exemple d'ajout de processeur de correctif rapide :

    
     <extension point="org.eclipse.wst.jsdt.ui.quickFixProcessors">
      <quickFixProcessor
       id="AdvancedQuickFixProcessor"
       name="Advanced Quick Fix Processor"
       requiredSourceLevel="1.5"
       class="com.example.AdvancedQuickFixProcessor">
       <handledMarkerTypes>
          <markerType id="org.eclipse.myplugin.audits"/>
       </handledMarkerTypes>
       <enablement>
          <with variable="projectNatures">
             <iterate operator="or">
                <equals value="org.eclipse.wst.jsdt.core.javanature"/>
             </iterate>
          </with>
       </enablement>
      </quickFixProcessor>
     </extension>
    

    Informations sur l'API :
    La classe ajoutée doit implémenter org.eclipse.wst.jsdt.ui.text.java.IQuickFixProcessor.


    Copyright (c) 2007 IBM Corporation and others.
    All rights reserved. Ce programme et les produits associés sont distribués sous licence v1.0 et disponibles à l'adresse suivante : http://www.eclipse.org/legal/epl-v10.html