[json] IJPL-159355 Moved json formatter and code style settings to shared module & enabled code style settings sync between frontend and backend

GitOrigin-RevId: ee9fe29775579100255429c8503e1f4a83fb564e
This commit is contained in:
Nikita Katkov
2024-08-14 18:28:59 +02:00
committed by intellij-monorepo-bot
parent b18d236ef7
commit c8a120de43
10 changed files with 37 additions and 15 deletions

View File

@@ -31,6 +31,8 @@
</actions>
<extensions defaultExtensionNs="com.intellij">
<virtualFileCustomDataProvider implementation="com.intellij.json.split.JsonCodeStyleSettingsCustomDataSynchronizer"/>
<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."/>
@@ -41,13 +43,6 @@
order="after CodeStyleStatusBarWidget, before ReadOnlyAttribute"/>
<fileBasedIndex implementation="com.jetbrains.jsonSchema.impl.JsonSchemaFileValuesIndex" />
<!-- 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"/>
<enterBetweenBracesDelegate language="JSON" implementationClass="com.intellij.codeInsight.editorActions.enter.EnterBetweenBracesAndBracketsDelegate"/>
<!-- Codeinsight -->
<breadcrumbsInfoProvider implementation="com.intellij.json.breadcrumbs.JsonBreadcrumbsProvider"/>
<qualifiedNameProvider implementation="com.intellij.json.navigation.JsonQualifiedNameProvider"/>
@@ -110,7 +105,6 @@
<psi.referenceContributor language="JSON" implementation="com.jetbrains.jsonSchema.impl.JsonSchemaReferenceContributor"/>
<multiHostInjector implementation="com.jetbrains.jsonSchema.impl.JsonSchemaRegexInjector"/>
<multiHostInjector implementation="com.jetbrains.jsonSchema.impl.JsonSchemaBasedLanguageInjector"/>
<lang.lineWrapStrategy language="JSON" implementationClass="com.intellij.json.formatter.JsonLineWrapPositionStrategy"/>
<gotoDeclarationHandler id="JsonSchemaGotoDeclarationHandler" implementation="com.jetbrains.jsonSchema.impl.JsonSchemaGotoDeclarationHandler"/>
<highlightVisitor implementation="com.intellij.json.highlighting.JsonRainbowVisitor"/>
<intentionAction>

View File

@@ -6,6 +6,7 @@
</extensionPoints>
<extensions defaultExtensionNs="com.intellij">
<!-- Language support -->
<inspection.basicVisitor class="com.intellij.json.psi.JsonElementVisitor"/>
<fileType name="JSON" extensions="har;json;jsonc"
@@ -22,30 +23,43 @@
<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.smartEnterProcessor language="JSON" implementationClass="com.intellij.json.editor.smartEnter.JsonSmartEnterProcessor"/>
<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"/>
<applicationService serviceImplementation="com.intellij.json.editor.JsonEditorOptions"/>
<enterHandlerDelegate implementation="com.intellij.json.editor.JsonEnterHandler" id="JsonEnterHandler"/>
<focusModeProvider language="JSON" implementationClass="com.intellij.json.editor.JsonFocusModeProvider"/>
<editorSmartKeysConfigurable instance="com.intellij.json.editor.JsonSmartKeysConfigurable" id="editor.preferences.jsonOptions"/>
<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>

View File

@@ -0,0 +1,14 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.json.split
import com.intellij.json.JsonLanguage
import com.intellij.json.formatter.JsonCodeStyleSettings
import com.intellij.psi.codeStyle.CodeStyleSettingsCustomDataSynchronizer
class JsonCodeStyleSettingsCustomDataSynchronizer : CodeStyleSettingsCustomDataSynchronizer<JsonCodeStyleSettings>() {
override val language
get() = JsonLanguage.INSTANCE
override val customCodeStyleSettingsClass
get() = JsonCodeStyleSettings::class.java
}