<idea-plugin>
    <dependencies>
        <plugin id="org.intellij.plugins.markdown"/>
        <plugin id="com.intellij.platform.images"/>
        <module name="intellij.platform.langInjection"/>
        <module name="intellij.libraries.grpc.netty.shaded"/>
    </dependencies>
  <!--suppress PluginXmlValidity -->
  <content namespace="jetbrains">
    <!-- The implicit main module of the plugin depends on internal modules (intellij.libraries.grpc.netty.shaded), so it's required to set the namespace for it
         todo: extract elements and dependencies to an explicit content module (see IJPL-212351) -->
  </content>

    <description><![CDATA[
<html>
<body>
<p><span></span></p>
<p><span>With the plugin for the </span>
<span><a href="https://www.r-project.org/">R language</a></span><span>,</span><span
   >&nbsp;you can perform various statistical computing and enjoy your favorite features of the integrated development environment:</span>
</p>
<ul>
  <li><span>Coding assistance:</span>
    <ul>
      <li><span>Error and syntax</span><span>&nbsp;highlighting</span><span>.</span></li>
      <li><span>Code completion</span><span>.</span></li>
      <li><span>Intention actions and quick fixes.</span></li>
    </ul>
   </li>
</ul>
<ul>
  <li><span>Smart editing and auto-saving changes in your R files. Supported formats:</span>
    <ul>
      <li><span>R Script</span></li>
      <li><span>R Markdown</span></li>
    </ul>
  </li>
</ul>
<ul>
  <li><span>Previewing data in the graphic and tabular forms:</span>
    <ul>
      <li><span>R Graphics viewer</span></li>
      <li><span>Table View</span></li>
      <li><span>R HTML viewer</span></li>
      <li><span>R Markdown preview</span></li>
    </ul>
   </li>
</ul>
<ul>
  <li><span>Running and debugging R scripts with the live variables view.</span></li>
  <li><span>Managing R packages; ability to create your own R packages.</span></li>
</ul>
<p><span>Find a bug? Please, file an issue <a href="https://youtrack.jetbrains.com/issues/R">here</a></span>.</p>
<p><span>For more details, see </span><span><a href="https://www.jetbrains.com/help/pycharm/2019.3/r-plugin-support.html">PyCharm web help</a></span><span>.</span></p>
<br>
<p>
This plugin comes with ABSOLUTELY NO WARRANTY.</p>
<p>
This is free software, and you are welcome to redistribute it under certain conditions.
</p>
<br>
<p>
Please note the plugin distribution contains Rkernel program covered by
<a href="https://www.gnu.org/licenses/gpl-3.0.en.html">GPL-3</a>/<a href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPL-3</a> licenses.
</p>
<br>
<p>
You can find the source code in the following repositories:
<ul>
    <li><a href="https://github.com/JetBrains/Rplugin">Rplugin</a></li>
    <li><a href="https://github.com/JetBrains/Rkernel-proto">Rkernel-proto</a></li>
    <li><a href="https://github.com/JetBrains/Rkernel">Rkernel</a></li>
</ul>
</p>
</body>

</html>

        ]]></description>

    <extensionPoints>
      <extensionPoint qualifiedName="com.intellij.rmdFenceProvider"
                      interface="org.jetbrains.r.rmarkdown.RmdFenceProvider" dynamic="true"/>

      <extensionPoint qualifiedName="com.intellij.rmdCellLanguageProvider"
                      interface="org.jetbrains.r.rmarkdown.RmdCellLanguageProvider" dynamic="true"/>

      <extensionPoint qualifiedName="com.intellij.rInterpreterSettingsProvider"
                      interface="com.intellij.r.psi.settings.RInterpreterSettingsProvider" dynamic="true"/>

      <extensionPoint qualifiedName="com.intellij.rLspStatus"
                      interface="org.jetbrains.r.lsp.RLspStatus" dynamic="true"/>
    </extensionPoints>

    <resource-bundle>messages.RPluginBundle</resource-bundle>

    <actions>
        <action id="org.jetbrains.r.console.RConsoleAction"
                class="org.jetbrains.r.console.RConsoleAction">
            <add-to-group group-id="ToolsMenu" anchor="last"/>
        </action>

        <action id="org.jetbrains.r.console.RConsoleViewImpl.RInterruptAction"
                class="org.jetbrains.r.console.RConsoleViewImpl$RInterruptAction"
                icon="AllIcons.Actions.Suspend">
          <keyboard-shortcut keymap="$default" first-keystroke="control C"/>
          <keyboard-shortcut keymap="Mac OS X" first-keystroke="control C" replace-all="true"/>
          <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="control C" replace-all="true"/>
        </action>

        <action id="org.jetbrains.r.console.RConsoleViewImpl.RestartRAction"
                class="org.jetbrains.r.console.RConsoleViewImpl$RestartRAction"
                icon="AllIcons.Actions.Restart"/>

        <action id="org.jetbrains.r.console.RConsoleViewImpl.TerminateRWithReportAction"
                class="org.jetbrains.r.console.RConsoleViewImpl$TerminateRWithReportAction"
                icon="AllIcons.Debugger.KillProcess"/>

        <action id="org.jetbrains.r.console.RConsoleViewImpl.REofAction"
                class="org.jetbrains.r.console.RConsoleViewImpl$REofAction">
          <keyboard-shortcut keymap="$default" first-keystroke="control D"/>
          <keyboard-shortcut keymap="Mac OS X" first-keystroke="control D" replace-all="true"/>
          <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="control D" replace-all="true"/>
        </action>

        <action id="org.jetbrains.r.console.RConsoleViewImpl.RSetCurrentDirectoryFromEditor"
                class="org.jetbrains.r.console.RConsoleViewImpl$RSetCurrentDirectoryFromEditor"
                icon="com.intellij.r.psi.icons.RIcons.ChangeWorkingDirectory"/>

        <action id="RConsoleRenameAction" class="org.jetbrains.r.console.RConsoleRenameAction">
          <add-to-group group-id="ToolWindowContextMenu" anchor="last"/>
        </action>

        <action id="NewRScriptAction" class="org.jetbrains.r.actions.NewRScriptAction"
                icon="com.intellij.r.psi.icons.RIcons.R">
            <add-to-group group-id="NewGroup" relative-to-action="NewFile" anchor="before"/>
        </action>

        <action id="NewRMarkdownAction" class="org.jetbrains.r.actions.NewRMarkdownAction"
                icon="com.intellij.r.psi.icons.RIcons.RMarkdown">
            <add-to-group group-id="NewGroup" relative-to-action="NewRScriptAction" anchor="after"/>
        </action>

        <group id="org.jetbrains.r.run.visualize.actions.RImportDataContextActionGroup"
               class="org.jetbrains.r.run.visualize.actions.RImportDataContextActionGroup" popup="true"
                icon="com.intellij.r.psi.icons.RIcons.R">
            <add-to-group group-id="ProjectViewPopupMenu" relative-to-action="SynchronizeCurrentFile" anchor="after"/>
        </group>

        <action id="VisualizeTableAction" class="org.jetbrains.r.run.visualize.VisualizeTableAction"/>
        <action id="org.jetbrains.r.actions.DumpRInteropMessages" class="org.jetbrains.r.actions.DumpRInteropMessages"/>

        <action id="org.jetbrains.r.console.jobs.RunRJobAction" class="org.jetbrains.r.console.jobs.RunRJobAction"
                icon="com.intellij.r.psi.icons.RIcons.Run.RunJob"/>
    </actions>

    <actions>
      <action id="org.jetbrains.r.actions.REditorHelpAction" class="org.jetbrains.r.actions.REditorHelpAction"
              icon="AllIcons.Actions.Help" >
        <keyboard-shortcut keymap="$default" first-keystroke="F1" replace-all="true"/>
        <keyboard-shortcut keymap="Mac OS X" first-keystroke="F1" replace-all="true"/>
        <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="F1" replace-all="true"/>
      </action>
      <action id="RInsertAssignmentAction" class="org.jetbrains.r.editor.RInsertAssignmentAction">
        <keyboard-shortcut keymap="$default" first-keystroke="alt MINUS"/>
        <keyboard-shortcut keymap="Mac OS X" first-keystroke="alt MINUS" replace-all="true"/>
        <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="alt MINUS" replace-all="true"/>
      </action>
      <action id="RInsertPipeAction" class="org.jetbrains.r.editor.RInsertPipeAction">
        <keyboard-shortcut keymap="$default" first-keystroke="control shift M" replace-all="true"/>
        <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta shift M" replace-all="true"/>
        <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta shift M" replace-all="true"/>
      </action>
        <action id="org.jetbrains.r.actions.RRunAction" class="org.jetbrains.r.actions.RRunAction"
                icon="AllIcons.Actions.Execute" >
          <keyboard-shortcut keymap="$default" first-keystroke="control shift ENTER"/>
          <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta shift ENTER" replace-all="true"/>
          <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta shift ENTER" replace-all="true"/>
            <add-to-group group-id="EditorPopupMenu"/>
        </action>
        <action id="org.jetbrains.r.actions.RDebugAction" class="org.jetbrains.r.actions.RDebugAction"
                icon="AllIcons.Actions.StartDebugger">
          <keyboard-shortcut keymap="$default" first-keystroke="control alt shift ENTER"/>
          <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta alt shift ENTER" replace-all="true"/>
          <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta alt shift ENTER" replace-all="true"/>
            <add-to-group group-id="EditorPopupMenu"/>
        </action>
        <action id="org.jetbrains.r.actions.RunSelection"
                class="org.jetbrains.r.actions.RunSelection"
                icon="com.intellij.r.psi.icons.RIcons.Run.RunCurrent">
            <keyboard-shortcut keymap="$default" first-keystroke="control ENTER"/>
            <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta ENTER" replace-all="true"/>
            <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta ENTER" replace-all="true"/>
            <add-to-group group-id="EditorPopupMenu"/>
        </action>
        <action id="org.jetbrains.r.actions.DebugSelection"
                class="org.jetbrains.r.actions.DebugSelection"
                icon="com.intellij.r.psi.icons.RIcons.Run.DebugCurrent">
          <keyboard-shortcut keymap="$default" first-keystroke="control alt ENTER"/>
          <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta alt ENTER" replace-all="true"/>
          <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta alt ENTER" replace-all="true"/>
            <add-to-group group-id="EditorPopupMenu"/>
        </action>
        <action id="RConsoleNextLineAction" class="org.jetbrains.r.console.RConsoleNextLineAction">
          <keyboard-shortcut keymap="$default" first-keystroke="shift ENTER"/>
          <keyboard-shortcut keymap="Mac OS X" first-keystroke="shift ENTER" replace-all="true"/>
          <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="shift ENTER" replace-all="true"/>
        </action>
        <action id="org.jetbrains.r.actions.RMarkdownInterruptAction"
                class="org.jetbrains.r.actions.RMarkdownInterruptAction"
                icon="AllIcons.Actions.Suspend">
          <keyboard-shortcut keymap="$default" first-keystroke="control alt D"/>
          <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta alt D" replace-all="true"/>
          <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta alt D" replace-all="true"/>
        </action>
        <action id="RConsole.History.Older" class="com.intellij.openapi.actionSystem.EmptyAction"/>
    </actions>

<!-- chunk anctions-->
    <actions>
        <group id="org.jetbrains.r.rendering.chunk.RunChunkActions">
            <action id="org.jetbrains.r.rendering.chunk.RunChunkAction"
                    class="org.jetbrains.r.rendering.chunk.RunChunkAction"
                    icon="AllIcons.Actions.Execute">
                <keyboard-shortcut keymap="$default" first-keystroke="control alt C"/>
                <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta alt C" replace-all="true"/>
                <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta alt C" replace-all="true"/>
            </action>
            <action id="org.jetbrains.r.rendering.chunk.DebugChunkAction"
                    class="org.jetbrains.r.rendering.chunk.DebugChunkAction"
                    icon="AllIcons.Actions.StartDebugger">
                <keyboard-shortcut keymap="$default" first-keystroke="control alt X"/>
                <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta alt X" replace-all="true"/>
                <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta alt X" replace-all="true"/>
            </action>
            <action id="org.jetbrains.r.rendering.chunk.RunChunksAboveAction"
                    class="org.jetbrains.r.rendering.chunk.RunChunksAboveAction"
                    icon="/icons/run/runAbove.svg">
                <keyboard-shortcut keymap="$default" first-keystroke="control alt B"/>
                <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta alt B" replace-all="true"/>
                <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta alt B" replace-all="true"/>
            </action>
            <action id="org.jetbrains.r.rendering.chunk.RunChunksBelowAction"
                    class="org.jetbrains.r.rendering.chunk.RunChunksBelowAction"
                    icon="/icons/run/runBelow.svg"/>
            <action id="RMarkdownNewChunk" class="org.jetbrains.r.rmarkdown.RMarkdownNewChunk"
                    icon="AllIcons.General.Add">
                <keyboard-shortcut keymap="$default" first-keystroke="control alt I"/>
                <keyboard-shortcut keymap="Mac OS X" first-keystroke="meta alt I" replace-all="true"/>
                <keyboard-shortcut keymap="Mac OS X 10.5+" first-keystroke="meta alt I" replace-all="true"/>
            </action>
            <action id="org.jetbrains.r.rendering.chunk.ClearChunkOutputsAction"
                    class="org.jetbrains.r.rendering.chunk.ClearChunkOutputsAction"
                    icon="AllIcons.General.Reset"/>
        </group>

        <group id="org.jetbrains.r.rendering.chunk.toolbar">
          <reference ref="org.jetbrains.r.rendering.chunk.RunChunkAction"/>
          <reference ref="org.jetbrains.r.rendering.chunk.DebugChunkAction"/>
          <reference ref="org.jetbrains.r.rendering.chunk.RunChunksAboveAction"/>
          <reference ref="org.jetbrains.r.rendering.chunk.RunChunksBelowAction"/>
          <separator/>
          <reference ref="org.jetbrains.r.rendering.chunk.ClearChunkOutputsAction"/>
        </group>
    </actions>

    <!-- Chunk output actions -->
    <actions>
        <group id="org.jetbrains.r.rendering.chunk.ChunkOutputToolbarActions">
            <action id="org.jetbrains.r.rendering.chunk.ExportImageAction"
                    class="org.jetbrains.r.rendering.chunk.ExportImageAction"
                    icon="AllIcons.ToolbarDecorator.Export"/>
            <action id="org.jetbrains.r.rendering.chunk.ZoomImageAction"
                    class="org.jetbrains.r.rendering.chunk.ZoomImageAction"
                    icon="AllIcons.Actions.Preview"/>
            <action id="org.jetbrains.r.rendering.chunk.ImageSettingsAction"
                    class="org.jetbrains.r.rendering.chunk.ImageSettingsAction"
                    icon="AllIcons.General.GearPlain"/>
            <action id="org.jetbrains.r.visualization.inlays.components.SaveOutputAction"
                    class="org.jetbrains.r.visualization.inlays.components.SaveOutputAction"
                    icon="AllIcons.Actions.MenuSaveall"/>
            <action id="org.jetbrains.r.visualization.inlays.components.CopyImageToClipboardAction"
                    class="org.jetbrains.r.visualization.inlays.components.CopyImageToClipboardAction"
                    icon="AllIcons.Actions.Copy"/>
        </group>
    </actions>

    <!-- Variable view actions -->
    <actions>
        <group id="org.jetbrains.r.debugger.RXVariablesViewActions">
            <action id="org.jetbrains.r.debugger.RImportBaseDataAction"
                    class="org.jetbrains.r.debugger.RImportBaseDataAction"/>
            <action id="org.jetbrains.r.debugger.RImportCsvDataAction"
                    class="org.jetbrains.r.debugger.RImportCsvDataAction"/>
            <action id="org.jetbrains.r.debugger.RImportExcelDataAction"
                    class="org.jetbrains.r.debugger.RImportExcelDataAction"/>
        </group>
    </actions>

    <!-- Graphics panel actions -->
    <actions>
        <group id="org.jetbrains.r.run.graphics.ui.RGraphicsToolbarActions">
            <action id="org.jetbrains.r.run.graphics.ui.RPreviousGraphicsAction"
                    class="org.jetbrains.r.run.graphics.ui.RPreviousGraphicsAction"
                    icon="AllIcons.Actions.Back"/>
            <action id="org.jetbrains.r.run.graphics.ui.RNextGraphicsAction"
                    class="org.jetbrains.r.run.graphics.ui.RNextGraphicsAction"
                    icon="AllIcons.Actions.Forward"/>
            <action id="org.jetbrains.r.run.graphics.ui.RExportGraphicsAction"
                    class="org.jetbrains.r.run.graphics.ui.RExportGraphicsAction"
                    icon="AllIcons.ToolbarDecorator.Export"/>
            <action id="org.jetbrains.r.run.graphics.ui.RCopyGraphicsAction"
                    class="org.jetbrains.r.run.graphics.ui.RCopyGraphicsAction"
                    icon="AllIcons.Actions.Copy"/>
            <action id="org.jetbrains.r.run.graphics.ui.RZoomGraphicsAction"
                    class="org.jetbrains.r.run.graphics.ui.RZoomGraphicsAction"
                    icon="AllIcons.Actions.Preview"/>
            <action id="org.jetbrains.r.run.graphics.ui.RClearGraphicsAction"
                    class="org.jetbrains.r.run.graphics.ui.RClearGraphicsAction"
                    icon="AllIcons.Actions.GC"/>
            <action id="org.jetbrains.r.run.graphics.ui.RClearAllGraphicsAction"
                    class="org.jetbrains.r.run.graphics.ui.RClearAllGraphicsAction"
                    icon="AllIcons.Actions.Cancel"/>
            <action id="org.jetbrains.r.run.graphics.ui.RTuneGraphicsDeviceAction"
                    class="org.jetbrains.r.run.graphics.ui.RTuneGraphicsDeviceAction"
                    icon="AllIcons.General.GearPlain"/>
        </group>
    </actions>

    <!-- Installed packages panel actions -->
    <actions>
        <group id="org.jetbrains.r.packages.remote.ui.RInstalledPackagesPanelActions">
            <action id="org.jetbrains.r.packages.remote.ui.RInstallAction"
                    class="org.jetbrains.r.packages.remote.ui.RInstallAction"
                    icon="AllIcons.General.Add"/>
            <action id="org.jetbrains.r.packages.remote.ui.RUpgradeAction"
                    class="org.jetbrains.r.packages.remote.ui.RUpgradeAction"
                    icon="AllIcons.Actions.MoveUp"/>
            <action id="org.jetbrains.r.packages.remote.ui.RUpgradeAllAction"
                    class="org.jetbrains.r.packages.remote.ui.RUpgradeAllAction"/>
            <action id="org.jetbrains.r.packages.remote.ui.RRefreshAction"
                    class="org.jetbrains.r.packages.remote.ui.RRefreshAction"
                    icon="AllIcons.Actions.Refresh"/>
            <action id="org.jetbrains.r.packages.remote.ui.RLoadUnloadAction"
                    class="org.jetbrains.r.packages.remote.ui.RLoadUnloadAction"/>
            <action id="org.jetbrains.r.packages.remote.ui.RNavigateToDocumentationAction"
                    class="org.jetbrains.r.packages.remote.ui.RNavigateToDocumentationAction"/>
            <action id="org.jetbrains.r.packages.remote.ui.ROpenLinkAction"
                    class="org.jetbrains.r.packages.remote.ui.ROpenLinkAction"/>
            <action id="org.jetbrains.r.packages.remote.ui.RUninstallAction"
                    class="org.jetbrains.r.packages.remote.ui.RUninstallAction"/>
            <action id="org.jetbrains.r.packages.remote.ui.RInstallPackageAction"
                    class="org.jetbrains.r.packages.remote.ui.RInstallPackageAction"/>
            <action id="org.jetbrains.r.packages.remote.ui.RUpdatePackageAction"
                    class="org.jetbrains.r.packages.remote.ui.RUpdatePackageAction"/>
        </group>
    </actions>

    <!-- Build package panel actions -->
    <actions>
        <group id="org.jetbrains.r.packages.build.ui.RPackageBuildToolbarActions">
            <action id="org.jetbrains.r.packages.build.ui.RInstallPackageAction"
                    class="org.jetbrains.r.packages.build.ui.RInstallPackageAction"
                    icon="AllIcons.Toolwindows.ToolWindowBuild"/>
            <action id="org.jetbrains.r.packages.build.ui.RCheckPackageAction"
                    class="org.jetbrains.r.packages.build.ui.RCheckPackageAction"
                    icon="AllIcons.General.InspectionsOK"/>
            <action id="org.jetbrains.r.packages.build.ui.RTestPackageAction"
                    class="org.jetbrains.r.packages.build.ui.RTestPackageAction"
                    icon="AllIcons.RunConfigurations.TestState.Run"/>
            <action id="org.jetbrains.r.packages.build.ui.RSetupTestsAction"
                    class="org.jetbrains.r.packages.build.ui.RSetupTestsAction"
                    icon="AllIcons.Actions.NewFolder"/>
            <action id="org.jetbrains.r.packages.build.ui.RPackageBuildSettingsAction"
                    class="org.jetbrains.r.packages.build.ui.RPackageBuildSettingsAction"
                    icon="AllIcons.General.GearPlain"/>
        </group>
    </actions>

    <!-- Project view actions -->
    <actions>
      <action
        id="org.jetbrains.r.actions.CreateRTestFileAction"
        class="org.jetbrains.r.actions.CreateRTestFileAction"
        icon="AllIcons.Nodes.Test">
        <add-to-group group-id="ProjectViewPopupMenu" relative-to-action="SynchronizeCurrentFile" anchor="after"/>
      </action>
    </actions>

    <extensions defaultExtensionNs="com.intellij">
        <lang.elementManipulator forClass="com.intellij.r.psi.psi.api.RStringLiteralExpression"
                                 implementationClass="com.intellij.r.psi.psi.impl.RStringLiteralManipulator"/>
        <additionalTextAttributes scheme="Default" file="colorSchemes/RMarkdownChunkDefault.xml"/>
        <additionalTextAttributes scheme="Darcula" file="colorSchemes/RMarkdownChunkDarcula.xml"/>
        <additionalTextAttributes scheme="Default" file="colorSchemes/RLanguageDefault.xml"/>
        <additionalTextAttributes scheme="Darcula" file="colorSchemes/RLanguageDarcula.xml"/>

        <statistics.counterUsagesCollector implementationClass="org.jetbrains.r.statistics.RInterpretersCollector"/>
        <statistics.counterUsagesCollector implementationClass="org.jetbrains.r.statistics.RWorkflowCollector"/>

        <indexedRootsProvider implementation="org.jetbrains.r.settings.RIndexableSetContributor"/>
        <fileType name="R" implementationClass="com.intellij.r.psi.RFileType" fieldName="INSTANCE" language="R" extensions="R;Rprofile"/>
        <fileType name="RMarkdown" implementationClass="com.intellij.r.psi.rmarkdown.RMarkdownFileType" fieldName="INSTANCE"
                  language="RMarkdown" extensions="Rmd"/>
      <fileType name="Quarto" implementationClass="org.jetbrains.r.quarto.QuartoFileType" fieldName="INSTANCE"
                language="Quarto" extensions="Qmd"/>
        <fileType name="Roxygen" implementationClass="com.intellij.r.psi.roxygen.RoxygenFileType" fieldName="INSTANCE" language="Roxygen"/>

        <lang.fileViewProviderFactory language="RMarkdown"
                                      implementationClass="org.jetbrains.r.rmarkdown.RMarkdownFileViewProviderFactory"/>
        <lang.fileViewProviderFactory language="Quarto"
                                      implementationClass="org.jetbrains.r.quarto.QuartoFileViewProviderFactory"/>

        <lang.syntaxHighlighterFactory language="R"
                                       implementationClass="com.intellij.r.psi.highlighting.RSyntaxHighlighterFactory"/>
        <highlightVisitor implementation="com.intellij.r.psi.highlighting.RRainbowVisitor"/>
        <lang.syntaxHighlighter language="Roxygen" implementationClass="com.intellij.r.psi.roxygen.RoxygenSyntaxHighlighter"/>

        <actionPromoter implementation="org.jetbrains.r.actions.RActionPromoter"/>

        <statusBarWidgetFactory id="rInterpreterWidget"
                                implementation="org.jetbrains.r.configuration.RInterpreterBarWidgetFactory"
                                order="after CodeStyleStatusBarWidget, before pythonInterpreterWidget, before git, before hg, before Notifications"/>

        <!-- Code style and formatting -->
        <codeStyleSettingsProvider implementation="org.jetbrains.r.editor.formatting.RCodeStyleSettingsProvider"/>
        <langCodeStyleSettingsProvider
                implementation="org.jetbrains.r.editor.formatting.RLanguageCodeStyleSettingsProvider"/>
        <colorSettingsPage implementation="com.intellij.r.psi.highlighting.RColorSettingsPage"/>
        <colorSettingsPage implementation="com.intellij.r.psi.highlighting.RMarkdownColorSettingsPage"/>
        <lang.formatter language="R" implementationClass="org.jetbrains.r.editor.formatting.RFormattingModelBuilder"/>
        <lang.braceMatcher language="R" implementationClass="org.jetbrains.r.editor.RBraceMatcher"/>
        <lang.braceMatcher language="Roxygen" implementationClass="com.intellij.r.psi.roxygen.RoxygenBraceMatcher"/>
        <quoteHandler className="org.jetbrains.r.editor.RQuoteHandler" fileType="R"/>

        <lang.foldingBuilder language="R" implementationClass="org.jetbrains.r.editor.RFoldingBuilder"/>
        <annotator language="R" implementationClass="com.intellij.r.psi.annotator.RAnnotator"/>
        <annotator language="Roxygen" implementationClass="org.jetbrains.r.roxygen.annotator.RoxygenAnnotator"/>
        <lang.namesValidator language="R" implementationClass="com.intellij.r.psi.refactoring.RNamesValidator"/>

        <!-- Codeinsight -->

        <lang.ast.factory language="R" implementationClass="com.intellij.r.psi.parsing.RAstFactory"/>
        <lang.ast.factory language="Roxygen" implementationClass="com.intellij.r.psi.roxygen.parsing.RoxygenAstFactory"/>

        <lang.parserDefinition language="R" implementationClass="com.intellij.r.psi.parsing.RParserDefinition"/>
        <lang.parserDefinition language="RMarkdown" implementationClass="org.jetbrains.r.rmarkdown.RMarkdownParserDefinition"/>
        <lang.parserDefinition language="Quarto" implementationClass="org.jetbrains.r.quarto.QuartoParserDefinition"/>
        <lang.parserDefinition language="Roxygen" implementationClass="com.intellij.r.psi.roxygen.parsing.RoxygenParserDefinition"/>

        <languageInjector implementation="com.intellij.r.psi.roxygen.RoxygenLanguageInjector"/>

        <lang.formatter language="RMarkdown" implementationClass="org.jetbrains.r.editor.formatting.RMarkdownFormattingModelBuilder"/>

        <rmdFenceProvider implementation="org.jetbrains.r.rmarkdown.RmdFenceProviderForR"/>

        <rmdCellLanguageProvider implementation="org.jetbrains.r.rmarkdown.RmdCellLanguageProviderForR"/>
        <rmdCellLanguageProvider implementation="org.jetbrains.r.rmarkdown.RmdCellLanguageProviderForPython"/>

        <lang.tokenSeparatorGenerator language="R" implementationClass="com.intellij.r.psi.RTokenSeparatorGenerator"/>

        <fileEditorProvider implementation="org.jetbrains.r.rendering.editor.RFileEditorProvider"/>
        <fileEditorProvider implementation="org.jetbrains.r.run.visualize.RTableEditorProvider"/>

        <stubIndex implementation="com.intellij.r.psi.psi.stubs.RAssignmentNameIndex"/>
        <stubIndex implementation="com.intellij.r.psi.psi.stubs.RAssignmentCompletionIndex"/>
        <stubIndex implementation="com.intellij.r.psi.psi.stubs.RInternalAssignmentCompletionIndex"/>
        <stubIndex implementation="com.intellij.r.psi.psi.stubs.classes.RS4ClassNameIndex"/>
        <stubIndex implementation="com.intellij.r.psi.psi.stubs.classes.RS4GenericIndex"/>
        <stubIndex implementation="com.intellij.r.psi.psi.stubs.classes.RS4MethodsIndex"/>
        <stubIndex implementation="com.intellij.r.psi.psi.stubs.classes.R6ClassNameIndex"/>
        <stubElementTypeHolder class="com.intellij.r.psi.parsing.RElementTypes"/>

        <lang.commenter language="R" implementationClass="org.jetbrains.r.editor.RCommenter"/>
        <lang.commenter language="Roxygen" implementationClass="org.jetbrains.r.roxygen.usage.RoxygenCommenter"/>
        <enterHandlerDelegate implementation="org.jetbrains.r.editor.REnterAdapter"/>
        <enterHandlerDelegate implementation="com.intellij.r.psi.roxygen.RoxygenEnterInLineCommentHandler"/>
        <enterHandlerDelegate implementation="com.intellij.r.psi.roxygen.RoxygenEnterDelegateToHostHandler" order="last"/>
        <backspaceHandlerDelegate implementation="org.jetbrains.r.editor.RBackspaceHandler"/>

        <lang.findUsagesProvider implementationClass="com.intellij.r.psi.psi.references.RFindUsagesProvider" language="R"/>
        <lang.findUsagesProvider implementationClass="org.jetbrains.r.roxygen.usage.RoxygenFindUsagesProvider" language="Roxygen"/>
        <elementDescriptionProvider implementation="com.intellij.r.psi.psi.references.RPomTargetDescriptionProvider"/>
        <elementDescriptionProvider implementation="com.intellij.r.psi.classes.s4.RS4PomTargetDescriptionProvider"/>
        <usageTypeProvider implementation="org.jetbrains.r.roxygen.usage.RoxygenUsageTypeProvider"/>
        <targetElementEvaluator language="R" implementationClass="org.jetbrains.r.codeInsight.findUsages.RTargetElementEvaluator"/>

        <completion.contributor language="R" implementationClass="org.jetbrains.r.editor.RCompletionContributor"/>
        <completion.contributor language="Roxygen" implementationClass="org.jetbrains.r.roxygen.RoxygenCompletionContributor"/>
        <completion.contributor language="Markdown" implementationClass="org.jetbrains.r.editor.RMarkdownCompletionContributor"/>
        <typedHandler implementation="org.jetbrains.r.console.RConsoleAutopopupBlockingHandler" id="rBlockAutoPopup"
                      order="first, before completionAutoPopup"/>

        <extendWordSelectionHandler implementation="org.jetbrains.r.editor.RExtendWordSelectionHandler"/>
        <basicWordSelectionFilter implementation="org.jetbrains.r.editor.RExtendWordSelectionHandler$RBasicFilter"/>

        <breadcrumbsInfoProvider implementation="org.jetbrains.r.breadcrumbs.RBreadcrumbsProvider"/>

        <fileBreadcrumbsCollector implementation="org.jetbrains.r.breadcrumbs.RFileBreadcrumbsCollector" order="first"/>

        <controlFlowProvider implementation="com.intellij.r.psi.psi.cfg.RControlFlowProvider"/>

        <psi.referenceContributor language="R" implementation="com.intellij.r.psi.psi.references.RReferenceContributor"/>
        <psi.referenceContributor language="R" implementation="com.intellij.r.psi.classes.s4.RS4ReferenceContributor"/>
        <referencesSearch implementation="com.intellij.r.psi.classes.s4.RS4ReferenceSearcher"/>

        <typedHandler implementation="org.jetbrains.r.editor.RCompletionAutoPopupHandler" order="first, before completionAutoPopup"/>
        <typedHandler implementation="org.jetbrains.r.roxygen.RoxygenTypedHandler"/>
        <lookup.charFilter implementation="org.jetbrains.r.editor.RCharFilter" order="first"/>
        <!--<targetElementEvaluator language="R" implementationClass="org.jetbrains.r.editor.RTargetElementEvaluator"/>-->
        <editorSmartKeysConfigurable instance="org.jetbrains.r.editor.RSmartKeys"
                                     id="editor.preferences.rOptions"
                                     displayName="R"/>

        <filetype.stubBuilder filetype="RPluginSkeletonFile" implementationClass="com.intellij.r.psi.skeleton.RSkeletonFileStubBuilder"/>
        <fileType.fileViewProviderFactory filetype="RPluginSkeletonFile" implementationClass="com.intellij.r.psi.skeleton.RSkeletonViewProviderFactory"/>
        <stubElementTypeHolder class="com.intellij.r.psi.skeleton.psi.RSkeletonElementTypes"/>
        <fileType extensions="RPluginSkeletonFile" name="RPluginSkeletonFile" fieldName="INSTANCE" implementationClass="com.intellij.r.psi.skeleton.RSkeletonFileType"/>

        <codeInsight.parameterInfo language="R" implementationClass="org.jetbrains.r.hints.parameterInfo.RParameterInfoHandler"/>
        <codeInsight.parameterNameHints language="R" implementationClass="org.jetbrains.r.hints.parameterInfo.RInlayParameterHintsProvider"/>
        <codeInsight.inlayProvider language="R" implementationClass="org.jetbrains.r.hints.RReturnHintInlayProvider"/>
        <highlightingPassFactory implementation="org.jetbrains.r.hints.parameterInfo.RMarkdownParameterHintsPassFactory"/>
        <editorFactoryListener implementation="org.jetbrains.r.console.RConsoleEditorFactoryListener"/>
        <editorFactoryListener implementation="org.jetbrains.r.hints.RReturnHintEditorFactoryListener"/>
        <editorFactoryListener implementation="org.jetbrains.r.rendering.editor.RMarkdownEditorFactoryListener"/>
        <highlightingPassFactory implementation="org.jetbrains.r.hints.RReturnHintPass$Factory"/>

        <!-- Settings -->
        <projectConfigurable groupId="project"
                             id="org.jetbrains.r.configuration.RSettingsProjectConfigurable"
                             bundle="messages.RPluginBundle"
                             key="r.settings"
                             instance="com.intellij.r.psi.configuration.RSettingsProjectConfigurable"/>

        <applicationService serviceImplementation="com.intellij.r.psi.settings.RInterpreterSettings"/>

        <applicationService serviceImplementation="org.jetbrains.r.settings.REditorSettings"/>

        <applicationService serviceImplementation="org.jetbrains.r.packages.remote.RPackageDescriptionCache"/>

        <projectService serviceInterface="com.intellij.r.psi.rinterop.RInteropManager"
                        serviceImplementation="org.jetbrains.r.rinterop.RInteropManagerImpl"/>

        <projectService serviceInterface="com.intellij.r.psi.run.visualize.RVisualization"
                        serviceImplementation="org.jetbrains.r.run.visualize.RVisualizationImpl"/>

        <projectService serviceInterface="com.intellij.r.psi.packages.RPackageProjectManager"
                        serviceImplementation="org.jetbrains.r.packages.RPackageProjectManagerImpl"/>

        <projectService serviceInterface="com.intellij.r.psi.debugger.RDebuggerPanelManager"
                        serviceImplementation="org.jetbrains.r.debugger.RDebuggerPanelManagerImpl"/>

        <projectService serviceInterface="com.intellij.r.psi.interpreter.RInterpreterManager"
                        serviceImplementation="org.jetbrains.r.interpreter.RInterpreterManagerImpl"/>

        <projectService serviceInterface="com.intellij.r.psi.interpreter.RInterpreterStateManager"
                        serviceImplementation="org.jetbrains.r.interpreter.RInterpreterStateManagerImpl"/>

        <projectService serviceInterface="com.intellij.r.psi.interpreter.RLocalInterpreterProvider"
                        serviceImplementation="org.jetbrains.r.interpreter.RLocalInterpreterProviderImpl"/>

        <projectService serviceInterface="com.intellij.r.psi.console.RConsoleManager"
                        serviceImplementation="org.jetbrains.r.console.RConsoleManagerImpl"/>

        <projectService serviceImplementation="org.jetbrains.r.settings.REditorSettings"/>

        <projectService serviceInterface="org.jetbrains.r.packages.remote.RepoProvider"
                        serviceImplementation="org.jetbrains.r.packages.remote.RBasicRepoProvider"/>

        <xdebugger.breakpointType implementation="com.intellij.r.psi.run.debug.RLineBreakpointType"/>

        <xdebugger.customMuteBreakpointHandler implementation="org.jetbrains.r.console.RDebuggerCustomMuteBreakpointHandler"/>

        <editorNotificationProvider implementation="org.jetbrains.r.console.RSourceChangedEditorNotificationProvider"/>

        <!--- RMarkdown ui-->
        <fileEditorProvider implementation="org.jetbrains.r.rendering.editor.RMarkdownFileEditorProvider"/>

        <!-- tool windows-->
        <lang.psiStructureViewFactory language="R"
                                      implementationClass="com.intellij.r.psi.psi.RScriptStructureViewFactory"/>

        <toolWindow id="R_Jobs" anchor="bottom" canCloseContents="false" icon="com.intellij.r.psi.icons.RIcons.ToolWindow.RConsole"
                    factoryClass="org.jetbrains.r.console.jobs.RJobsToolWindowFactory" secondary="false"
                    order="after R_Console"/>

        <toolWindow id="R_Console" anchor="bottom" canCloseContents="true" icon="com.intellij.r.psi.icons.RIcons.ToolWindow.RConsole"
                    factoryClass="org.jetbrains.r.console.RConsoleToolWindowFactory" secondary="false"/>


        <toolWindow id="R_Tools" anchor="right" canCloseContents="false" icon="com.intellij.r.psi.icons.RIcons.ToolWindow.RConsole"
                    factoryClass="org.jetbrains.r.rendering.toolwindow.RToolWindowFactory" secondary="false"/>


        <lang.psiStructureViewFactory language="RMarkdown"
                                      implementationClass="org.jetbrains.r.rmarkdown.structureView.RMarkdownStructureViewFactory"/>



        <!-- refactorings -->
        <lang.refactoringSupport language="R" implementationClass="org.jetbrains.r.refactoring.RRefactoringProvider"/>
        <lang.refactoringSupport language="Roxygen" implementationClass="org.jetbrains.r.roxygen.RoxygenRefactoringProvider"/>
        <renameInputValidator implementation="org.jetbrains.r.refactoring.rename.RRenameInputValidator"/>
        <nameSuggestionProvider implementation="org.jetbrains.r.refactoring.rename.RNameSuggestionProvider"/>
        <renameHandler implementation="org.jetbrains.r.refactoring.rename.RMemberInplaceRenameHandler"/>
        <renameHandler implementation="org.jetbrains.r.refactoring.rename.RVariableInplaceRenameHandler"/>
        <renamePsiElementProcessor implementation="org.jetbrains.r.refactoring.rename.RenameRPsiElementProcessor"
                                 id="RPsiElement"
                                 order="first"/>

        <!--see /Users/brandl/projects/jb/intellij-community/plugins/groovy/src/META-INF/rplugin-common.xml:448-->
        <vetoRenameCondition implementation="com.intellij.r.psi.psi.references.RenamingVetoCondition"/>
        <inlineActionHandler implementation="org.jetbrains.r.refactoring.inline.RInlineAssignmentHandler"/>

        <!-- coding assistance-->
        <liveTemplateContext contextId="R" implementation="org.jetbrains.r.editor.RContextType"/>
        <defaultLiveTemplates file="liveTemplates/rtemplates.xml"/>
        <internalFileTemplate name="R Script"/>
        <internalFileTemplate name="RMarkdown"/>

        <scratch.rootType implementation="org.jetbrains.r.console.RConsoleRootType"/>


        <!-- Editor notification providers -->
        <editorNotificationProvider implementation="org.jetbrains.r.notifications.RDataImportNotificationProvider"/>


        <!-- Inspections -->

        <!-- note: display names not needed if defined in impl-->
        <!--https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000074350-Why-are-default-xml-plugin-settings-preferred-over-code-based-component-configuration- -->
        <localInspection shortName="RUnusedParameter" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.unusedParameter.name"
                         implementationClass="org.jetbrains.r.inspections.UnusedParameterInspection"/>

        <localInspection shortName="RUnusedVariable" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.unusedVariable.name"
                         implementationClass="org.jetbrains.r.inspections.UnusedVariableInspection"/>

        <localInspection shortName="RUnresolvedReference" language="R" enabledByDefault="true" groupName="R"
                         level="WARNING"
                         bundle="messages.RPluginBundle" key="inspection.unresolvedReference.name"
                         implementationClass="org.jetbrains.r.inspections.UnresolvedReferenceInspection"/>

        <localInspection shortName="RMarkdownRequirements" language="R" enabledByDefault="true" groupName="R"
                         level="WARNING"
                         bundle="messages.RPluginBundle" key="inspection.markdownRequirements.name"
                         implementationClass="org.jetbrains.r.inspections.MarkdownRequirementsInspection"/>

        <localInspection shortName="RMissingPackage" language="R" enabledByDefault="true" groupName="R" level="ERROR"
                         bundle="messages.RPluginBundle" key="inspection.missingPackage.name"
                         implementationClass="org.jetbrains.r.inspections.MissingPackageInspection"/>

        <localInspection shortName="RBooleanExpressionSimplifier" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.simplifyBooleanExpression.name"
                         implementationClass="org.jetbrains.r.inspections.BooleanExpressionSimplifier"/>

        <localInspection shortName="RCompareToNaInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.compareToNa.name"
                         implementationClass="org.jetbrains.r.inspections.CompareToNaInspection"/>

        <localInspection shortName="RPasteToPaste0Inspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.paste2paste0.name"
                         implementationClass="org.jetbrains.r.inspections.PasteToPaste0Inspection"/>

        <localInspection shortName="RDplyrBooleanOperatorInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.dplyrBooleanOperator.name"
                         implementationClass="org.jetbrains.r.inspections.dplyr.DplyrBooleanOperatorsInspection"/>

        <localInspection shortName="RDplyrCallToPipeInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.dplyrCallToPipe.name"
                         implementationClass="org.jetbrains.r.inspections.dplyr.DplyrCallToPipeInspection"/>

        <localInspection shortName="RAssignmentInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.assignment.name"
                         implementationClass="org.jetbrains.r.inspections.AssignmentInspection"/>

        <localInspection shortName="RRedundantConcatenationInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.redundant.concatenation.name"
                         implementationClass="org.jetbrains.r.inspections.RedundantConcatenationInspection"/>

        <localInspection shortName="RRedundantSemicolonInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.redundant.semicolon.name"
                         implementationClass="org.jetbrains.r.inspections.RedundantSemicolonInspection"/>

        <localInspection shortName="RUnsafeSequenceInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.unsafe.sequence.name"
                         implementationClass="org.jetbrains.r.inspections.UnsafeSequenceInspection"/>

        <localInspection shortName="RClosureAssignmentInspection" language="R" enabledByDefault="false" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.closure.assignment.name"
                         implementationClass="org.jetbrains.r.inspections.ClosureAssignmentInspection"/>

        <localInspection shortName="RTripleColonToDoubleColonInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.triple.colon.to.double.colon.name"
                         implementationClass="org.jetbrains.r.inspections.TripleColonToDoubleColonInspection"/>

        <localInspection shortName="RNamingConventionInspection" language="R" enabledByDefault="false" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.naming.convention.name"
                         implementationClass="org.jetbrains.r.inspections.NamingConventionInspection"/>

      <localInspection shortName="RDeprecatedDoubleStarts" language="R" enabledByDefault="true" groupName="R"
                       bundle="messages.RPluginBundle" key="inspection.deprecated.double.starts.name"
                       implementationClass="org.jetbrains.r.inspections.DeprecatedDoubleStarts"/>

      <!-- S4 Inspections -->
        <localInspection shortName="RDeprecatedSetClassArgsInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.deprecated.setClass.args.name"
                         implementationClass="org.jetbrains.r.inspections.classes.s4.DeprecatedSetClassArgsInspection"/>

        <localInspection shortName="RInstanceOfVirtualS4ClassInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.virtual.s4class.instance.name"
                         implementationClass="org.jetbrains.r.inspections.classes.s4.InstanceOfVirtualS4ClassInspection"/>

        <localInspection shortName="RMissingS4ClassNameInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.missing.s4.class.name.name"
                         implementationClass="org.jetbrains.r.inspections.classes.s4.MissingS4ClassNameInspection"/>

        <localInspection shortName="RUnknownS4ClassNameInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.unknown.s4.class.name.name"
                         implementationClass="org.jetbrains.r.inspections.classes.s4.UnknownS4ClassNameInspection"/>

        <localInspection shortName="RUnknownS4GenericInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.unknown.s4.generic.name"
                         implementationClass="org.jetbrains.r.inspections.classes.s4.UnknownS4GenericInspection"/>

        <!-- R6 Inspections -->
        <localInspection shortName="UnmatchingR6ClassNameInspection" language="R" enabledByDefault="true" groupName="R"
                         bundle="messages.RPluginBundle" key="inspection.r6class.naming.convention.classname"
                         implementationClass="org.jetbrains.r.inspections.classes.r6.UnmatchingR6ClassNameInspection"/>

        <localInspection shortName="RStudioAPISourceMarkerInspection" language="R" enabledByDefault="true" groupName="R"
                       bundle="messages.RPluginBundle" key="rstudioapi.source.markers.name"
                       implementationClass="org.jetbrains.r.rinterop.rstudioapi.RStudioAPISourceMarkerInspection"/>

        <intentionAction>
            <category>R</category>
            <className>org.jetbrains.r.intentions.TtoTrueIntention</className>
        </intentionAction>

        <!-- Documentation -->
        <documentationProvider implementation="org.jetbrains.r.documentation.RDocumentationProvider"/>
        <lang.documentationToolWindowManager language="R"
                                             implementationClass="org.jetbrains.r.documentation.RDocToolWindowManager"/>
        <textEditorCustomizer implementation="org.jetbrains.r.documentation.RTextEditorCustomizer"/>

        <editorHighlighterProvider filetype="RMarkdown" implementationClass="org.jetbrains.r.rmarkdown.RMarkdownEditorHighlighterProvider"/>
        <editorHighlighterProvider filetype="Quarto" implementationClass="org.jetbrains.r.quarto.QuartoEditorHighlighterProvider"/>

        <!-- Project generators -->
        <moduleType id="R_MODULE" implementationClass="org.jetbrains.r.projectGenerator.builder.RModuleType"/>
        <projectTemplatesFactory implementation="org.jetbrains.r.projectGenerator.template.RTemplatesFactory" />

        <directoryProjectGenerator implementation="org.jetbrains.r.projectGenerator.template.REmptyProjectGenerator"/>
        <directoryProjectGenerator implementation="org.jetbrains.r.projectGenerator.template.RPackageProjectGenerator"/>

        <!-- R help providers -->
        <webHelpProvider implementation="org.jetbrains.r.help.RWebHelpProvider"/>

        <virtualFileSystem implementationClass="com.intellij.r.psi.rinterop.RSourceFileManager$MyVirtualFileSystem"
                           key="rwrapper" physical="false"/>

        <!-- Registry keys -->
        <registryKey defaultValue="120000" key="r.interpreter.defaultTimeout" description="Default timeout for R interpreter operations"/>
        <registryKey defaultValue="30000" key="r.interpreter.initializedTimeout" description="Timeout for initializing Rwrapper"/>

        <!-- Interpreter -->
        <rInterpreterSettingsProvider implementation="com.intellij.r.psi.settings.RLocalInterpreterSettingsProvider"/>

      <notificationGroup id="RDataFrameViewer" displayType="BALLOON"/>
      <notificationGroup id="RMarkdownRenderError" displayType="BALLOON"/>
      <notificationGroup id="RMarkdownRunChunkStatus" displayType="BALLOON"/>

      <iconProvider implementation="org.jetbrains.r.icons.RProjectIconProvider" order="first"/>

      <!-- Run configuration -->
      <configurationType implementation="org.jetbrains.r.run.configuration.RRunConfigurationType"/>
      <runConfigurationProducer implementation="org.jetbrains.r.run.configuration.RRunConfigurationProducer"/>
      <programRunner implementation="org.jetbrains.r.run.configuration.RProgramRunner"/>

    </extensions>

  <extensions defaultExtensionNs="org.intellij.intelliLang">
    <injectionConfig config="injections/rInjections.xml"/>
    <languageSupport implementation="org.jetbrains.r.injections.RInjectionSupport"/>
  </extensions>

  <extensionPoints>
    <extensionPoint qualifiedName="org.jetbrains.r.librarySupportProvider"
                    interface="com.intellij.r.psi.codeInsight.libraries.RLibrarySupportProvider" dynamic="true"/>
    <extensionPoint qualifiedName="org.jetbrains.r.tableContextProvider"
                    interface="com.intellij.r.psi.codeInsight.table.RTableContextManager" dynamic="true"/>
  </extensionPoints>

  <extensions defaultExtensionNs="org.jetbrains.r">
    <librarySupportProvider implementation="org.jetbrains.r.codeInsight.libraries.RShinySupportProvider"/>
    <librarySupportProvider implementation="org.jetbrains.r.codeInsight.libraries.RDataTableSupportProvider"/>
    <librarySupportProvider implementation="org.jetbrains.r.codeInsight.libraries.Ggplot2SupportProvider"/>
    <tableContextProvider implementation="org.jetbrains.r.codeInsight.table.RDplyrTableContextManager"/>
    <tableContextProvider implementation="org.jetbrains.r.codeInsight.table.RDataTableContextManager"/>
    <tableContextProvider implementation="org.jetbrains.r.codeInsight.table.RGgplotTableContextManager"/>
  </extensions>
</idea-plugin>
