Files
openide/plugins/markdown/core/resources/META-INF/plugin.xml
Alexander Kuznetsov ca86a0a4cc [markdown] IJPL-157064 initial compose-based preview implementation
Now it's hidden under a registry key ("markdown.experimental.use.compose.for.preview") and a checkbox in Markdown settings. It's a very early stage of development, lots of inlines are not unsupported yet, and styling is far from the JCEF-based renderer.


Merge-request: IJ-MR-140719
Merged-by: Alexander Kuznetsov <Aleksander.Kuznetsov@jetbrains.com>

GitOrigin-RevId: b4ad8a44e17aee1cfff32d20a3d2adc52f9fa9c5
2024-08-28 10:16:18 +00:00

621 lines
40 KiB
XML

<idea-plugin package="org.intellij.plugins.markdown">
<id>org.intellij.plugins.markdown</id>
<name>Markdown</name>
<vendor>JetBrains</vendor>
<category>Languages</category>
<resource-bundle>messages.MarkdownBundle</resource-bundle>
<dependencies>
<plugin id="com.intellij.modules.lang"/>
</dependencies>
<content>
<module name="intellij.markdown.fenceInjection"/>
<module name="intellij.markdown.frontmatter"/>
<module name="intellij.markdown.frontmatter.yaml"/>
<module name="intellij.markdown.frontmatter.toml"/>
<module name="intellij.markdown.images"/>
<module name="intellij.markdown.xml"/>
<module name="intellij.markdown.model"/>
<module name="intellij.markdown.spellchecker"/>
<module name="intellij.markdown.compose.preview"/>
</content>
<description><![CDATA[
<p>Provides editing assistance for Markdown files within the IDE.</p>
</br>
<ul>
<li>Full support for vanilla Markdown syntax: highlighting, completion, navigation, inspection, intentions, and much more.</li>
<li>Live HTML preview, customizable with CSS (except Android Studio, see <a href="https://issuetracker.google.com/issues/159933628?pli=1#comment7">issue and workaround</a>).</li>
<li>Assistance for editing tables and lists: automatic alignment and numbering.</li>
<li>Drag and drop to insert images.</li>
<li>Language injection in code blocks.</li>
<li>Pandoc Converter for HTML, Microsoft Word, and PDF formats.</li>
<li>Support for PlantUML diagram rendering (you can add support for Mermaid diagrams with a <a href="https://plugins.jetbrains.com/plugin/20146-mermaid">separate plugin</a>).</li>
</ul>
]]></description>
<extensionPoints>
<extensionPoint qualifiedName="org.intellij.markdown.html.panel.provider"
interface="org.intellij.plugins.markdown.ui.preview.MarkdownHtmlPanelProvider"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.fenceLanguageProvider"
interface="org.intellij.plugins.markdown.injection.CodeFenceLanguageProvider"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.fenceGeneratingProvider"
interface="org.intellij.plugins.markdown.extensions.CodeFenceGeneratingProvider"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.previewStylesProvider"
interface="org.intellij.plugins.markdown.ui.preview.MarkdownPreviewStylesProvider"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.browserPreviewExtensionProvider"
interface="org.intellij.plugins.markdown.extensions.MarkdownBrowserPreviewExtension$Provider"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.markdownExportProvider"
interface="org.intellij.plugins.markdown.fileActions.export.MarkdownExportProvider"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.markdownRunner"
interface="org.intellij.plugins.markdown.extensions.jcef.commandRunner.MarkdownRunner"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.flavourProvider"
interface="org.intellij.plugins.markdown.lang.parser.MarkdownFlavourProvider"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.additionalFenceLanguageSuggester"
interface="org.intellij.plugins.markdown.injection.aliases.AdditionalFenceLanguageSuggester"
dynamic="true"/>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<typedHandler implementation="org.intellij.plugins.markdown.editor.tables.handlers.MarkdownTableTypedHandler"/>
<backspaceHandlerDelegate implementation="org.intellij.plugins.markdown.editor.tables.handlers.MarkdownTableBackspaceHandler"/>
<enterHandlerDelegate implementation="org.intellij.plugins.markdown.editor.tables.handlers.MarkdownTableEnterHandler"/>
<editorActionHandler action="EditorTab" implementationClass="org.intellij.plugins.markdown.editor.tables.handlers.MarkdownTableTabHandler$Tab"/>
<editorActionHandler action="EditorUnindentSelection" implementationClass="org.intellij.plugins.markdown.editor.tables.handlers.MarkdownTableTabHandler$ShiftTab"/>
<editorActionHandler action="EditorStartNewLine" implementationClass="org.intellij.plugins.markdown.editor.tables.handlers.MarkdownTableShiftEnterHandler"/>
<editorActionHandler action="EditorDeleteToWordStart" implementationClass="org.intellij.plugins.markdown.editor.tables.handlers.MarkdownTableReformatAfterActionHook"/>
<codeInsight.inlayProvider language="Markdown"
implementationClass="org.intellij.plugins.markdown.editor.tables.ui.MarkdownTableInlayProvider"
id="MarkdownTableInlayProvider"/>
<editorFactoryListener implementation="org.intellij.plugins.markdown.editor.tables.ui.MarkdownInlayUpdateOnSoftWrapListener"/>
<localInspection language="Markdown"
shortName="MarkdownIncorrectTableFormatting"
bundle="messages.MarkdownBundle"
key="markdown.incorrect.table.formatting.inspection.name"
groupKey="markdown.inspection.group.ruby.name"
enabledByDefault="true"
level="WEAK WARNING"
implementationClass="org.intellij.plugins.markdown.editor.tables.inspections.MarkdownIncorrectTableFormattingInspection"/>
<localInspection language="Markdown"
shortName="MarkdownNoTableBorders"
bundle="messages.MarkdownBundle"
key="markdown.no.table.borders.inspection.name"
groupKey="markdown.inspection.group.ruby.name"
enabledByDefault="true"
level="WARNING"
implementationClass="org.intellij.plugins.markdown.editor.tables.inspections.MarkdownNoTableBordersInspection"/>
<intentionAction>
<language>Markdown</language>
<className>org.intellij.plugins.markdown.editor.tables.intentions.MarkdownInsertTableColumnIntention$InsertBefore</className>
<bundleName>messages.MarkdownBundle</bundleName>
<categoryKey>markdown.intention.category</categoryKey>
</intentionAction>
<intentionAction>
<language>Markdown</language>
<className>org.intellij.plugins.markdown.editor.tables.intentions.MarkdownInsertTableColumnIntention$InsertAfter</className>
<bundleName>messages.MarkdownBundle</bundleName>
<categoryKey>markdown.intention.category</categoryKey>
</intentionAction>
<intentionAction>
<language>Markdown</language>
<className>org.intellij.plugins.markdown.editor.tables.intentions.MarkdownSetColumnAlignmentIntention</className>
<bundleName>messages.MarkdownBundle</bundleName>
<categoryKey>markdown.intention.category</categoryKey>
</intentionAction>
<intentionAction>
<language>Markdown</language>
<className>org.intellij.plugins.markdown.editor.tables.intentions.MarkdownRemoveColumnIntention</className>
<bundleName>messages.MarkdownBundle</bundleName>
<categoryKey>markdown.intention.category</categoryKey>
</intentionAction>
<intentionAction>
<language>Markdown</language>
<className>org.intellij.plugins.markdown.editor.tables.intentions.MarkdownRemoveRowIntention</className>
<bundleName>messages.MarkdownBundle</bundleName>
<categoryKey>markdown.intention.category</categoryKey>
</intentionAction>
<typedHandler implementation="org.intellij.plugins.markdown.editor.headers.HeaderLevelInferenceTypedHandler"/>
<codeInsight.fillParagraph language="Markdown"
implementationClass="org.intellij.plugins.markdown.editor.MarkdownParagraphFillHandler"/>
<renameHandler implementation="org.intellij.plugins.markdown.ui.projectTree.MarkdownFileRenameHandler"/>
<automaticRenamerFactory implementation="org.intellij.plugins.markdown.ui.projectTree.MarkdownRenamerFactory"/>
<fileType name="Markdown" extensions="markdown;md" language="Markdown"
implementationClass="org.intellij.plugins.markdown.lang.MarkdownFileType" fieldName="INSTANCE"/>
<lang.fileViewProviderFactory language="Markdown"
id="SingleRootMarkdownFileViewProviderFactory"
implementationClass="org.intellij.plugins.markdown.lang.MarkdownFileViewProviderFactory"/>
<lang.parserDefinition language="Markdown" implementationClass="org.intellij.plugins.markdown.lang.parser.MarkdownParserDefinition"/>
<lang.ast.factory language="Markdown" implementationClass="org.intellij.plugins.markdown.lang.psi.MarkdownAstFactory"/>
<lang.elementManipulator forClass="org.intellij.plugins.markdown.lang.psi.impl.MarkdownCodeFence"
implementationClass="org.intellij.plugins.markdown.lang.psi.impl.MarkdownCodeFence$Manipulator"/>
<lang.elementManipulator forClass="org.intellij.plugins.markdown.lang.psi.impl.MarkdownLinkDestination"
implementationClass="org.intellij.plugins.markdown.lang.psi.impl.MarkdownLinkDestination$Manipulator"/>
<lang.elementManipulator forClass="org.intellij.plugins.markdown.lang.psi.impl.MarkdownFrontMatterHeader"
implementationClass="org.intellij.plugins.markdown.lang.psi.impl.MarkdownFrontMatterHeader$Manipulator"/>
<colorSettingsPage implementation="org.intellij.plugins.markdown.highlighting.MarkdownColorSettingsPage"/>
<syntaxHighlighter key="Markdown" implementationClass="org.intellij.plugins.markdown.highlighting.MarkdownSyntaxHighlighter"/>
<additionalTextAttributes scheme="Default" file="colorSchemes/MarkdownDefault.xml"/>
<additionalTextAttributes scheme="Darcula" file="colorSchemes/MarkdownDarcula.xml"/>
<braceMatcher filetype="Markdown" implementationClass="org.intellij.plugins.markdown.braces.MarkdownBraceMatcher"/>
<quoteHandler fileType="Markdown" className="org.intellij.plugins.markdown.braces.MarkdownQuoteHandler"/>
<typedHandler implementation="org.intellij.plugins.markdown.editor.MarkdownTypedHandler"/>
<bidiRegionsSeparator language="Markdown" implementationClass="org.intellij.plugins.markdown.editor.MarkdownBidiRegionsSeparator"/>
<annotator language="Markdown" implementationClass="org.intellij.plugins.markdown.highlighting.MarkdownHighlightingAnnotator"/>
<runLineMarkerContributor language="Markdown" implementationClass="org.intellij.plugins.markdown.extensions.jcef.commandRunner.MarkdownRunLineMarkersProvider"/>
<completion.contributor language="Markdown"
implementationClass="org.intellij.plugins.markdown.editor.MarkdownCompletionContributor"/>
<fileEditorProvider id="markdown-preview-editor" implementation="org.intellij.plugins.markdown.ui.preview.MarkdownSplitEditorProvider"/>
<textEditorCustomizer implementation="org.intellij.plugins.markdown.ui.floating.AddFloatingToolbarTextEditorCustomizer"/>
<fileDropHandler implementation="org.intellij.plugins.markdown.fileActions.importFrom.docx.MarkdownDocxFileDropHandler"/>
<breadcrumbsInfoProvider id="MarkdownDefaultBreadcrumbs"
implementation="org.intellij.plugins.markdown.breadcrumbs.MarkdownBreadcrumbsProvider"/>
<treeStructureProvider implementation="org.intellij.plugins.markdown.ui.projectTree.MarkdownTreeStructureProvider"/>
<applicationService serviceInterface="org.intellij.plugins.markdown.extensions.ExtensionsExternalFilesPathManager"
serviceImplementation="org.intellij.plugins.markdown.extensions.ExtensionsExternalFilesPathManager$Impl"/>
<search.optionContributor implementation="org.intellij.plugins.markdown.extensions.ExtensionSearchableOptionContributor"/>
<applicationService serviceInterface="org.intellij.plugins.markdown.ui.preview.accessor.MarkdownLinkOpener"
serviceImplementation="org.intellij.plugins.markdown.ui.preview.accessor.impl.MarkdownLinkOpenerImpl"/>
<projectConfigurable id="Settings.Markdown"
bundle="messages.MarkdownBundle"
groupId="language"
nonDefaultProject="false"
key="markdown.settings.name"
instance="org.intellij.plugins.markdown.settings.MarkdownSettingsConfigurable"/>
<editorSmartKeysConfigurable instance="org.intellij.plugins.markdown.settings.MarkdownSmartKeysConfigurable"
id="editor.preferences.markdownOptions"/>
<codeFoldingOptionsProvider instance="org.intellij.plugins.markdown.settings.MarkdownCodeFoldingOptionsProvider"/>
<applicationService serviceImplementation="org.intellij.plugins.markdown.ui.preview.html.MarkdownCodeFenceHtmlCache"/>
<applicationService serviceImplementation="org.intellij.plugins.markdown.fileActions.export.MarkdownHtmlExportSettings"/>
<applicationService serviceImplementation="org.intellij.plugins.markdown.settings.MarkdownCodeFoldingSettings" />
<applicationService serviceImplementation="org.intellij.plugins.markdown.settings.MarkdownCodeInsightSettings" />
<applicationService serviceImplementation="org.intellij.plugins.markdown.settings.MarkdownExtensionsSettings" />
<applicationSettings service="org.intellij.plugins.markdown.settings.MarkdownCodeInsightSettings"/>
<applicationSettings service="org.intellij.plugins.markdown.settings.MarkdownPreviewSettings"/>
<applicationSettings service="org.intellij.plugins.markdown.settings.MarkdownExtensionsSettings"/>
<projectSettings service="org.intellij.plugins.markdown.settings.MarkdownSettings"/>
<lang.psiStructureViewFactory language="Markdown"
implementationClass="org.intellij.plugins.markdown.structureView.MarkdownStructureViewFactory"/>
<stripTrailingSpacesFilterFactory implementation="org.intellij.plugins.markdown.editor.MarkdownStripTrailingSpacesFilterFactory"/>
<httpRequestHandler implementation="org.intellij.plugins.markdown.ui.preview.PreviewStaticServer"/>
<localInspection language="Markdown"
shortName="MarkdownUnresolvedFileReference"
bundle="messages.MarkdownBundle"
key="markdown.unresolved.file.inspection.name"
groupKey="markdown.inspection.group.ruby.name"
enabledByDefault="true"
level="WARNING"
implementationClass="org.intellij.plugins.markdown.lang.references.paths.MarkdownUnresolvedFileReferenceInspection"/>
<lang.foldingBuilder language="Markdown" implementationClass="org.intellij.plugins.markdown.folding.MarkdownFoldingBuilder"/>
<stubIndex implementation="org.intellij.plugins.markdown.lang.index.HeaderTextIndex"/>
<stubElementTypeHolder class="org.intellij.plugins.markdown.lang.MarkdownStubElementTypes"/>
<stubIndex implementation="org.intellij.plugins.markdown.lang.index.HeaderAnchorIndex"/>
<pathReferenceProvider implementation="org.intellij.plugins.markdown.lang.references.paths.RelativeFileWithoutExtensionReferenceProvider"/>
<psi.referenceContributor language="Markdown" implementation="org.intellij.plugins.markdown.lang.references.CommonLinkDestinationReferenceContributor"/>
<psi.referenceContributor language="Markdown" implementation="org.intellij.plugins.markdown.lang.references.paths.github.GithubWikiLocalReferenceContributor"/>
<lang.elementManipulator forClass="org.intellij.plugins.markdown.lang.psi.impl.MarkdownAutoLink"
implementationClass="org.intellij.plugins.markdown.lang.psi.impl.MarkdownAutoLink$Manipulator"/>
<psi.referenceContributor language="Markdown" implementation="org.intellij.plugins.markdown.lang.references.AutoLinkWebReferenceContributor"/>
<todoIndexer filetype="Markdown" implementationClass="org.intellij.plugins.markdown.highlighting.MarkdownTodoIndexer"/>
<indexPatternBuilder implementation="org.intellij.plugins.markdown.highlighting.MarkdownIndexPatternBuilder"/>
<enterHandlerDelegate id="MarkdownEnterHandler"
implementation="org.intellij.plugins.markdown.editor.MarkdownEnterHandler"/>
<daemon.highlightInfoFilter implementation="org.intellij.plugins.markdown.injection.CodeFenceHighlightInfoFilter"/>
<extendWordSelectionHandler implementation="org.intellij.plugins.markdown.editor.MarkdownCodeSpanExtendWordSelectionHandler"/>
<typedHandler implementation="org.intellij.plugins.markdown.editor.lists.MarkdownListItemCreatingTypedHandlerDelegate"/>
<lineIndentProvider implementation="org.intellij.plugins.markdown.editor.lists.MarkdownListIndentProvider"/>
<enterHandlerDelegate implementation="org.intellij.plugins.markdown.editor.lists.MarkdownListEnterHandlerDelegate"
order="before MarkdownEnterHandler"/> <!-- to be able to handle Enter inside indent -->
<backspaceHandlerDelegate implementation="org.intellij.plugins.markdown.editor.lists.MarkdownListMarkerBackspaceHandlerDelegate"/>
<backspaceHandlerDelegate implementation="org.intellij.plugins.markdown.editor.lists.MarkdownListIndentBackspaceHandlerDelegate"
order="before SmartIndentingBackspaceHandler"/>
<editorActionHandler action="EditorTab" implementationClass="org.intellij.plugins.markdown.editor.lists.MarkdownListItemTabHandler"/>
<editorActionHandler action="EditorIndentSelection"
implementationClass="org.intellij.plugins.markdown.editor.lists.MarkdownListItemTabHandler"/>
<editorActionHandler action="EditorUnindentSelection"
implementationClass="org.intellij.plugins.markdown.editor.lists.MarkdownListItemUnindentHandler"/>
<localInspection language="Markdown"
shortName="MarkdownIncorrectlyNumberedListItem"
bundle="messages.MarkdownBundle"
key="markdown.incorrectly.numbered.list.item.inspection.name"
groupKey="markdown.inspection.group.ruby.name"
enabledByDefault="true"
implementationClass="org.intellij.plugins.markdown.editor.lists.inspections.IncorrectListNumberingInspection"/>
<actionPromoter implementation="org.intellij.plugins.markdown.ui.actions.MarkdownActionPromoter"/>
<customizableActionGroupProvider implementation="org.intellij.plugins.markdown.ui.floating.FloatingToolbarCustomizableGroupProvider"/>
<!--Formatting-->
<langCodeStyleSettingsProvider implementation="org.intellij.plugins.markdown.lang.formatter.settings.MarkdownCodeStyleSettingsProvider"/>
<lang.formatter language="Markdown" implementationClass="org.intellij.plugins.markdown.lang.formatter.MarkdownFormattingModelBuilder"/>
<postFormatProcessor implementation="org.intellij.plugins.markdown.lang.formatter.BlockQuotePostFormatProcessor"/>
<postFormatProcessor implementation="org.intellij.plugins.markdown.lang.formatter.TablePostFormatProcessor"/>
<lang.lineWrapStrategy language="Markdown" implementationClass="org.intellij.plugins.markdown.editor.MarkdownLineWrapPositionStrategy"/>
<lang.commenter language="Markdown" implementationClass="org.intellij.plugins.markdown.lang.MarkdownCommenter"/>
<codeInsight.lineMarkerProvider language="Markdown"
implementationClass="org.intellij.plugins.markdown.extensions.common.plantuml.PlantUMLCodeFenceDownloadLineMarkerProvider"/>
<focusModeProvider language="Markdown" implementationClass="org.intellij.plugins.markdown.editor.MarkdownFocusModeProvider"/>
<codeInsight.lineMarkerProvider language="Markdown"
implementationClass="org.intellij.plugins.markdown.extensions.jcef.mermaid.MermaidLineMarkerAdvertisementProvider"/>
<intentionAction>
<language>Markdown</language>
<className>org.intellij.plugins.markdown.injection.MarkdownCodeFenceErrorHighlightingIntention</className>
<bundleName>messages.MarkdownBundle</bundleName>
<categoryKey>markdown.intention.category</categoryKey>
</intentionAction>
<localInspection language="Markdown"
shortName="MarkdownOutdatedTableOfContents"
bundle="messages.MarkdownBundle"
key="markdown.outdated.table.of.contents.inspection.name"
groupKey="markdown.inspection.group.ruby.name"
enabledByDefault="true"
implementationClass="org.intellij.plugins.markdown.editor.toc.OutdatedTableOfContentsInspection"/>
<localInspection language="Markdown"
shortName="MarkdownLinkDestinationWithSpaces"
bundle="messages.MarkdownBundle"
key="markdown.link.destination.with.spaces.inspection.name"
groupKey="markdown.inspection.group.ruby.name"
enabledByDefault="true"
implementationClass="org.intellij.plugins.markdown.lang.references.paths.MarkdownLinkDestinationWithSpacesInspection"/>
<notificationGroup id="Markdown" displayType="BALLOON" bundle="messages.MarkdownBundle" key="notification.group.markdown"/>
<!--region Registry keys-->
<registryKey key="markdown.clear.cache.interval"
defaultValue="600000"
description="Interval in milliseconds defining how often Markdown plugin caches (e.g. PlantUML diagrams) should be cleared"/>
<registryKey key="markdown.plantuml.download.link"
defaultValue="https://download.jetbrains.com/grazie/markdown/extensions/plantuml/plantuml-1.2023.10-15.jar"
description="Link which Markdown plugin will use to download PlantUML JAR"/>
<registryKey key="markdown.open.link.in.external.browser"
defaultValue="true"
description="Open Markdown link in an external browser (otherwise open in the IDE viewer)"/>
<registryKey key="markdown.formatter.apply.to.code.fence"
defaultValue="false"
description="Should Markdown use injected languages' formatters to format code-fences"/>
<registryKey key="markdown.structure.view.list.visibility"
defaultValue="false"
description="Determines whether lists are visible in the document structure view"/>
<registryKey key="markdown.export.html.enforce.csp"
defaultValue="true"
description="Determines whether the content security policy should be added to the exported HTML document."/>
<registryKey key="markdown.experimental.boundary.precise.scroll.enable"
defaultValue="true"
description="Enables precise scrolling on the document boundaries (direct passing of scroll events from IDE to JCEF preview).
Any opened Markdown editors should be manually reopened.
Use 'ide.browser.jcef.osr.wheelRotation.factor' to adjust swing's mouse wheel event multipler."/>
<registryKey key="markdown.experimental.header.level.inference.enable"
defaultValue="false"
description="Enables experimental support for inferring header level"/>
<registryKey key="markdown.validate.short.links"
defaultValue="false"
description="Enables validation for short style links by checking existing labeled link definitions in the current file."/>
<registryKey key="markdown.experimental.show.frontmatter.in.preview"
defaultValue="false"
description="Enables displaying of front matter headers in the preview."/>
<registryKey key="markdown.experimental.allow.external.requests"
defaultValue="true"
description="Enables requests for external resources from the preview (e.g. non-local images)."/>
<!--endregion-->
<advancedSetting id="markdown.hide.floating.toolbar" default="false" groupKey="markdown.settings.name"/>
<advancedSetting id="markdown.squash.multiple.dashes.in.header.anchors" default="false" groupKey="markdown.settings.name"/>
<statistics.counterUsagesCollector implementationClass="org.intellij.plugins.markdown.MarkdownUsageCollector"/>
</extensions>
<applicationListeners>
<listener topic="com.intellij.ide.ui.LafManagerListener"
class="org.intellij.plugins.markdown.settings.SettingsChangeLafListener"/>
<listener topic="com.intellij.ide.ui.LafManagerListener"
class="org.intellij.plugins.markdown.extensions.common.highlighter.HtmlCacheManager$InvalidateHtmlCacheLafListener"/>
</applicationListeners>
<projectListeners>
<listener topic="org.intellij.plugins.markdown.settings.MarkdownSettings$ChangeListener"
class="org.intellij.plugins.markdown.injection.MarkdownCodeFenceErrorHighlightingIntention$CodeAnalyzerRestartListener"/>
</projectListeners>
<extensions defaultExtensionNs="org.intellij.markdown">
<html.panel.provider implementation="org.intellij.plugins.markdown.ui.preview.jcef.JCEFHtmlPanelProvider"/>
<fenceLanguageProvider implementation="org.intellij.plugins.markdown.extensions.common.plantuml.PlantUMLCodeFenceLanguageProvider"/>
<!--suppress PluginXmlValidity -->
<fenceGeneratingProvider implementation="org.intellij.plugins.markdown.extensions.common.plantuml.PlantUMLCodeGeneratingProvider"/>
<!--suppress PluginXmlValidity -->
<fenceGeneratingProvider order="last"
implementation="org.intellij.plugins.markdown.extensions.common.highlighter.MarkdownCodeFencePreviewHighlighter"/>
<browserPreviewExtensionProvider implementation="org.intellij.plugins.markdown.extensions.common.BaseStylesExtension$Provider"/>
<browserPreviewExtensionProvider implementation="org.intellij.plugins.markdown.extensions.common.InlineStylesExtension$Provider"/>
<browserPreviewExtensionProvider implementation="org.intellij.plugins.markdown.extensions.jcef.ProcessLinksExtension$Provider"/>
<browserPreviewExtensionProvider implementation="org.intellij.plugins.markdown.extensions.jcef.commandRunner.CommandRunnerExtension$Provider"/>
<fenceLanguageProvider id="DefaultMermaidCodeFenceLanguageProvider"
implementation="org.intellij.plugins.markdown.extensions.jcef.mermaid.MermaidCodeFenceLanguageProvider"/>
<browserPreviewExtensionProvider implementation="org.intellij.plugins.markdown.extensions.common.highlighter.CodeFenceCopyButtonBrowserExtension$Provider"/>
<browserPreviewExtensionProvider implementation="org.intellij.plugins.markdown.extensions.common.MathExtension$Provider"/>
<markdownExportProvider implementation="org.intellij.plugins.markdown.fileActions.export.MarkdownDocxExportProvider"/>
<markdownExportProvider implementation="org.intellij.plugins.markdown.fileActions.export.MarkdownPdfExportProvider"/>
<markdownExportProvider implementation="org.intellij.plugins.markdown.fileActions.export.MarkdownHtmlExportProvider"/>
</extensions>
<actions>
<group id="Markdown.TableActions" compact="true" class="org.intellij.plugins.markdown.editor.tables.actions.TableActionsGroup">
<group id="Markdown.TableColumnActions" compact="true">
<action id="Markdown.Table.SwapColumns.SwapWithLeftColumn"
class="org.intellij.plugins.markdown.editor.tables.actions.column.SwapColumnsAction$SwapWithLeftColumn"
icon="AllIcons.Actions.Back"/>
<action id="Markdown.Table.SwapColumns.SwapWithRightColumn"
class="org.intellij.plugins.markdown.editor.tables.actions.column.SwapColumnsAction$SwapWithRightColumn"
icon="AllIcons.Actions.Forward"/>
<separator/>
<action id="Markdown.Table.InsertTableColumn.InsertBefore"
class="org.intellij.plugins.markdown.editor.tables.actions.column.InsertTableColumnAction$InsertBefore"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.AddColumnLeft"/>
<action id="Markdown.Table.InsertTableColumn.InsertAfter"
class="org.intellij.plugins.markdown.editor.tables.actions.column.InsertTableColumnAction$InsertAfter"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.AddColumnRight"/>
<separator/>
<action id="Markdown.Table.SelectCurrentColumn.SelectContentCells"
class="org.intellij.plugins.markdown.editor.tables.actions.column.SelectCurrentColumnAction$SelectContentCells"
icon="AllIcons.Actions.InSelection"/>
<separator/>
<!--<action id="org.intellij.plugins.markdown.editor.tables.actions.column.SelectCurrentColumnAction.SelectWholeColumn"-->
<!-- class="org.intellij.plugins.markdown.editor.tables.actions.column.SelectCurrentColumnAction$SelectWholeColumn"/>-->
<group id="Markdown.Table.ColumnAlignmentActions"
compact="true"
class="org.intellij.plugins.markdown.editor.tables.actions.column.TableColumnAlignmentActionsGroup">
<!--<action id="org.intellij.plugins.markdown.editor.tables.actions.column.SetColumnAlignmentAction.None"-->
<!-- class="org.intellij.plugins.markdown.editor.tables.actions.column.SetColumnAlignmentAction$None"/>-->
<action id="Markdown.Table.SetColumnAlignment.Left"
class="org.intellij.plugins.markdown.editor.tables.actions.column.SetColumnAlignmentAction$Left"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.LeftAlign"/>
<action id="Markdown.Table.SetColumnAlignment.Center"
class="org.intellij.plugins.markdown.editor.tables.actions.column.SetColumnAlignmentAction$Center"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.CenterAlign"/>
<action id="Markdown.Table.SetColumnAlignment.Right"
class="org.intellij.plugins.markdown.editor.tables.actions.column.SetColumnAlignmentAction$Right"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.RightAlign"/>
</group>
<separator/>
<action id="Markdown.Table.RemoveCurrentColumn"
class="org.intellij.plugins.markdown.editor.tables.actions.column.RemoveCurrentColumnAction"
icon="AllIcons.Actions.GC"/>
</group>
<group id="Markdown.TableRowActions" compact="true">
<action id="Markdown.Table.SwapRows.SwapWithAbove"
class="org.intellij.plugins.markdown.editor.tables.actions.row.SwapRowsAction$SwapWithAbove"
icon="AllIcons.Actions.PreviousOccurence"/>
<action id="Markdown.Table.SwapRows.SwapWithBelow"
class="org.intellij.plugins.markdown.editor.tables.actions.row.SwapRowsAction$SwapWithBelow"
icon="AllIcons.Actions.NextOccurence"/>
<separator/>
<action id="Markdown.Table.InsertRow.InsertAbove"
class="org.intellij.plugins.markdown.editor.tables.actions.row.InsertRowAction$InsertAbove"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.AddRowAbove"/>
<action id="Markdown.Table.InsertRow.InsertBelow"
class="org.intellij.plugins.markdown.editor.tables.actions.row.InsertRowAction$InsertBelow"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.AddRowBelow"/>
<separator/>
<action id="Markdown.Table.SelectRow"
class="org.intellij.plugins.markdown.editor.tables.actions.row.SelectRowAction"
icon="AllIcons.Actions.InSelection"/>
<separator/>
<action id="Markdown.Table.RemoveCurrentRow"
class="org.intellij.plugins.markdown.editor.tables.actions.row.RemoveCurrentRowAction"
icon="AllIcons.Actions.GC"/>
</group>
<group id="Markdown.TableContextMenuGroup"
class="com.intellij.ide.actions.NonTrivialActionGroup"
popup="true"
compact="true">
<reference id="Markdown.Table.InsertTableColumn.InsertBefore"/>
<reference id="Markdown.Table.InsertTableColumn.InsertAfter"/>
<reference id="Markdown.Table.InsertRow.InsertAbove"/>
<reference id="Markdown.Table.InsertRow.InsertBelow"/>
<separator/>
<group id="Markdown.TableColumnActions.ColumnAlignmentActions.Popup"
class="com.intellij.ide.actions.NonTrivialActionGroup"
popup="true"
compact="true">
<reference id="Markdown.Table.ColumnAlignmentActions"/>
</group>
<reference id="Markdown.Table.SwapColumns.SwapWithLeftColumn"/>
<reference id="Markdown.Table.SwapColumns.SwapWithRightColumn"/>
<separator/>
<reference id="Markdown.Table.RemoveCurrentColumn"/>
<reference id="Markdown.Table.RemoveCurrentRow"/>
</group>
</group>
<!--Old id org.intellij.plugins.markdown.ui.actions.styling.MarkdownCreateLinkAction-->
<action class="org.intellij.plugins.markdown.ui.actions.styling.MarkdownCreateLinkAction"
id="Markdown.Styling.CreateLink"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Link">
<keyboard-shortcut first-keystroke="control shift U" keymap="$default"/>
</action>
<group id="Markdown.Toolbar.Floating">
<action id="Markdown.Styling.SetHeaderLevel"
class="org.intellij.plugins.markdown.ui.actions.styling.SetHeaderLevelAction"/>
<separator/>
<action class="org.intellij.plugins.markdown.ui.actions.styling.ToggleBoldAction"
id="org.intellij.plugins.markdown.ui.actions.styling.ToggleBoldAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Bold">
<keyboard-shortcut first-keystroke="control B" keymap="$default"/>
</action>
<action class="org.intellij.plugins.markdown.ui.actions.styling.ToggleItalicAction"
id="org.intellij.plugins.markdown.ui.actions.styling.ToggleItalicAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Italic">
<keyboard-shortcut first-keystroke="control I" keymap="$default"/>
</action>
<action class="org.intellij.plugins.markdown.ui.actions.styling.ToggleStrikethroughAction"
id="org.intellij.plugins.markdown.ui.actions.styling.ToggleStrikethroughAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Strike_through">
<keyboard-shortcut first-keystroke="control shift S" keymap="$default"/>
</action>
<action class="org.intellij.plugins.markdown.ui.actions.styling.ToggleCodeSpanAction"
id="org.intellij.plugins.markdown.ui.actions.styling.ToggleCodeSpanAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Code_span">
<keyboard-shortcut first-keystroke="control shift C" keymap="$default"/>
</action>
<reference id="Markdown.Styling.CreateLink"/>
<separator/>
<action class="org.intellij.plugins.markdown.ui.actions.styling.CreateOrChangeListPopupAction"
id="Markdown.Styling.CreateOrChangeList"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.BulletList"/>
</group>
<action class="org.intellij.plugins.markdown.ui.actions.styling.HeaderDownAction"
id="org.intellij.plugins.markdown.ui.actions.styling.HeaderDownAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Header_level_down"/>
<action class="org.intellij.plugins.markdown.ui.actions.styling.HeaderUpAction"
id="org.intellij.plugins.markdown.ui.actions.styling.HeaderUpAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Header_level_up"/>
<!--
This group is supposed to override default generate popup.
Please, make sure to adjust action text for MarkdownActionPlaces.INSERT_POPUP.
-->
<group id="Markdown.InsertGroup">
<!-- Also add all insert actions into default generate popup -->
<add-to-group group-id="GenerateGroup" anchor="last"/>
<reference id="Markdown.Styling.CreateLink"/>
<action id="Markdown.InsertEmptyTable"
class="org.intellij.plugins.markdown.editor.tables.actions.InsertEmptyTableAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Table"/>
<!--<action class="org.intellij.plugins.markdown.ui.actions.styling.InsertImageAction"-->
<!-- id="org.intellij.plugins.markdown.ui.actions.styling.InsertImageAction"-->
<!-- icon="AllIcons.General.LayoutPreviewOnly">-->
<!-- <keyboard-shortcut first-keystroke="control U" keymap="$default"/>-->
<!--</action>-->
<action id="Markdown.GenerateTableOfContents"
class="org.intellij.plugins.markdown.editor.toc.GenerateTableOfContentsAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.BulletList"/>
</group>
<action id="Markdown.Insert"
class="org.intellij.plugins.markdown.ui.actions.InsertAction"
use-shortcut-of="Generate"/>
<action class="org.intellij.plugins.markdown.ui.actions.styling.MarkdownIntroduceLinkReferenceAction"
id="org.intellij.plugins.markdown.ui.actions.styling.MarkdownIntroduceLinkReferenceAction"
icon="org.intellij.plugins.markdown.MarkdownIcons.EditorActions.Link">
</action>
<group id="Markdown.EditorContextMenuGroup">
<add-to-group group-id="EditorPopupMenu" anchor="after" relative-to-action="EditorToggleColumnMode"/>
<separator/>
<reference id="Markdown.TableContextMenuGroup"/>
<reference id="Markdown.Insert"/>
</group>
<group id="Markdown.Toolbar.Left" class="com.intellij.openapi.actionSystem.DefaultActionGroup">
</group>
<group id="Markdown.Toolbar.Right" class="com.intellij.openapi.actionSystem.DefaultActionGroup">
<action class="org.intellij.plugins.markdown.ui.actions.scrolling.AutoScrollAction"
id="org.intellij.plugins.markdown.ui.actions.scrolling.AutoScrollAction"
icon="AllIcons.Actions.SynchronizeScrolling">
</action>
</group>
<group id="Markdown.Tools" popup="true">
<add-to-group group-id="ToolsMenu" anchor="before" relative-to-action="ExternalToolsGroup"/>
<action id="Markdown.ImportFromDocx"
class="org.intellij.plugins.markdown.fileActions.importFrom.docx.MarkdownImportFromDocxAction"/>
<action id="Markdown.Export"
class="org.intellij.plugins.markdown.fileActions.export.MarkdownExportAction"/>
<action id="Markdown.ConfigurePandoc"
class="org.intellij.plugins.markdown.ui.actions.ConfigurePandocAction"/>
</group>
<action id="Markdown.OpenDevtools"
class="org.intellij.plugins.markdown.ui.actions.MarkdownOpenDevtoolsAction"/>
<action id="Markdown.Extensions.CleanupExternalFiles"
class="org.intellij.plugins.markdown.extensions.CleanupExtensionsExternalFilesAction"
icon="AllIcons.Actions.GC"/>
<action id="Markdown.Preview.IncreaseFontSize"
class="org.intellij.plugins.markdown.ui.actions.ChangeFontSizeAction$Increase"
use-shortcut-of="ExpandAll"/>
<action id="Markdown.Preview.DecreaseFontSize"
class="org.intellij.plugins.markdown.ui.actions.ChangeFontSizeAction$Decrease"
use-shortcut-of="CollapseAll"/>
<action id="Markdown.Preview.ResetFontSize"
class="org.intellij.plugins.markdown.ui.actions.ResetFontSizeAction"/>
<group id="Markdown.PreviewGroup">
<action id="Markdown.Preview.AdjustFontSize"
class="org.intellij.plugins.markdown.ui.actions.AdjustFontSizeAction"/>
</group>
</actions>
</idea-plugin>