<idea-plugin version="2">

  <vendor>JetBrains</vendor>

  <extensions defaultExtensionNs="com.intellij">
    <errorHandler implementation="com.intellij.diagnostic.ITNReporter"/>
    <applicationConfigurable groupId="editor" instance="org.intellij.images.options.impl.OptionsConfigurabe" id="Images" displayName="Images"/>
    <fileEditorProvider implementation="org.intellij.images.editor.impl.ImageFileEditorProvider"/>
    <selectInTarget implementation="org.intellij.images.thumbnail.impl.ThumbnailSelectInTarget"/>
    <applicationService serviceInterface="org.intellij.images.options.OptionsManager"
                        serviceImplementation="org.intellij.images.options.impl.OptionsManagerImpl"/>
    <projectService serviceInterface="org.intellij.images.thumbnail.ThumbnailManager"
                    serviceImplementation="org.intellij.images.thumbnail.impl.ThumbnailManagerImpl"/>
    <fileTypeFactory implementation="org.intellij.images.fileTypes.impl.ImageFileTypeManagerImpl" />
    <fileBasedIndex implementation="org.intellij.images.index.ImageInfoIndex"/>
    <fileLookupInfoProvider implementation="org.intellij.images.completion.ImageLookupInfoProvider"/>
    <documentationProvider implementation="org.intellij.images.fileTypes.ImageDocumentationProvider"/>
  </extensions>

  <application-components>
    <component>
      <interface-class>org.intellij.images.fileTypes.ImageFileTypeManager</interface-class>
      <implementation-class>org.intellij.images.fileTypes.impl.ImageFileTypeManagerImpl</implementation-class>
    </component>
  </application-components>

  <actions>
    <action class="org.intellij.images.actions.EditExternallyAction"
            id="Images.EditExternally"
            icon="ImagesIcons.EditExternally"
            text="Open Image in External Editor">
      <keyboard-shortcut first-keystroke="control alt F4" keymap="$default"/>
      <add-to-group anchor="after" group-id="ProjectViewPopupMenu" relative-to-action="EditSource"/>
    </action>
    <action class="org.intellij.images.actions.ShowThumbnailsAction"
            id="Images.ShowThumbnails" text="Show Image Thumbnails">
      <keyboard-shortcut first-keystroke="shift control T" keymap="$default"/>
      <add-to-group anchor="after" group-id="ProjectViewPopupMenu" relative-to-action="AddToFavorites"/>
      <add-to-group anchor="after" group-id="NavbarPopupMenu" relative-to-action="AddToFavorites"/>
    </action>
    <action class="org.intellij.images.actions.ToggleTransparencyChessboardAction"
            id="Images.ToggleTransparencyChessboard"
            icon="ImagesIcons.ToggleTransparencyChessboard"
            text="Show Chessboard"
            description="Show a chessboard on transparent image parts">
    </action>
    <group id="Images.EditorToolbar">
      <reference id="Images.ToggleTransparencyChessboard"/>
      <action class="org.intellij.images.editor.actions.ToggleGridAction"
              id="Images.Editor.ToggleGrid"
              icon="ImagesIcons.ToggleGrid"
              text="Show Grid">
        <keyboard-shortcut first-keystroke="control QUOTE" keymap="$default"/>
      </action>
      <separator/>
      <action class="org.intellij.images.editor.actions.ZoomInAction"
              id="Images.Editor.ZoomIn"
              icon="AllIcons.Graph.ZoomIn"
              text="Zoom In"
              use-shortcut-of="ExpandAll" />
      <action class="org.intellij.images.editor.actions.ZoomOutAction"
              id="Images.Editor.ZoomOut"
              icon="AllIcons.Graph.ZoomOut"
              text="Zoom Out"
              use-shortcut-of="CollapseAll"/>
      <action class="org.intellij.images.editor.actions.ActualSizeAction"
              id="Images.Editor.ActualSize"
              icon="AllIcons.Graph.ActualZoom"
              text="Zoom to Actual Size">
        <keyboard-shortcut first-keystroke="control DIVIDE" keymap="$default"/>
        <keyboard-shortcut first-keystroke="control SLASH" keymap="$default"/>
      </action>
      <reference id="ShowColorPicker" />
    </group>
    <group id="Images.EditorPopupMenu">
      <reference id="CutCopyPasteGroup"/>
      <separator/>
      <reference id="FindUsages"/>
      <reference id="RefactoringMenu"/>
      <separator/>
      <reference id="Images.EditorToolbar"/>
      <separator/>
      <reference id="CloseEditor"/>
      <separator/>
      <reference id="AddToFavorites"/>
      <separator/>
      <reference id="VersionControlsGroup"/>
      <separator/>
      <reference id="Images.EditExternally"/>
      <reference id="ExternalToolsGroup"/>
    </group>
    <group id="Images.ThumbnailsToolbar">
      <action class="org.intellij.images.thumbnail.actions.UpFolderAction"
              id="Images.Thumbnails.UpFolder"
              text="Parent Folder"
              description="Show image thumbnails from the containing folder"
              icon="AllIcons.Nodes.UpFolder">
        <keyboard-shortcut first-keystroke="BACK_SPACE" keymap="$default"/>
      </action>
      <action class="org.intellij.images.thumbnail.actions.ToggleRecursiveAction"
              id="Images.Thumbnails.ToggleRecursive"
              text="Recursive"
              description="Toggle whether to show the images from subfolders recursively"
              icon="AllIcons.ObjectBrowser.FlattenPackages">
        <keyboard-shortcut first-keystroke="control MULTIPLY" keymap="$default"/>
      </action>
      <separator/>
      <reference id="Images.ToggleTransparencyChessboard"/>
      <separator/>
      <action class="org.intellij.images.thumbnail.actions.HideThumbnailsAction"
              id="Images.Thumbnails.Hide"
              text="Hide"
              description="Hide image thumbnails"
              icon="AllIcons.Actions.Cancel" use-shortcut-of="CloseContent"/>
    </group>
    <group id="Images.ThumbnailsPopupMenu">
      <reference id="CutCopyPasteGroup"/>
      <reference id="EditSource"/>
      <action class="org.intellij.images.thumbnail.actions.EnterAction"
              id="Images.Thumbnails.EnterAction">
        <keyboard-shortcut first-keystroke="ENTER" keymap="$default"/>
      </action>
      <separator/>
      <reference id="Images.ThumbnailsToolbar"/>
      <separator/>
      <reference id="FindUsages"/>
      <reference id="RefactoringMenu"/>
      <separator/>
      <reference id="AddToFavorites"/>
      <separator/>
      <reference id="$Delete"/>
      <separator/>
      <reference id="VersionControlsGroup"/>
      <reference id="CompareTwoFiles"/>
      <separator/>
      <reference id="Images.EditExternally"/>
      <reference id="ExternalToolsGroup"/>
    </group>
  </actions>
</idea-plugin>
