<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<!--
    Copyright (C) 2021, 1C-Soft LLC and others.
   
    This program and the accompanying materials are made
    available under the terms of the Eclipse Public License 2.0
    which is available at https://www.eclipse.org/legal/epl-2.0/
   
    SPDX-License-Identifier: EPL-2.0
   
    Contributors:
        1C-Soft LLC - initial API and implementation
 -->

<plugin>


 <extension
       point="org.eclipse.ui.views">
    <category
          id="com.e1c.v8codestyle.bsl.ui"
          name="%views.category.name">
    </category>
    <view
          category="com.e1c.v8codestyle.bsl.ui"
          class="com.e1c.v8codestyle.internal.bsl.ui.views.BslDocCommentView"
          icon="icons/BslDocComment.png"
          id="com.e1c.v8codestyle.bsl.ui.views.BslDocCommentView"
          inject="true"
          name="%views.BslDocCommentView.name">
    </view>
 </extension>
 <extension
       point="org.eclipse.ui.perspectiveExtensions">
    <perspectiveExtension
          targetID="com._1c.g5.v8.dt.ui2.perspective">
       <view
             id="com.e1c.v8codestyle.bsl.ui.views.BslDocCommentView"
             ratio="0.5"
             relationship="stack"
             relative="org.eclipse.ui.views.PropertySheet"
             visible="true">
       </view>
    </perspectiveExtension>
 </extension>
 <extension
       point="com._1c.g5.v8.dt.ui.dtNewWizardRelatedModelsFactories">
    <factory
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.wizard.ModuleStructureNewWizardRelatedModelsFactory"
          order="120">
       <triggers>
          	 <modelClass eClass="Configuration" />
             <modelClass eClass="CatalogForm" />
             <modelClass eClass="DocumentForm" />
             <modelClass eClass="EnumForm" />
             <modelClass eClass="ChartOfCharacteristicTypesForm" />
             <modelClass eClass="InformationRegisterForm" />
             <modelClass eClass="DocumentJournalForm" />
             <modelClass eClass="ExchangePlanForm" />
             <modelClass eClass="DataProcessorForm" />
             <modelClass eClass="AccumulationRegisterForm" />
             <modelClass eClass="ReportForm" />
             <modelClass eClass="CommonModule" />
             <modelClass eClass="Bot" />
             <modelClass eClass="IntegrationService" />
             <modelClass eClass="ExchangePlan" />
             <modelClass eClass="WebService" />
             <modelClass eClass="HTTPService" />
             <modelClass eClass="Constant" />
             <modelClass eClass="Document" />
             <modelClass eClass="Catalog" />
             <modelClass eClass="Document" />
             <modelClass eClass="Sequence" />
             <modelClass eClass="DocumentJournal" />
             <modelClass eClass="Report" />
             <modelClass eClass="ExternalReport" />
             <modelClass eClass="DataProcessor" />
             <modelClass eClass="ExternalDataProcessor" />
             <modelClass eClass="InformationRegister" />
             <modelClass eClass="AccumulationRegister" />
             <modelClass eClass="SettingsStorage" />
             <modelClass eClass="Task" />
             <modelClass eClass="BusinessProcess" />
             <modelClass eClass="Table" />
             <modelClass eClass="Cube" />
             <modelClass eClass="DimensionTable" />
             <modelClass eClass="AccumulationRegisterCommand" />
             <modelClass eClass="BusinessProcessCommand" />
             <modelClass eClass="CatalogCommand" />
             <modelClass eClass="ChartOfCharacteristicTypesCommand" />
             <modelClass eClass="CommonCommand" />
             <modelClass eClass="DataProcessorCommand" />
             <modelClass eClass="DocumentCommand" />
             <modelClass eClass="DocumentJournalCommand" />
             <modelClass eClass="EnumCommand" />
             <modelClass eClass="ExchangePlanCommand" />
             <modelClass eClass="FilterCriterionCommand" />
             <modelClass eClass="InformationRegisterCommand" />
             <modelClass eClass="ReportCommand" />
             <modelClass eClass="TaskCommand" />
             <modelClass eClass="TableCommand" />
             <modelClass eClass="CubeCommand" />
             <modelClass eClass="DimensionTableCommand" />
             <modelClass eClass="CommonForm" />
             <modelClass eClass="CatalogForm" />
             <modelClass eClass="DocumentForm" />
             <modelClass eClass="EnumForm" />
             <modelClass eClass="ChartOfAccountsForm" />
             <modelClass eClass="ChartOfCalculationTypesForm" />
             <modelClass eClass="ChartOfCharacteristicTypesForm" />
             <modelClass eClass="InformationRegisterForm" />
             <modelClass eClass="DocumentJournalForm" />
             <modelClass eClass="ExchangePlanForm" />
             <modelClass eClass="FilterCriterionForm" />
             <modelClass eClass="DataProcessorForm" />
             <modelClass eClass="AccountingRegisterForm" />
             <modelClass eClass="AccumulationRegisterForm" />
             <modelClass eClass="ReportForm" />
             <modelClass eClass="BusinessProcessForm" />
             <modelClass eClass="TaskForm" />
             <modelClass eClass="SettingsStorageForm" />
             <modelClass eClass="CalculationRegisterForm" />
             <modelClass eClass="TableForm" />
             <modelClass eClass="CubeForm" />
             <modelClass eClass="DimensionTableForm" />
       </triggers>
    </factory>
    <factory
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.wizard.ModuleStrictTypesNewWizardRelatedModelsFactory"
          order="220">
       <triggers>
          	 <modelClass eClass="Configuration" />
             <modelClass eClass="CatalogForm" />
             <modelClass eClass="DocumentForm" />
             <modelClass eClass="EnumForm" />
             <modelClass eClass="ChartOfCharacteristicTypesForm" />
             <modelClass eClass="InformationRegisterForm" />
             <modelClass eClass="DocumentJournalForm" />
             <modelClass eClass="ExchangePlanForm" />
             <modelClass eClass="DataProcessorForm" />
             <modelClass eClass="AccumulationRegisterForm" />
             <modelClass eClass="ReportForm" />
             <modelClass eClass="CommonModule" />
             <modelClass eClass="Bot" />
             <modelClass eClass="IntegrationService" />
             <modelClass eClass="ExchangePlan" />
             <modelClass eClass="WebService" />
             <modelClass eClass="HTTPService" />
             <modelClass eClass="Constant" />
             <modelClass eClass="Document" />
             <modelClass eClass="Catalog" />
             <modelClass eClass="Document" />
             <modelClass eClass="Sequence" />
             <modelClass eClass="DocumentJournal" />
             <modelClass eClass="Report" />
             <modelClass eClass="ExternalReport" />
             <modelClass eClass="DataProcessor" />
             <modelClass eClass="ExternalDataProcessor" />
             <modelClass eClass="InformationRegister" />
             <modelClass eClass="AccumulationRegister" />
             <modelClass eClass="SettingsStorage" />
             <modelClass eClass="Task" />
             <modelClass eClass="BusinessProcess" />
             <modelClass eClass="Table" />
             <modelClass eClass="Cube" />
             <modelClass eClass="DimensionTable" />
             <modelClass eClass="AccumulationRegisterCommand" />
             <modelClass eClass="BusinessProcessCommand" />
             <modelClass eClass="CatalogCommand" />
             <modelClass eClass="ChartOfCharacteristicTypesCommand" />
             <modelClass eClass="CommonCommand" />
             <modelClass eClass="DataProcessorCommand" />
             <modelClass eClass="DocumentCommand" />
             <modelClass eClass="DocumentJournalCommand" />
             <modelClass eClass="EnumCommand" />
             <modelClass eClass="ExchangePlanCommand" />
             <modelClass eClass="FilterCriterionCommand" />
             <modelClass eClass="InformationRegisterCommand" />
             <modelClass eClass="ReportCommand" />
             <modelClass eClass="TaskCommand" />
             <modelClass eClass="TableCommand" />
             <modelClass eClass="CubeCommand" />
             <modelClass eClass="DimensionTableCommand" />
             <modelClass eClass="CommonForm" />
             <modelClass eClass="CatalogForm" />
             <modelClass eClass="DocumentForm" />
             <modelClass eClass="EnumForm" />
             <modelClass eClass="ChartOfAccountsForm" />
             <modelClass eClass="ChartOfCalculationTypesForm" />
             <modelClass eClass="ChartOfCharacteristicTypesForm" />
             <modelClass eClass="InformationRegisterForm" />
             <modelClass eClass="DocumentJournalForm" />
             <modelClass eClass="ExchangePlanForm" />
             <modelClass eClass="FilterCriterionForm" />
             <modelClass eClass="DataProcessorForm" />
             <modelClass eClass="AccountingRegisterForm" />
             <modelClass eClass="AccumulationRegisterForm" />
             <modelClass eClass="ReportForm" />
             <modelClass eClass="BusinessProcessForm" />
             <modelClass eClass="TaskForm" />
             <modelClass eClass="SettingsStorageForm" />
             <modelClass eClass="CalculationRegisterForm" />
             <modelClass eClass="TableForm" />
             <modelClass eClass="CubeForm" />
             <modelClass eClass="DimensionTableForm" />
       </triggers>
    </factory>
 </extension>
 <extension
       point="org.eclipse.ui.propertyPages">
    <page
          category="com._1c.g5.v8.dt.bsl.Bsl"
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.properties.ModuleStructurePropertyPage"
          id="com.e1c.v8codestyle.bsl.ui.properties.moduleStructurePropertyPage"
          name="%properties.modulestructure.name">
       <enabledWhen>
          <instanceof
                value="org.eclipse.core.resources.IProject">
          </instanceof>
       </enabledWhen>
    </page>
 </extension>
 <extension
       point="org.eclipse.ui.preferencePages">
    <page
          category="com._1c.g5.v8.dt.bsl.Bsl"
          class="com.e1c.v8codestyle.internal.bsl.ui.preferences.ModuleStructurePreferencePage"
          id="com.e1c.v8codestyle.bsl.ui.preferences.ModuleStructurePreferencePage"
          name="%preferences.modulestructure.name">
    </page>
 </extension>
 <extension
       point="org.eclipse.ui.commands">
    <command
          defaultHandler="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.handlers.AddStrictTypeAnnotationHandler"
          id="com.e1c.v8codestyle.bsl.ui.commands.addStrictTypesAnnotationCommand"
          name="%command.enableStrictTypes.name">
    </command>
 </extension>
 <extension
       point="org.eclipse.ui.menus">
    <menuContribution
          allPopups="false"
          locationURI="popup:com._1c.g5.v8.dt.navigator.ui.navigator.popup?after=group.edit">
       <command
             commandId="com.e1c.v8codestyle.bsl.ui.commands.addStrictTypesAnnotationCommand"
             mnemonic="%command.enableStrictTypes.mnemonic"
             style="push">
          <visibleWhen
                checkEnabled="false">
             <iterate
                   ifEmpty="false"
                   operator="or">
                <or>
                <instanceof
                      value="com._1c.g5.v8.dt.metadata.mdclass.MdObject">
                </instanceof>
                <and>
                   <instanceof
                         value="org.eclipse.core.resources.IResource">
                   </instanceof>
                   <or>
                      <test
                            property="org.eclipse.core.resources.projectNature"
                            value="com._1c.g5.v8.dt.core.V8ConfigurationNature">
                      </test>
                      <test
                            property="org.eclipse.core.resources.projectNature"
                            value="com._1c.g5.v8.dt.core.V8ExtensionNature">
                      </test>
                      <test
                            property="org.eclipse.core.resources.projectNature"
                            value="com._1c.g5.v8.dt.core.V8ExternalObjectsNature">
                      </test>
                   </or>
                </and>
                </or>
             </iterate>
          </visibleWhen>
       </command>
    </menuContribution>
    <menuContribution
          allPopups="false"
          locationURI="popup:org.eclipse.ui.navigator.ProjectExplorer#PopupMenu?after=group.edit">
       <command
             commandId="com.e1c.v8codestyle.bsl.ui.commands.addStrictTypesAnnotationCommand"
             style="push">
          <visibleWhen
                checkEnabled="false">
             <iterate
                   ifEmpty="false"
                   operator="or">
             <and>
                <instanceof
                      value="org.eclipse.core.resources.IResource">
                </instanceof>
                <or>
                   <test
                         property="org.eclipse.core.resources.projectNature"
                         value="com._1c.g5.v8.dt.core.V8ConfigurationNature">
                   </test>
                   <test
                         property="org.eclipse.core.resources.projectNature"
                         value="com._1c.g5.v8.dt.core.V8ExtensionNature">
                   </test>
                   <test
                         property="org.eclipse.core.resources.projectNature"
                         value="com._1c.g5.v8.dt.core.V8ExternalObjectsNature">
                   </test>
                 </or>
             </and>
             </iterate>
          </visibleWhen>
       </command>
    </menuContribution>
    <menuContribution
          allPopups="false"
          locationURI="popup:#BslEditorContext?after=group.edit">
       <menu
             id="xtext.ui.SourceMenu"
             label="%menu.label">
          <command
                commandId="com.e1c.v8codestyle.bsl.ui.commands.addStrictTypesAnnotationCommand"
                style="push">
             <visibleWhen
                   checkEnabled="false">
                <reference
                      definitionId="com._1c.g5.v8.dt.bsl.Bsl.Editor.editable">
                </reference>
             </visibleWhen>
          </command>
       </menu>
    </menuContribution>
 </extension>
 <extension
       point="org.eclipse.ui.handlers">
    <handler
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.internal.bsl.ui.handlers.AddStrictTypeAnnotationModuleEditorHandler"
          commandId="com.e1c.v8codestyle.bsl.ui.commands.addStrictTypesAnnotationCommand">
       <activeWhen>
          <reference
                definitionId="com._1c.g5.v8.dt.bsl.Bsl.Editor.editable">
          </reference></activeWhen>
    </handler>
 </extension>
 
 <extension point="com.e1c.g5.v8.dt.check.fixes">
    <fix class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.UndefinedMethodFix"/>
    <fix class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.UndefinedFunctionFix"/>
    <fix class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.UndefinedVariableFix"/>
    <fix
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.SelfReferenceFix">
    </fix>
    <fix
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.FormSelfReferenceOutdatedFix">
    </fix>
    <fix
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.CommonModuleNamedSelfReferenceFix">
    </fix>
    <fix
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.ManagerModuleNamedSelfReferenceFix">
    </fix>
    <fix
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.ConvertFunctionToProcedureFix">
    </fix>
    <fix
          class="com.e1c.v8codestyle.internal.bsl.ui.ExecutableExtensionFactory:com.e1c.v8codestyle.bsl.ui.qfix.ServerExecutionSafeModeFix">
    </fix>
 </extension>

</plugin>
