Процессор быстрых исправлений

Идентификатор:
org.eclipse.wst.jsdt.ui.quickFixProcessors

Версия:
Точка расширения, начиная с версии 3.0. Элемент handledMarkerTypes, начиная с версии 3.2.

Описание:
Данная точка расширения позволяет добавлять процессор быстрых исправлений для предложения новых вариантов для быстрых исправлений ошибок JavaScript.

Начиная с версии 3.2, в расширении могут быть указаны поддерживаемые типы маркеров неполадок. В расширения передаются только неполадки поддерживаемых типов. Если типы неполадок не указаны, процессор будет получать только неполадки типов org.eclipse.wst.jsdt.core.problem, org.eclipse.wst.jsdt.core.buildpath_problem и org.eclipse.wst.jsdt.core.task (для совместимости с версиями ниже 3.2).

Эта точка расширения поддерживает тег enablement. Проверяемые параметры:

  • compilationUnit: тип ICompilationUnit - блок компиляции, на который распространяется быстрая помощь
  • projectNatures: тип Collection, все классификаторы текущего проекта
  • sourceLevel: тип String, совместимость исходного кода текущего проекта
  • Описание конфигурации:

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

    Указывает типы маркеров неполадок, которые поддерживает процессор быстрого исправления. Если типы неполадок не указаны, процессор будет получать неполадки типов org.eclipse.wst.jsdt.core.problem, org.eclipse.wst.jsdt.core.buildpath_problem и 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)*>

    Шаблонный корневой элемент. Этот элемент может использоваться внутри точки расширения для определения ее выражения enablement. Для объединения подэлементов выражения enablement используется оператор and.



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

    Этот элемент представляет операцию НЕ, применяемую к результату вычисления выражения подэлемента.



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

    Этот элемент представляет операцию И, применяемую к результатам вычисления выражений всех подэлементов.



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

    Этот элемент представляет операцию ИЛИ, применяемую к результатам вычисления всех выражений подэлемента.



    <!ELEMENT instanceof EMPTY>

    <!ATTLIST instanceof

    value CDATA #REQUIRED

    >

    Этот элемент позволяет проверить допустимость преобразования типа выбранного объекта к указанному типу. Выражение возвращает EvaluationResult.TRUE, если тип объекта является производным типом типа, указанного в значении атрибута. В противном случае возвращается EvaluationResult.FALSE.



    <!ELEMENT test EMPTY>

    <!ATTLIST test

    property              CDATA #REQUIRED

    args                  CDATA #IMPLIED

    value                 CDATA #IMPLIED

    forcePluginActivation (true | false)

    >

    Этот элемент используется для проверки состояния свойства выбранного объекта. Набор тестируемых свойств можно расширить с помощью точки расширения org.eclipse.core.expressions.propertyTesters. Выражение тестирования возвращает EvaluationResult.NOT_LOADED, если программа тестирования свойств, отвечающая за фактическое тестирование, еще не загружена, а для атрибута forcePluginActivation задано значение false. Если для атрибута forcePluginActivation задано значение true и контекст вычисления, используемый для активации модуля поддержки данного выражения, то в результате оценки свойства будет активирован модуль, определяющий программу тестирования.



    <!ELEMENT systemTest EMPTY>

    <!ATTLIST systemTest

    property CDATA #REQUIRED

    value    CDATA #REQUIRED

    >

    Тестирует системное свойство, вызывая для этого метод System.getProperty и сравнивая результат со значением, указанным в атрибуте value.



    <!ELEMENT equals EMPTY>

    <!ATTLIST equals

    value CDATA #REQUIRED

    >

    Этот элемент применяется для выполнения проверки equals объекта в фокусе. Выражение возвращает EvaluationResult.TRUE, если объект равен значению атрибута value. В противном случае возвращается EvaluationResult.FALSE.



    <!ELEMENT count EMPTY>

    <!ATTLIST count

    value CDATA #REQUIRED

    >

    Этот элемент применяется для проверки числа элементов в наборе.



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

    <!ATTLIST with

    variable CDATA #REQUIRED

    >

    Этот элемент изменяет объект, проверяемый относительно всех его дочерних элементов, на объект, указанный заданной переменной. Если преобразовать переменную невозможно, то при вычислении выражения выдается ситуация ExpressionException. Для объединения подэлементов выражения with используется оператор and.



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

    <!ATTLIST resolve

    variable CDATA #REQUIRED

    args     CDATA #IMPLIED

    >

    Этот элемент изменяет объект, проверяемый относительно всех его дочерних элементов, на объект, указанный заданной переменной. Если преобразовать переменную невозможно, то при вычислении выражения выдается ситуация ExpressionException. Для объединения подэлементов выражения resolve используется оператор and.



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

    <!ATTLIST adapt

    type CDATA #REQUIRED

    >

    Данный элемент используется для адаптации выбранного объекта к типу, указанному в атрибуте type. Если адаптер или указанный тип еще не загружены, выражение возвращает EvaluationResult.NOT_LOADED. Оно выбрасывает ExpressionException во время обработки, если имя типа вообще не существует. Для объединения подэлементов выражения adapt используется оператор and.



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

    <!ATTLIST iterate

    operator (or|and)

    ifEmpty  (true | false)

    >

    Этот элемент используется для выполнения итераций с переменной, относящейся к типу java.util.Collection, или с переменной, подходящей к org.eclipse.core.expressions.IIterable. Если тип выбранного объекта отличен от вышеуказанного, то при вычислении этого выражения выдается ситуация CoreException с ExpressionStatus. Для объединения дочерних выражений выражения iterate используется оператор and.



    <!ELEMENT reference EMPTY>

    <!ATTLIST reference

    definitionId IDREF #REQUIRED

    >

    Данный элемент используется в качестве ссылки на выражение из точки расширения org.eclipse.core.expressions.definitions. Определение выражения будет вычисляться в рамках текущего элемента выражения с помощью текущего контекста вычисления.



    Примеры:
    Пример дополнения процессора быстрых исправлений:

    
     <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:
    Дополняемый класс должен реализовывать org.eclipse.wst.jsdt.ui.text.java.IQuickFixProcessor


    Copyright (c) 2007 IBM Corporation и другие.
    Все права защищены. Эта программа и сопутствующие материалы распространяются на условиях Eclipse Public License v1.0, поставляемой вместе с продуктом и доступной на веб-сайте http://www.eclipse.org/legal/epl-v10.html