Files
openide/json/resources/intellij.json.xml
Nikolay Chashnikov 2d050772a0 [json] extract explicit main module from plugin.xml for JSON plugin (IJPL-176240)
This is needed to enable automatic layout and to allow merging two JSON plugins to a single one. Also, this is needed to allow adding dependency on JSON from the unified YAML plugin.

'intellij.json' is registered as an embedded content module, so it uses the main plugin classloader, and now has a dependency on 'intellij.json.split' module. This ensures that classes from both modules are available to content modules from other plugins which declare dependency on JSON plugin as before.

After this change, build scripts don't put intellij.toml.json to a separate JAR anymore, and an explicit adjustment is needed in the Wiremock plugin's layout to avoid creating an unnecessary separate JAR.

GitOrigin-RevId: be77513b7f0c1e397b4f6dda7524aa6978fa2a90
2025-02-07 14:23:09 +00:00

166 lines
13 KiB
XML

<idea-plugin>
<dependencies>
<module name="intellij.json.split"/>
</dependencies>
<actions resource-bundle="messages.JsonBundle">
<action id="JsonCopyPointer" class="com.intellij.json.editor.JsonCopyPointerAction">
<add-to-group group-id="CutCopyPasteGroup" anchor="after" relative-to-action="CopyReference"/>
<add-to-group group-id="EditorTabPopupMenu" anchor="after" relative-to-action="CopyReference"/>
<add-to-group group-id="EditorPopupMenu" anchor="after" relative-to-action="Copy.Paste.Special"/>
</action>
<action id="ConsoleView.ShowAsJsonAction" class="com.intellij.json.actions.ShowAsJsonAction">
<add-to-group group-id="ConsoleEditorPopupMenu" anchor="after" relative-to-action="ConsoleView.FoldLinesLikeThis"/>
</action>
<action id="JsonJacksonReformatAction" class="com.intellij.json.actions.JsonJacksonReformatAction">
<add-to-group group-id="ProjectViewPopupMenuModifyGroup" anchor="after" relative-to-action="ReformatCode"/>
<add-to-group group-id="CodeFormatGroup" anchor="after" relative-to-action="ReformatCode"/>
</action>
</actions>
<extensions defaultExtensionNs="com.intellij">
<virtualFileCustomDataProvider implementation="com.intellij.json.split.JsonCodeStyleSettingsCustomDataSynchronizer"/>
<registryKey key="json.schema.object.v2.enable.nested.remote.schema.resolve" defaultValue="false" description="Try loading remote schema parts on the fly"/>
<registryKey key="json.schema.object.v2" defaultValue="true" description="Use lightweight implementation of JsonSchemaObject"/>
<registryKey key="remote.schema.cache.validity.duration" defaultValue="1"
description="The time period (in minutes) a file is being kept in cache for. Applicable to references that contain remote URLs."/>
<fileIconProvider implementation="com.jetbrains.jsonSchema.JsonSchemaIconProvider"/>
<outerLanguageRangePatcher language="JSON" implementationClass="com.intellij.psi.templateLanguages.DefaultOuterLanguagePatcher"/>
<statusBarWidgetFactory id="JSONSchemaSelector" implementation="com.jetbrains.jsonSchema.widget.JsonSchemaStatusWidgetFactory"
order="after CodeStyleStatusBarWidget, before ReadOnlyAttribute"/>
<fileBasedIndex implementation="com.jetbrains.jsonSchema.impl.JsonSchemaFileValuesIndex" />
<!-- Codeinsight -->
<breadcrumbsInfoProvider implementation="com.intellij.json.breadcrumbs.JsonBreadcrumbsProvider"/>
<qualifiedNameProvider implementation="com.intellij.json.navigation.JsonQualifiedNameProvider"/>
<completion.contributor language="JSON" id="JsonCompletionContributor" order="last" implementationClass="com.intellij.json.codeinsight.JsonCompletionContributor"/>
<lang.psiStructureViewFactory language="JSON" implementationClass="com.intellij.json.structureView.JsonStructureViewBuilderFactory"/>
<lang.namesValidator language="JSON" implementationClass="com.intellij.json.JsonNamesValidator"/>
<lang.surroundDescriptor language="JSON" implementationClass="com.intellij.json.surroundWith.JsonSurroundDescriptor"/>
<lang.findUsagesProvider language="JSON" implementationClass="com.intellij.json.findUsages.JsonFindUsagesProvider"/>
<liveTemplateContext contextId="JSON" implementation="com.intellij.json.liveTemplates.JsonContextType"/>
<liveTemplateContext contextId="JSON_STRING_VALUES" baseContextId="JSON" implementation="com.intellij.json.liveTemplates.JsonInLiteralsContextType"/>
<liveTemplateContext contextId="JSON_PROPERTY_KEYS" baseContextId="JSON" implementation="com.intellij.json.liveTemplates.JsonInPropertyKeysContextType"/>
<spellchecker.support language="JSON" implementationClass="com.intellij.json.JsonSpellcheckerStrategy"/>
<!-- Inspections -->
<localInspection language="JSON" shortName="JsonStandardCompliance"
bundle="messages.JsonBundle" key="inspection.compliance.name" groupKey="json.inspection.group"
enabledByDefault="true" level="ERROR"
implementationClass="com.intellij.json.codeinsight.JsonStandardComplianceInspection"/>
<localInspection language="JSON5" shortName="Json5StandardCompliance"
bundle="messages.JsonBundle" key="inspection.compliance5.name" groupKey="json.inspection.group"
enabledByDefault="true" level="ERROR"
implementationClass="com.intellij.json.json5.codeinsight.Json5StandardComplianceInspection"/>
<localInspection language="JSON" shortName="JsonDuplicatePropertyKeys"
bundle="messages.JsonBundle" key="inspection.duplicate.keys.name" groupKey="json.inspection.group"
enabledByDefault="true" level="WARNING"
implementationClass="com.intellij.json.codeinsight.JsonDuplicatePropertyKeysInspection"/>
<localInspection language="JSON" shortName="JsonSchemaCompliance"
bundle="messages.JsonBundle" key="json.schema.inspection.compliance.name" groupKey="json.inspection.group"
enabledByDefault="true" level="WARNING"
implementationClass="com.jetbrains.jsonSchema.impl.inspections.JsonSchemaComplianceInspection"/>
<localInspection language="JSON" shortName="JsonSchemaDeprecation"
bundle="messages.JsonBundle" key="json.schema.inspection.deprecation.name" groupKey="json.inspection.group"
enabledByDefault="true" level="WEAK WARNING"
implementationClass="com.jetbrains.jsonSchema.impl.inspections.JsonSchemaDeprecationInspection"/>
<localInspection language="JSON" shortName="JsonSchemaRefReference"
bundle="messages.JsonBundle" key="json.schema.ref.refs.inspection.name" groupKey="json.inspection.group"
enabledByDefault="true" level="WARNING"
implementationClass="com.jetbrains.jsonSchema.impl.inspections.JsonSchemaRefReferenceInspection"/>
<projectService serviceImplementation="com.jetbrains.jsonSchema.JsonSchemaMappingsProjectConfiguration"/>
<projectConfigurable groupId="preferences.externalResources" id="settings.json.schema"
bundle="messages.JsonBundle"
key="configurable.JsonSchemaMappingsConfigurable.display.name"
instance="com.jetbrains.jsonSchema.settings.mappings.JsonSchemaMappingsConfigurable" nonDefaultProject="true"/>
<projectConfigurable groupId="preferences.externalResources" id="settings.json.schema.catalog"
bundle="messages.JsonBundle"
key="configurable.JsonSchemaCatalogConfigurable.display.name"
instance="com.jetbrains.jsonSchema.JsonSchemaCatalogConfigurable" nonDefaultProject="true"/>
<projectService serviceInterface="com.jetbrains.jsonSchema.ide.JsonSchemaService"
serviceImplementation="com.jetbrains.jsonSchema.impl.JsonSchemaServiceImpl"/>
<completion.contributor order="last, before JsonCompletionContributor" language="JSON"
implementationClass="com.jetbrains.jsonSchema.impl.JsonSchemaCompletionContributor"/>
<lang.documentationProvider language="JSON"
id="JsonSchemaDocumentationProvider"
implementationClass="com.jetbrains.jsonSchema.impl.JsonSchemaDocumentationProvider"/>
<refactoring.elementListenerProvider implementation="com.jetbrains.jsonSchema.JsonSchemaRefactoringListenerProvider"/>
<statistics.counterUsagesCollector implementationClass="com.jetbrains.jsonSchema.impl.JsonSchemaUsageTriggerCollector"/>
<psi.referenceContributor language="JSON" implementation="com.jetbrains.jsonSchema.impl.JsonSchemaReferenceContributor"/>
<multiHostInjector implementation="com.jetbrains.jsonSchema.impl.JsonSchemaRegexInjector"/>
<multiHostInjector implementation="com.jetbrains.jsonSchema.impl.JsonSchemaBasedLanguageInjector"/>
<gotoDeclarationHandler id="JsonSchemaGotoDeclarationHandler"
implementation="com.jetbrains.jsonSchema.impl.JsonSchemaGotoDeclarationHandler"/>
<highlightVisitor implementation="com.intellij.json.highlighting.JsonRainbowVisitor"/>
<intentionAction>
<language>JSON</language>
<className>com.intellij.json.intentions.JsonSortPropertiesIntention</className>
<bundleName>messages.JsonBundle</bundleName>
<categoryKey>json.intention.category.name</categoryKey>
</intentionAction>
<intentionAction>
<language>JSON</language>
<className>com.jetbrains.jsonSchema.impl.fixes.AddOptionalPropertiesIntention</className>
<bundleName>messages.JsonBundle</bundleName>
<categoryKey>json.intention.category.name</categoryKey>
</intentionAction>
<notificationGroup id="JSON Schema" displayType="NONE" bundle="messages.JsonBundle" key="notification.group.json.schema"/>
<psi.referenceContributor language="JSON" implementation="com.intellij.json.JsonWebReferenceContributor"/>
<json.jsonStandardComplianceProvider implementation="com.intellij.json.jsonc.JsoncComplianceProvider"/>
<lang.floatingToolbar language="JSON" minimal="true"/>
<pluginSuggestionProvider implementation="com.jetbrains.jsonSchema.wiremock.WireMockSuggestionProvider"/>
<statistics.counterUsagesCollector implementationClass="com.jetbrains.jsonSchema.fus.JsonFeatureUsageCollector"/>
<statistics.validation.customValidationRule implementation="com.jetbrains.jsonSchema.fus.JsonSchemaIdValidationRule"/>
</extensions>
<extensions defaultExtensionNs="JavaScript">
<JsonSchema.ProviderFactory implementation="com.jetbrains.jsonSchema.extension.JsonSchemaUserDefinedProviderFactory"/>
<JsonSchema.ProviderFactory implementation="com.jetbrains.jsonSchema.extension.JsonSchemaProjectSelfProviderFactory"/>
</extensions>
<extensions defaultExtensionNs="com.intellij.json">
<jsonLikePsiWalkerFactory implementation="com.intellij.json.json5.Json5PsiWalkerFactory"/>
<jsonSchemaEnabler implementation="com.jetbrains.jsonSchema.impl.JsonSchemaInJsonFilesEnabler"/>
</extensions>
<extensionPoints>
<extensionPoint qualifiedName="com.intellij.json.jsonStandardComplianceProvider"
interface="com.intellij.json.codeinsight.JsonStandardComplianceProvider" dynamic="true"/>
<!--suppress PluginXmlValidity -->
<extensionPoint qualifiedName="JavaScript.JsonSchema.ProviderFactory"
interface="com.jetbrains.jsonSchema.extension.JsonSchemaProviderFactory" dynamic="true"/>
<!--suppress PluginXmlValidity -->
<extensionPoint qualifiedName="JavaScript.JsonSchema.ContentAwareSchemaFileProvider"
interface="com.jetbrains.jsonSchema.extension.ContentAwareJsonSchemaFileProvider" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonSchemaGotoDeclarationSuppressor" dynamic="true"
interface="com.jetbrains.jsonSchema.extension.JsonSchemaGotoDeclarationSuppressor"/>
<extensionPoint qualifiedName="com.intellij.json.jsonLikePsiWalkerFactory"
interface="com.jetbrains.jsonSchema.extension.JsonLikePsiWalkerFactory" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonSchemaNestedCompletionsTreeProvider"
interface="com.jetbrains.jsonSchema.extension.JsonSchemaNestedCompletionsTreeProvider" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonSchemaEnabler" interface="com.jetbrains.jsonSchema.extension.JsonSchemaEnabler"
dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonSchemaCompletionCustomizer" interface="com.jetbrains.jsonSchema.extension.JsonSchemaCompletionCustomizer"
dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonWidgetSuppressor"
interface="com.jetbrains.jsonSchema.extension.JsonWidgetSuppressor" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.jsonSchemaQuickFixSuppressor"
interface="com.jetbrains.jsonSchema.extension.JsonSchemaQuickFixSuppressor" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.catalog.exclusion"
interface="com.jetbrains.jsonSchema.remote.JsonSchemaCatalogExclusion" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.customStructureViewFactory"
interface="com.intellij.json.structureView.JsonCustomStructureViewFactory" dynamic="true"/>
<extensionPoint qualifiedName="com.intellij.json.shorthandValueHandler"
interface="com.jetbrains.jsonSchema.extension.JsonSchemaShorthandValueHandler" dynamic="true"/>
</extensionPoints>
</idea-plugin>