Files
openide/plugins/markdown/core/resources/META-INF/plugin.xml
Nikita Iarychenko ab02d3d665 OPENIDE add missing copyrights
(cherry picked from commit b729986736)

(cherry picked from commit 1eb3edbbba)
(cherry picked from commit 51375259d7)
(cherry picked from commit 134890a7bf)
2026-03-16 16:51:58 +04:00

636 lines
41 KiB
XML

<!-- Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<!-- -->
<!-- Modified by Nikita Iarychenko at 2025 as part of the OpenIDE project(https://openide.ru). -->
<!-- Any modifications are available on the same license terms as the original source code. -->
<idea-plugin package="org.intellij.plugins.markdown" allow-bundled-update="true">
<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 namespace="jetbrains">
<module name="intellij.markdown" loading="embedded"/>
<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"/>
<module name="intellij.markdown.frontend"/>
<module name="intellij.markdown.frontend.split"/>
<module name="intellij.markdown.backend"/>
</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"/>
<extensionPoint qualifiedName="org.intellij.markdown.markdownCompatibilityChecker"
interface="org.intellij.plugins.markdown.lang.MarkdownCompatibilityChecker"
dynamic="true"/>
<extensionPoint qualifiedName="org.intellij.markdown.actionPromoterExtension"
interface="org.intellij.plugins.markdown.ui.actions.MarkdownActionPromoterExtension"
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"/>
<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" id="Markdown" order="after Android,after C++,after Dart,after General,after Go,after Handlebars,after JAVA,after JavaScript,after JPAQL,after JSON,after Kubernetes,after LinkerScript,after ObjectiveC"/>
<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.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://repo1.maven.org/maven2/net/sourceforge/plantuml/plantuml/1.2023.10/plantuml-1.2023.10.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 multiplier."/>
<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"/>
<markdownCompatibilityChecker implementation="org.intellij.plugins.markdown.lang.DefaultMarkdownCompatibilityChecker"/>
</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 ref="Markdown.Table.InsertTableColumn.InsertBefore"/>
<reference ref="Markdown.Table.InsertTableColumn.InsertAfter"/>
<reference ref="Markdown.Table.InsertRow.InsertAbove"/>
<reference ref="Markdown.Table.InsertRow.InsertBelow"/>
<separator/>
<group id="Markdown.TableColumnActions.ColumnAlignmentActions.Popup"
class="com.intellij.ide.actions.NonTrivialActionGroup"
popup="true"
compact="true">
<reference ref="Markdown.Table.ColumnAlignmentActions"/>
</group>
<reference ref="Markdown.Table.SwapColumns.SwapWithLeftColumn"/>
<reference ref="Markdown.Table.SwapColumns.SwapWithRightColumn"/>
<separator/>
<reference ref="Markdown.Table.RemoveCurrentColumn"/>
<reference ref="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 ref="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 the default generate popup.
Please make sure to adjust action text for MarkdownActionPlaces.INSERT_POPUP.
-->
<group id="Markdown.InsertGroup">
<!-- Also add all insert actions into the default generate popup -->
<add-to-group group-id="GenerateGroup" anchor="last"/>
<reference ref="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 ref="Markdown.TableContextMenuGroup"/>
<reference ref="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"/>
<action id="Markdown.Preview.Find" class="org.intellij.plugins.markdown.ui.actions.FindInPreviewAction"
icon="AllIcons.Actions.Find" use-shortcut-of="Find"/>
</group>
</actions>
</idea-plugin>