<idea-plugin>
  <name>CVS</name>
  <id>CVS</id>
  <vendor>JetBrains</vendor>
  <resource-bundle>messages.CvsBundle</resource-bundle>
  <category>VCS Integration</category>
  <description>
      <![CDATA[
      CVS support <a href="https://blog.jetbrains.com/idea/2020/11/cvs-integration-deprecation">is deprecated</a>, the plugin is provided as is.
      The source code is available on <a href="https://github.com/JetBrains/intellij-obsolete-plugins/tree/master/cvs">GitHub</a><br><br>

      Allows working with CVS version control system.
      The following features are available:
        <ul>
        <li>Dedicated page under the Version Control node in the Settings/Preferences dialog.</li>
        <li>When CVS is not enabled, it is still possible to browse, check out sources from and import into the available CVS repositories.</li>
        <li>When CVS is enabled, the CVS node appears on the VCS menu, and on the context menu of the editor.
        </ul>
      ]]>
   </description>

  <depends>com.intellij.modules.lang</depends>
  <depends>com.intellij.modules.vcs</depends>

  <extensions defaultExtensionNs="com.intellij">
    <registryKey key="cvs.roots.refresh.uses.vfs" defaultValue="true"
                 description="Should CVS roots refresh after update use VFS"/>
    <registryKey key="cvs.server.output.max.lines" defaultValue="1000"
                 description="The maximum number of lines that are displayed per command in the CVS console"/>
    <checkoutProvider implementation="com.intellij.cvsSupport2.checkout.CvsCheckoutProvider"/>

    <applicationService serviceInterface="com.intellij.openapi.cvsIntegration.CvsServices"
                   serviceImplementation="com.intellij.cvsSupport2.impl.CvsServicesImpl"/>
    <applicationService serviceImplementation="com.intellij.cvsSupport2.config.CvsApplicationLevelConfiguration"/>
    <applicationService serviceImplementation="com.intellij.cvsSupport2.application.CvsEntriesManager"/>
    <applicationService serviceImplementation="com.intellij.cvsSupport2.connections.ssh.SSHPasswordProviderImpl"/>
    <applicationService serviceImplementation="com.intellij.cvsSupport2.config.ImportConfiguration"/>
    <applicationService serviceImplementation="com.intellij.cvsSupport2.connections.ssh.SshConnectionPool"/>
    <applicationService serviceImplementation="com.intellij.cvsSupport2.connections.ssh.EmptyPool"/>
    <applicationService serviceImplementation="com.intellij.cvsSupport2.connections.ssh.SocksAuthenticatorManager"/>

    <projectService serviceImplementation="com.intellij.cvsSupport2.ui.CvsTabbedWindow"/>
    <projectService serviceImplementation="com.intellij.cvsSupport2.config.CvsConfiguration"/>
    <projectService serviceImplementation="com.intellij.cvsSupport2.application.CvsStorageSupportingDeletionComponent"/>

    <vcsCheckinHandlerFactory implementation="com.intellij.cvsSupport2.CvsCheckinHandlerFactory"/>

    <search.projectOptionsTopHitProvider implementation="com.intellij.cvsSupport2.config.CvsOptionsTopHitProvider"/>
    <vcs name="CVS" vcsClass="com.intellij.cvsSupport2.CvsVcs2" displayName="CVS" administrativeAreaName="CVS"/>
  </extensions>

  <actions>
    <action id="Cvs.Import" class="com.intellij.cvsSupport2.actions.ImportAction">
      <add-to-group group-id="Vcs.Import"/>
      <add-to-group group-id="Vcs.Operations.Popup.NonVcsAware" relative-to-action="Start.Use.Vcs" anchor="before"/>
    </action>

    <action id="Cvs.BrowseCVSRepository" class="com.intellij.cvsSupport2.actions.BrowseCvsRepositoryAction">
      <add-to-group group-id="Vcs.Browse"/>
    </action>

    <group id="CvsGlobalGroup" class="com.intellij.cvsSupport2.actions.Cvs2Group" popup="true">
      <add-to-group group-id="VcsGlobalGroup" anchor="after" relative-to-action="Vcs.Specific"/>
      <separator/>
      <action id="GlobalSettings" class="com.intellij.cvsSupport2.actions.GlobalSettingsAction"/>
      <action id="ConfigureCvsRoots" class="com.intellij.cvsSupport2.actions.ConfigureCvsRootsAction"/>
      <action id="MigrateCvsRoot" class="com.intellij.cvsSupport2.actions.MigrateCvsRootAction"/>
      <separator/>
    </group>

    <group id="CvsFilePopupGroup" class="com.intellij.cvsSupport2.actions.Cvs2Group" popup="true">
      <add-to-group group-id="VcsGroup" anchor="last"/>
    </group>

    <action id="Cvs.GetFromRepository" class="com.intellij.cvsSupport2.actions.GetFileFromRepositoryAction">
      <add-to-group group-id="UpdateActionGroup" anchor="last"/>
    </action>

    <group id="AddOptionDialogActionGroup">
      <action id="Cvs.Ignore" class="com.intellij.cvsSupport2.actions.IgnoreFileAction"/>
    </group>

    <group id="CvsActions" class="com.intellij.cvsSupport2.actions.Cvs2Group">
      <reference id="CheckinFiles"/>
      <reference id="ChangesView.Revert"/>
      <reference id="UpdateFiles"/>
      <reference id="CheckStatusForFiles"/>
      <action id="Cvs.Checkout" class="com.intellij.cvsSupport2.actions.CheckoutFileAction"/>
      <action id="Cvs.MergeAction" class="com.intellij.cvsSupport2.actions.merge.MergeAction"/>

      <separator/>


      <action id="Cvs.Add" class="com.intellij.cvsSupport2.actions.AddFileOrDirectoryAction"/>
      <action id="Cvs.UndoAdd" class="com.intellij.cvsSupport2.actions.UnmarkAddedAction"/>
      <reference id="Cvs.Ignore"/>

      <separator/>
      <reference id="Compare.SameVersion"/>
      <reference id="Compare.LastVersion"/>
      <reference id="Compare.Selected"/>
      <reference id="Compare.Specified"/>

      <reference id="Vcs.ShowTabbedFileHistory"/>
      <reference id="Vcs.ShowHistoryForBlock"/>
      <reference id="Annotate"/>

      <separator/>
      <action id="Cvs.CreateBranch" class="com.intellij.cvsSupport2.actions.BranchAction"/>
      <action id="Cvs.CreateTag" class="com.intellij.cvsSupport2.actions.CreateTagAction"/>
      <action id="Cvs.DeleteTag" class="com.intellij.cvsSupport2.actions.DeleteTagAction"/>
      <separator/>
      <group id="EditAndWatch" popup="true">
        <action id="Cvs.Edit" class="com.intellij.cvsSupport2.actions.EditAction"/>
        <action id="Cvs.Unedit" class="com.intellij.cvsSupport2.actions.UneditAction"/>
        <action id="Cvs.Editors" class="com.intellij.cvsSupport2.actions.ViewEditorsAction"/>
        <separator/>
        <action id="Cvs.WatchOn" class="com.intellij.cvsSupport2.actions.WatchOnAction"/>
        <action id="Cvs.WatchOff" class="com.intellij.cvsSupport2.actions.WatchOffAction"/>
        <action id="Cvs.WatchAdd" class="com.intellij.cvsSupport2.actions.WatchAddAction"/>
        <action id="Cvs.WatchRemove" class="com.intellij.cvsSupport2.actions.WatchRemoveAction"/>
        <action id="Cvs.Watchers" class="com.intellij.cvsSupport2.actions.ViewWatchersAction"/>
      </group>
      <separator/>
      <action id="Cvs.ToggleOffline" class="com.intellij.cvsSupport2.actions.ToggleOfflineAction"/>
      <add-to-group group-id="UpdateActionGroup" anchor="last"/>

      <separator/>

      <reference id="ChangesView.Browse"/>

      <add-to-group group-id="CvsFilePopupGroup" anchor="last"/>
      <add-to-group group-id="CvsGlobalGroup" anchor="last"/>
    </group>
  </actions>

</idea-plugin>
