[json] IJ-CR-144628 Employ the new required content module feature

- it allows to avoid duplicated registrations in different plugin descriptors
- it loads json.split module's classes with a main plugin classloader -> classes from the json.split module can be directly accessed from the main plugin module

GitOrigin-RevId: 052de488d023b25dd9362a62ae45232d292ded13
This commit is contained in:
Nikita Katkov
2024-09-25 17:49:30 +02:00
committed by intellij-monorepo-bot
parent dc77eee1e5
commit d22ae766f6
2 changed files with 70 additions and 69 deletions

View File

@@ -16,74 +16,9 @@
<plugin id="com.intellij.modules.lang"/>
</dependencies>
<!-- Copied from the json.split plugin descriptor, unable to run from sources otherwise -->
<extensionPoints>
<extensionPoint qualifiedName="com.intellij.json.jsonLiteralChecker"
interface="com.intellij.json.codeinsight.JsonLiteralChecker"
dynamic="true"/>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<!-- Language support -->
<inspection.basicVisitor class="com.intellij.json.psi.JsonElementVisitor"/>
<fileType name="JSON" extensions="har;json;jsonc"
implementationClass="com.intellij.json.JsonFileType" fieldName="INSTANCE"
language="JSON"/>
<fileType name="JSON5" extensions="json5"
implementationClass="com.intellij.json.json5.Json5FileType" fieldName="INSTANCE"
language="JSON5"/>
<fileType name="JSON-lines" extensions="jsonl;jsonlines;ldjson;ndjson"
implementationClass="com.intellij.json.jsonLines.JsonLinesFileType" fieldName="INSTANCE"
language="JSON Lines"/>
<lang.parserDefinition language="JSON" implementationClass="com.intellij.json.JsonParserDefinition"/>
<lang.parserDefinition language="JSON5" implementationClass="com.intellij.json.json5.Json5ParserDefinition"/>
<lang.parserDefinition language="JSON Lines" implementationClass="com.intellij.json.jsonLines.JsonLinesParserDefinition"/>
<!-- Highlighting -->
<colorSettingsPage implementation="com.intellij.json.highlighting.JsonColorsPage"/>
<lang.syntaxHighlighterFactory language="JSON" implementationClass="com.intellij.json.highlighting.JsonSyntaxHighlighterFactory"/>
<lang.syntaxHighlighterFactory language="JSON5"
implementationClass="com.intellij.json.json5.highlighting.Json5SyntaxHighlightingFactory"/>
<json.jsonLiteralChecker implementation="com.intellij.json.codeinsight.StandardJsonLiteralChecker"/>
<json.jsonLiteralChecker implementation="com.intellij.json.json5.codeinsight.Json5JsonLiteralChecker"/>
<annotator language="JSON" implementationClass="com.intellij.json.codeinsight.JsonLiteralAnnotator"/>
<lang.elementManipulator forClass="com.intellij.json.psi.JsonStringLiteral"
implementationClass="com.intellij.json.psi.JsonStringLiteralManipulator"/>
<lang.foldingBuilder language="JSON" implementationClass="com.intellij.json.editor.folding.JsonFoldingBuilder"/>
<!-- Typing -->
<applicationService serviceImplementation="com.intellij.json.editor.JsonEditorOptions"/>
<editorSmartKeysConfigurable instance="com.intellij.json.editor.JsonSmartKeysConfigurable" id="editor.preferences.jsonOptions"/>
<statementUpDownMover implementation="com.intellij.json.editor.lineMover.JsonLineMover" id="JSON" order="before line"/>
<extendWordSelectionHandler implementation="com.intellij.json.editor.selection.JsonStringLiteralSelectionHandler"/>
<lang.braceMatcher language="JSON" implementationClass="com.intellij.json.JsonBraceMatcher"/>
<lang.commenter language="JSON" implementationClass="com.intellij.json.editor.JsonCommenter"/>
<copyPastePostProcessor implementation="com.intellij.json.editor.JsonCopyPastePostProcessor"/>
<copyPastePreProcessor implementation="com.intellij.json.editor.JsonCopyPasteProcessor"/>
<typedHandler implementation="com.intellij.json.editor.JsonTypedHandler" id="JsonTypedHandler"/>
<enterHandlerDelegate implementation="com.intellij.json.editor.JsonEnterHandler" id="JsonEnterHandler"/>
<lang.smartEnterProcessor language="JSON" implementationClass="com.intellij.json.editor.smartEnter.JsonSmartEnterProcessor"/>
<enterBetweenBracesDelegate language="JSON"
implementationClass="com.intellij.codeInsight.editorActions.enter.EnterBetweenBracesAndBracketsDelegate"/>
<quoteHandler fileType="JSON" className="com.intellij.json.JsonQuoteHandler"/>
<quoteHandler fileType="JSON5" className="com.intellij.json.JsonQuoteHandler"/>
<!-- Code style and formatting -->
<codeStyleSettingsProvider implementation="com.intellij.json.formatter.JsonCodeStyleSettingsProvider"/>
<langCodeStyleSettingsProvider implementation="com.intellij.json.formatter.JsonLanguageCodeStyleSettingsProvider"/>
<lang.formatter language="JSON" implementationClass="com.intellij.json.formatter.JsonFormattingBuilderModel"/>
<preFormatProcessor implementation="com.intellij.json.formatter.JsonTrailingCommaRemover"/>
<lang.lineWrapStrategy language="JSON" implementationClass="com.intellij.json.formatter.JsonLineWrapPositionStrategy"/>
<!-- Various editor features -->
<focusModeProvider language="JSON" implementationClass="com.intellij.json.editor.JsonFocusModeProvider"/>
</extensions>
<!-- The end of copied section -->
<content>
<module name="intellij.json.split" loading="required"/>
</content>
<actions resource-bundle="messages.JsonBundle">
<action id="JsonCopyPointer" class="com.intellij.json.editor.JsonCopyPointerAction">

View File

@@ -1 +1,67 @@
<idea-plugin package="com.intellij.json.split"/>
<idea-plugin package="com.intellij.json.split">
<extensionPoints>
<extensionPoint qualifiedName="com.intellij.json.jsonLiteralChecker"
interface="com.intellij.json.codeinsight.JsonLiteralChecker"
dynamic="true"/>
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<!-- Language support -->
<inspection.basicVisitor class="com.intellij.json.psi.JsonElementVisitor"/>
<fileType name="JSON" extensions="har;json;jsonc"
implementationClass="com.intellij.json.JsonFileType" fieldName="INSTANCE"
language="JSON"/>
<fileType name="JSON5" extensions="json5"
implementationClass="com.intellij.json.json5.Json5FileType" fieldName="INSTANCE"
language="JSON5"/>
<fileType name="JSON-lines" extensions="jsonl;jsonlines;ldjson;ndjson"
implementationClass="com.intellij.json.jsonLines.JsonLinesFileType" fieldName="INSTANCE"
language="JSON Lines"/>
<lang.parserDefinition language="JSON" implementationClass="com.intellij.json.JsonParserDefinition"/>
<lang.parserDefinition language="JSON5" implementationClass="com.intellij.json.json5.Json5ParserDefinition"/>
<lang.parserDefinition language="JSON Lines" implementationClass="com.intellij.json.jsonLines.JsonLinesParserDefinition"/>
<!-- Highlighting -->
<colorSettingsPage implementation="com.intellij.json.highlighting.JsonColorsPage"/>
<lang.syntaxHighlighterFactory language="JSON" implementationClass="com.intellij.json.highlighting.JsonSyntaxHighlighterFactory"/>
<lang.syntaxHighlighterFactory language="JSON5"
implementationClass="com.intellij.json.json5.highlighting.Json5SyntaxHighlightingFactory"/>
<json.jsonLiteralChecker implementation="com.intellij.json.codeinsight.StandardJsonLiteralChecker"/>
<json.jsonLiteralChecker implementation="com.intellij.json.json5.codeinsight.Json5JsonLiteralChecker"/>
<annotator language="JSON" implementationClass="com.intellij.json.codeinsight.JsonLiteralAnnotator"/>
<lang.elementManipulator forClass="com.intellij.json.psi.JsonStringLiteral"
implementationClass="com.intellij.json.psi.JsonStringLiteralManipulator"/>
<lang.foldingBuilder language="JSON" implementationClass="com.intellij.json.editor.folding.JsonFoldingBuilder"/>
<!-- Typing -->
<applicationService serviceImplementation="com.intellij.json.editor.JsonEditorOptions"/>
<editorSmartKeysConfigurable instance="com.intellij.json.editor.JsonSmartKeysConfigurable" id="editor.preferences.jsonOptions"/>
<statementUpDownMover implementation="com.intellij.json.editor.lineMover.JsonLineMover" id="JSON" order="before line"/>
<extendWordSelectionHandler implementation="com.intellij.json.editor.selection.JsonStringLiteralSelectionHandler"/>
<lang.braceMatcher language="JSON" implementationClass="com.intellij.json.JsonBraceMatcher"/>
<lang.commenter language="JSON" implementationClass="com.intellij.json.editor.JsonCommenter"/>
<copyPastePostProcessor implementation="com.intellij.json.editor.JsonCopyPastePostProcessor"/>
<copyPastePreProcessor implementation="com.intellij.json.editor.JsonCopyPasteProcessor"/>
<typedHandler implementation="com.intellij.json.editor.JsonTypedHandler" id="JsonTypedHandler"/>
<enterHandlerDelegate implementation="com.intellij.json.editor.JsonEnterHandler" id="JsonEnterHandler"/>
<lang.smartEnterProcessor language="JSON" implementationClass="com.intellij.json.editor.smartEnter.JsonSmartEnterProcessor"/>
<enterBetweenBracesDelegate language="JSON"
implementationClass="com.intellij.codeInsight.editorActions.enter.EnterBetweenBracesAndBracketsDelegate"/>
<quoteHandler fileType="JSON" className="com.intellij.json.JsonQuoteHandler"/>
<quoteHandler fileType="JSON5" className="com.intellij.json.JsonQuoteHandler"/>
<!-- Code style and formatting -->
<codeStyleSettingsProvider implementation="com.intellij.json.formatter.JsonCodeStyleSettingsProvider"/>
<langCodeStyleSettingsProvider implementation="com.intellij.json.formatter.JsonLanguageCodeStyleSettingsProvider"/>
<lang.formatter language="JSON" implementationClass="com.intellij.json.formatter.JsonFormattingBuilderModel"/>
<preFormatProcessor implementation="com.intellij.json.formatter.JsonTrailingCommaRemover"/>
<lang.lineWrapStrategy language="JSON" implementationClass="com.intellij.json.formatter.JsonLineWrapPositionStrategy"/>
<!-- Various editor features -->
<focusModeProvider language="JSON" implementationClass="com.intellij.json.editor.JsonFocusModeProvider"/>
</extensions>
</idea-plugin>