Prozessor für Schnellkorrektur

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

Seit:
Erweiterungspunkt seit 3.0. Element handledMarkerTypes seit 3.2.

Beschreibung:
Mit diesem Erweiterungspunkt kann ein Prozessor für Schnellkorrekturen hinzugefügt werden, um neue Schnellkorrekturen für JavaScript-Probleme zur Verfügung zu stellen.

Seit 3.2 kann eine Erweiterung angeben, welche Problemmarkierungstypen von ihr verarbeitet werden können. Sie erhält zur Verarbeitung nur Probleme dieses Typs. Ist kein verarbeiteter Markierungstyp angegeben, erhält der Prozessor nur Probleme der Typen 'org.eclipse.wst.jsdt.core.problem', 'org.eclipse.wst.jsdt.core.buildpath_problem' und 'org.eclipse.wst.jsdt.core.task' (kompatibel mit dem Verhalten vor 3.2).

Dieser Erweiterungspunkt unterstützt die Markierung enablement. Dies kann auf folgenden Eigenschaften getestet werden:

  • compilationUnit: type ICompilationUnit; die Kompiliereinheit, auf die die Schnellunterstützung angewendet wird
  • projectNatures: type Collection; alle Projektgattungen des aktuellen Projekts
  • sourceLevel: type String; die Quellenkonformität des aktuellen Projekts
  • Konfigurationsbefehle:

    <!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+)>

    Gibt die Problemmarkierungstypen an, die von diesem Prozessor für Schnellkorrekturen verarbeitet werden können. Ist kein verarbeiteter Markierungstyp angegeben, erhält der Prozessor Probleme der Typen 'org.eclipse.wst.jsdt.core.problem', 'org.eclipse.wst.jsdt.core.buildpath_problem' und '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)*>

    Ein generisches Stammelement. Das Element kann innerhalb eines Erweiterungspunkts verwendet werden, um seinen Ausdruck 'enablemenent' zu definieren. Die untergeordneten Elemente eines Ausdrucks 'enablement' werden durch den Einsatz des Operators "and" kombiniert.



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

    Dieses Element stellt eine Operation NOT für das Ergebnis der Auswertung seines Unterelementausdrucks dar.



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

    Dieses Element stellt eine Operation AND für das Auswertungsergebnis aller seiner Unterelementausdrücke dar.



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

    Dieses Element stellt eine Operation OR für das Auswertungsergebnis aller seiner Unterelementausdrücke dar.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED

    >

    Dieses Element wird zur Durchführung einer Prüfung des Typs 'instanceof' für das betrachtete Objekt eingesetzt. Der Ausdruck gibt 'EvaluationResult.TRUE' zurück, wenn es sich bei dem Objekttyp um einen Untertyp des im Attribut 'value' angegebenen Typs handelt. Andernfalls wird 'EvaluationResult.FALSE' zurückgegeben.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property              CDATA #REQUIRED

    args                  CDATA #IMPLIED

    value                 CDATA #IMPLIED

    forcePluginActivation (true | false)

    >

    Dieses Element wird verwendet, um den Eigenschaftsstatus des Objekts im Fokus auszuwerten. Die Gruppe der Eigenschaften, die getestet werden können, kann mithilfe des Erweiterungspunkts org.eclipse.core.expressions.propertyTesters erweitert werden. Der Testausdruck gibt 'EvaluationResult.NOT_LOADED' zurück, wenn der Eigenschaftstester, der den eigentlichen Test durchführt, noch nicht geladen ist, und das Attribut 'forcePluginActivation' auf 'false' eingestellt ist. Wenn forcePluginActivation auf 'true' gesetzt und der für die Auswertung dieses Ausdrucks verwendete Auswertungskontext die Plug-in-Aktivierung unterstützt, führt die Auswertung der Eigenschaft zur Aktivierung des Plug-ins, das den Tester definiert.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED

    >

    Testet eine Systemeigenschaft, indem die Methode 'System.getProperty' aufgerufen wird und das Ergebnis mit dem im Attribut 'value' angegebenen Wert verglichen wird.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED

    >

    Dieses Element wird zur Durchführung einer Prüfung des Typs 'equals' für das Objekt im Fokus eingesetzt. Der Ausdruck gibt 'EvaluationResult.TRUE' zurück, wenn das Objekt mit dem Wert übereinstimmt, der von dem Attributwert zur Verfügung gestellt wird. Andernfalls wird 'EvaluationResult.FALSE' zurückgegeben.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED

    >

    Dieses Element wird verwendet, um die Anzahl der Elemente in einer Gruppe zu testen.



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

    <!ATTLIST with

    variable CDATA #REQUIRED

    >

    Dieses Element ändert das Objekt, das für alle seine untergeordneten Elemente untersucht werden muss, in das Objekt, auf das sich die angegebene Variable bezieht. Kann die Variable nicht aufgelöst werden, löst der Ausdruck bei der Auswertung der Variablen die Ausnahmebedingung 'ExpressionException' aus. Die untergeordneten Elemente eines Ausdrucks 'with' werden mit Hilfe des Operators 'and' kombiniert.



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

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED

    >

    Dieses Element ändert das Objekt, das für alle seine untergeordneten Elemente untersucht werden muss, in das Objekt, auf das sich die angegebene Variable bezieht. Kann die Variable nicht aufgelöst werden, löst der Ausdruck bei der Auswertung der Variablen die Ausnahmebedingung 'ExpressionException' aus. Die untergeordneten Elemente eines Ausdrucks 'resolve' werden mit Hilfe des Operators 'and' kombiniert.



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

    <!ATTLIST adapt

    type CDATA #REQUIRED

    >

    Dieses Element wird verwendet, um das Objekt im Fokus an den Typ anzupassen, der im Attribut 'type' angegeben ist. Der Ausdruck gibt 'EvaluationResult.NOT_LOADED' zurück, wenn entweder der Adapter oder der verwiesene Typ noch nicht geladen ist. Während der Auswertung wird die Ausnahmebedingung 'ExpressionException' ausgelöst, wenn der Typname überhaupt nicht existiert. Die untergeordneten Elemente eines Ausdrucks 'adapt' werden durch den Einsatz des Operators 'and' kombiniert.



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

    <!ATTLIST iterate

    operator (or|and)

    ifEmpty  (true | false)

    >

    Dieses Element wird zur Iteration einer Variable des Typs 'java.util.Collection' eingesetzt oder einer Variablen, die sich 'org.eclipse.core.expressions.IIterable' anpasst. Wenn das Objekt im Fokus nicht eines der obigen ist, wird während der Auswertung die Ausnahmebedingung 'CoreException' mit 'ExpressionStatus' ausgelöst. Die untergeordneten Ausdrücke des Ausdrucks 'iterate' werden durch den Einsatz des Operators 'and' kombiniert.



    <!ELEMENT reference EMPTY>

    <!ATTLIST reference

    definitionId IDREF #REQUIRED

    >

    Mit diesem Element wird ein Ausdruck aus dem Erweiterungspunkt org.eclipse.core.expressions.definitions referenziert. Die Ausdrucksdefinition wird innerhalb des aktuellen Ausdruckselements und unter Verwendung des aktuellen Auswertungskontexts ausgewertet.



    Beispiele:
    Das nachstehende Beispiel zeigt die Bereitstellung eines Prozessors für Schnellkorrekturen:

    
     <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>
    

    API-Informationen:
    Die bereitgestellte Klasse muss org.eclipse.wst.jsdt.ui.text.java.IQuickFixProcessor implementieren.


    Copyright (c) 2007 IBM Corporation und andere.
    Alle Rechte vorbehalten. Dieses Programm und sein Begleitmaterial werden gemäß Bedingungen der 'Eclipse Public License v1.0' zur Verfügung gestellt, die dieser Lieferung beiliegt und unter http://www.eclipse.org/legal/epl-v10.html abgerufen werden kann.