From 8d24609b1450c74de243fca7b134d363cf449fa8 Mon Sep 17 00:00:00 2001
From: Ivan Posti
Date: Wed, 9 Feb 2022 11:53:46 +0300
Subject: [PATCH] [Markdown][IDEA-284567] Add searchable options for enabling
extensions
GitOrigin-RevId: 32d2459a7705a976ef01b41f5d5f9559dbfe29ed
---
.../messages/MarkdownBundle.properties | 1 +
.../ExtensionSearchableOptionContributor.kt | 29 +++++++++++++++++++
.../markdown/resources/META-INF/plugin.xml | 1 +
3 files changed, 31 insertions(+)
create mode 100644 plugins/markdown/core/src/org/intellij/plugins/markdown/extensions/ExtensionSearchableOptionContributor.kt
diff --git a/plugins/markdown/core/resources/messages/MarkdownBundle.properties b/plugins/markdown/core/resources/messages/MarkdownBundle.properties
index 5d9b1cc59359..8cfd50ea02b8 100644
--- a/plugins/markdown/core/resources/messages/MarkdownBundle.properties
+++ b/plugins/markdown/core/resources/messages/MarkdownBundle.properties
@@ -113,6 +113,7 @@ markdown.settings.download.extension.notification.title=Markdown extension downl
markdown.settings.download.extension.notification.success.content=Extension files successfully downloaded!
markdown.settings.download.extension.notification.failure.content=Failed to download required extension files!
markdown.settings.extension.install.label=Install
+markdown.settings.extension.enable.searchable.option.text=Enable {0} Extension
markdown.extract.link.extract.duplicates.description={0} has detected {1} duplicate {1,choice,1#link|2#links} that can be replaced with a reference link. Review and replace {1,choice,1#it|2#them}?
markdown.extract.link.extract.duplicates.warning=Some duplicate links have different titles. They will be erased during replacement.
diff --git a/plugins/markdown/core/src/org/intellij/plugins/markdown/extensions/ExtensionSearchableOptionContributor.kt b/plugins/markdown/core/src/org/intellij/plugins/markdown/extensions/ExtensionSearchableOptionContributor.kt
new file mode 100644
index 000000000000..76d6f1e111c1
--- /dev/null
+++ b/plugins/markdown/core/src/org/intellij/plugins/markdown/extensions/ExtensionSearchableOptionContributor.kt
@@ -0,0 +1,29 @@
+package org.intellij.plugins.markdown.extensions
+
+import com.intellij.ide.ui.search.SearchableOptionContributor
+import com.intellij.ide.ui.search.SearchableOptionProcessor
+import org.intellij.plugins.markdown.MarkdownBundle
+import org.intellij.plugins.markdown.settings.MarkdownSettingsConfigurable
+import org.jetbrains.annotations.Nls
+
+internal class ExtensionSearchableOptionContributor: SearchableOptionContributor() {
+ override fun processOptions(processor: SearchableOptionProcessor) {
+ val extensions = MarkdownExtensionsUtil.collectConfigurableExtensions(enabledOnly = false)
+ for (extension in extensions) {
+ processor.addExtensionOption(extension.displayName)
+ }
+ }
+
+ companion object {
+ private fun SearchableOptionProcessor.addExtensionOption(extensionDisplayName: @Nls String) {
+ addOptions(
+ extensionDisplayName,
+ null,
+ MarkdownBundle.message("markdown.settings.extension.enable.searchable.option.text", extensionDisplayName),
+ MarkdownSettingsConfigurable.ID,
+ MarkdownBundle.message("markdown.settings.name"),
+ false
+ )
+ }
+ }
+}
diff --git a/plugins/markdown/resources/META-INF/plugin.xml b/plugins/markdown/resources/META-INF/plugin.xml
index 4c49c73e82b3..3e5e43411992 100644
--- a/plugins/markdown/resources/META-INF/plugin.xml
+++ b/plugins/markdown/resources/META-INF/plugin.xml
@@ -160,6 +160,7 @@ Includes the following features:
+