Snabbrättningsbearbetare

org.eclipse.jdt.ui.quickFixProcessors

Utökningspunkt sedan 3.0. Element handledMarkerTypes sedan 3.2.

Den här utökningspunkten gör det möjligt att lägga till en snabbrättningsbearbetare som erbjuder nya snabbrättningar för Java-problem.

Sedan 3.2 kan en utökning specificera vilka problemmärkordstyper den kan hantera. Den kan bara bearbeta dessa typer. Om ingen hanterad märkordstyp specificeras, kommer bearbetaren bara att få problem med typerna org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem och org.eclipse.jdt.core.task (kompatibla med funktionaliteten före 3.2).

Utökningspunkten stöder märkordet enablement. Följande egenskaper testas:

  • compilationUnit: typen ICompilationUnit; den kompileringsenhet som snabbhjälpen används på
  • projectNatures: typen Collection; alla projektnaturer för det aktuella projektet
  • sourceLevel: typen String; det aktuella projektets källkompatibilitet
  • <!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+)>

    Specificerar märkordstyper för de problem som den här bearbetningsfunktionen för snabbrättning kan hantera. Om ingen hanterad märkordstyp specificeras, kommer bearbetaren få problem med typerna org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem och org.eclipse.jdt.core.task.



    <!ELEMENT markerType EMPTY>

    <!ATTLIST markerType

    id CDATA #REQUIRED>


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

    Ett allmänt rotelement. Elementet kan användas i en utökningspunkt till att definiera enablement-uttrycket för den. De underordnade objekten till ett enablement-uttryck kombineras med hjälp av operatorn and.



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

    Elementet representerar ett NOT-uttryck för resultatet från utvärderingen av underelementuttrycken.



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

    Det här elementet representerar en AND-åtgärd för resultatet från utvärderingen av underelementuttrycken.



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

    Det här elementet representerar en OR-åtgärd för resultatet från utvärderingen av underelementuttrycken.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED>

    Elementet används till att göra en instanceof-kontroll av det aktuella objektet. Uttrycket returnerar EvaluationResult.TRUE om objektstypen är en undertyp till den typ som angavs av attributvärdet. I annat fall returneras EvaluationResult.FALSE.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property CDATA #REQUIRED

    args     CDATA #IMPLIED

    value    CDATA #IMPLIED>

    Elementet används till att utvärdera egenskapsläget för det aktuella objektet. De av uppsättningens egenskaper som kan testas, kan utökas med hjälp av utökningspunkten för egenskapstestfunktionen. Testuttrycket returnerar EvaluationResult.NOT_LOADED om den aktuella egenskapstestfunktionen inte har lästs in ännu.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED>

    Testar en systemegenskap genom att anropa metoden System.getProperty och jämför resultatet med det värde som angetts via värdeattributet.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED>

    Elementet används till att göra en equals-kontroll av det aktuella objektet. Uttrycket returnerar EvaluationResult.TRUE om objektet är detsamma som det värde som tillhandahålls av attributvärdet. I annat fall returneras EvaluationResult.FALSE.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED>

    Elementet används till att testa antalet element i samlingen.



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

    <!ATTLIST with

    variable CDATA #REQUIRED>

    Det här elementet ändrar det objekt som ska kontrolleras för alla underordnade element till det objekt som refereras till av den angivna variabeln. Om variabeln inte kan tolkas returnerar uttrycket ExpressionException när det utvärderas. De underordnade objekten till ett with-uttryck kombineras med hjälp av operatorn and.



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

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED>

    Det här elementet ändrar det objekt som ska kontrolleras för alla underordnade element till det objekt som refereras till av den angivna variabeln. Om variabeln inte kan tolkas returnerar uttrycket ExpressionException när det utvärderas. De underordnade objekten till ett with-uttryck kombineras med hjälp av operatorn and.



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

    <!ATTLIST adapt

    type CDATA #REQUIRED>

    Det här elementet används till anpassa det aktuella objektet till den typ som angavs av attributtypen. Uttrycket returneras som inte inläst om adaptern eller den refererade typen inte har lästs in än. Det returnerar ett ExpressionException under utvärdering om samma typnamn inte alls finns. De underordnade objekten till ett adapt-uttryck kombineras med hjälp av operatorn and.



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

    <!ATTLIST iterate

    operator (or|and) >

    Det här elementet används till att räkna stegvis över en variabel som är av typen java.util.Collection. Om det aktuella objektet inte är av typen java.util.Collection returneras ExpressionException när uttrycket utvärderas.



    Följande är ett exempel på en samverkande snabbrättningsbearbetare:

     

    <extension point=

    "org.eclipse.jdt.ui.quickFixProcessors"

    >

    <quickFixProcessor id=

    "AdvancedQuickFixProcessor"

    name=

    "Avancerad snabbrättningsbearbetare"

    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.jdt.core.javanature"

    />

    </iterate>

    </with>

    </enablement>

    </quickFixProcessor>

    </extension>

    Den samverkande klassen måste implementera org.eclipse.jdt.ui.text.java.IQuickFixProcessor