From 47a4550e01b31aedffeeac59d0d2bfd75f04b468 Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Wed, 28 May 2025 12:48:58 +0200 Subject: [PATCH] syntax: move SyntaxLanguage to syntax lib GitOrigin-RevId: 2a20f35438d65ea358ffb5986f73f1742bce65ce --- .../com/intellij/java/syntax/JavaSyntaxDefinition.kt | 2 +- platform/syntax/syntax-api/api-dump-experimental.txt | 8 +++++++- .../com/intellij/platform/syntax}/SyntaxLanguage.kt | 7 +------ .../com/intellij/platform/syntax/tree/SyntaxTree.kt | 3 ++- platform/syntax/syntax-extensions/BUILD.bazel | 3 +++ .../syntax-extensions/api-dump-experimental.txt | 12 +++--------- .../intellij.platform.syntax.extensions.iml | 1 + .../platform/syntax/extensions/ExtensionSupport.kt | 3 ++- .../syntax/extensions/impl/ExtensionRegistryImpl.kt | 2 +- platform/syntax/syntax-psi/api-dump-experimental.txt | 2 +- .../psi/extensions/IntelliJExtensionSupport.kt | 2 +- .../psi/extensions/IntelliJSyntaxLanguageSupport.kt | 2 +- 12 files changed, 24 insertions(+), 23 deletions(-) rename platform/syntax/{syntax-extensions/src/com/intellij/platform/syntax/extensions => syntax-api/src/com/intellij/platform/syntax}/SyntaxLanguage.kt (79%) diff --git a/java/java-syntax/src/com/intellij/java/syntax/JavaSyntaxDefinition.kt b/java/java-syntax/src/com/intellij/java/syntax/JavaSyntaxDefinition.kt index 2b40c4a24e0b..70fcf6272f7f 100644 --- a/java/java-syntax/src/com/intellij/java/syntax/JavaSyntaxDefinition.kt +++ b/java/java-syntax/src/com/intellij/java/syntax/JavaSyntaxDefinition.kt @@ -7,8 +7,8 @@ import com.intellij.java.syntax.lexer.JavaDocLexer import com.intellij.java.syntax.lexer.JavaLexer import com.intellij.java.syntax.lexer.JavaTypeEscapeLexer import com.intellij.platform.syntax.SyntaxElementTypeSet +import com.intellij.platform.syntax.SyntaxLanguage import com.intellij.platform.syntax.element.SyntaxTokenTypes -import com.intellij.platform.syntax.extensions.SyntaxLanguage import com.intellij.platform.syntax.lexer.Lexer import com.intellij.platform.syntax.syntaxElementTypeSetOf import com.intellij.pom.java.LanguageLevel diff --git a/platform/syntax/syntax-api/api-dump-experimental.txt b/platform/syntax/syntax-api/api-dump-experimental.txt index 52dcfa9315bb..64849793acfb 100644 --- a/platform/syntax/syntax-api/api-dump-experimental.txt +++ b/platform/syntax/syntax-api/api-dump-experimental.txt @@ -72,6 +72,12 @@ - *sf:emptySyntaxElementTypeSet():com.intellij.platform.syntax.SyntaxElementTypeSet - sf:flattenSyntaxElementTypeSets(com.intellij.platform.syntax.SyntaxElementTypeSet[]):com.intellij.platform.syntax.SyntaxElementTypeSet - *sf:syntaxElementTypeSetOf(com.intellij.platform.syntax.SyntaxElementType[]):com.intellij.platform.syntax.SyntaxElementTypeSet +*f:com.intellij.platform.syntax.SyntaxLanguage +- equals(java.lang.Object):Z +- f:getId():java.lang.String +- hashCode():I +*f:com.intellij.platform.syntax.SyntaxLanguageKt +- sf:SyntaxLanguage(java.lang.String):com.intellij.platform.syntax.SyntaxLanguage *f:com.intellij.platform.syntax.element.SyntaxTokenTypes - sf:INSTANCE:com.intellij.platform.syntax.element.SyntaxTokenTypes - sf:getBAD_CHARACTER():com.intellij.platform.syntax.SyntaxElementType @@ -216,7 +222,7 @@ - a:getEndOffset():I - a:getErrorMessage():java.lang.String - a:getFirstChild():com.intellij.platform.syntax.tree.SyntaxNode -- a:getLanguage():java.lang.Object +- a:getLanguage():com.intellij.platform.syntax.SyntaxLanguage - a:getLastChild():com.intellij.platform.syntax.tree.SyntaxNode - a:getNextSibling():com.intellij.platform.syntax.tree.SyntaxNode - a:getParent():com.intellij.platform.syntax.tree.SyntaxNode diff --git a/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/SyntaxLanguage.kt b/platform/syntax/syntax-api/src/com/intellij/platform/syntax/SyntaxLanguage.kt similarity index 79% rename from platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/SyntaxLanguage.kt rename to platform/syntax/syntax-api/src/com/intellij/platform/syntax/SyntaxLanguage.kt index dc765909a490..46bde0fb686b 100644 --- a/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/SyntaxLanguage.kt +++ b/platform/syntax/syntax-api/src/com/intellij/platform/syntax/SyntaxLanguage.kt @@ -1,15 +1,10 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. @file:ApiStatus.Experimental -package com.intellij.platform.syntax.extensions +package com.intellij.platform.syntax import org.jetbrains.annotations.ApiStatus -/** - * Language allows associate extension points with it. - * - * See [ExtensionSupport.getLanguageExtensions] - */ @ApiStatus.Experimental class SyntaxLanguage internal constructor(val id: String, unused: Any?) { override fun equals(other: Any?): Boolean = diff --git a/platform/syntax/syntax-api/src/com/intellij/platform/syntax/tree/SyntaxTree.kt b/platform/syntax/syntax-api/src/com/intellij/platform/syntax/tree/SyntaxTree.kt index fe92c89cea08..29229436d1ba 100644 --- a/platform/syntax/syntax-api/src/com/intellij/platform/syntax/tree/SyntaxTree.kt +++ b/platform/syntax/syntax-api/src/com/intellij/platform/syntax/tree/SyntaxTree.kt @@ -2,6 +2,7 @@ package com.intellij.platform.syntax.tree import com.intellij.platform.syntax.SyntaxElementType +import com.intellij.platform.syntax.SyntaxLanguage import org.jetbrains.annotations.ApiStatus /** @@ -27,5 +28,5 @@ interface SyntaxNode { val errorMessage: String? - val language: Any? + val language: SyntaxLanguage? } diff --git a/platform/syntax/syntax-extensions/BUILD.bazel b/platform/syntax/syntax-extensions/BUILD.bazel index 7d0b7069684d..666ae1f3b94d 100644 --- a/platform/syntax/syntax-extensions/BUILD.bazel +++ b/platform/syntax/syntax-extensions/BUILD.bazel @@ -15,6 +15,7 @@ jvm_library( deps = [ "@lib//:kotlin-stdlib", "@lib//:jetbrains-annotations", + "//platform/syntax/syntax-api:syntax", ":multiplatformSupport_provided", ] ) @@ -32,6 +33,8 @@ jvm_library( "@lib//:junit5", "@lib//:kotlin-test", "@lib//:kotlin-test-junit", + "//platform/syntax/syntax-api:syntax", + "//platform/syntax/syntax-api:syntax_test_lib", ] ) diff --git a/platform/syntax/syntax-extensions/api-dump-experimental.txt b/platform/syntax/syntax-extensions/api-dump-experimental.txt index a53a0a33e221..f8dbdcecff8e 100644 --- a/platform/syntax/syntax-extensions/api-dump-experimental.txt +++ b/platform/syntax/syntax-extensions/api-dump-experimental.txt @@ -7,18 +7,12 @@ *:com.intellij.platform.syntax.extensions.ExtensionRegistry - com.intellij.platform.syntax.extensions.ExtensionSupport - a:registerExtension(com.intellij.platform.syntax.extensions.ExtensionPointKey,java.lang.Object):V -- a:registerLanguageExtension(com.intellij.platform.syntax.extensions.ExtensionPointKey,java.lang.Object,com.intellij.platform.syntax.extensions.SyntaxLanguage):V +- a:registerLanguageExtension(com.intellij.platform.syntax.extensions.ExtensionPointKey,java.lang.Object,com.intellij.platform.syntax.SyntaxLanguage):V - a:unregisterExtension(com.intellij.platform.syntax.extensions.ExtensionPointKey,java.lang.Object):V -- a:unregisterLanguageExtension(com.intellij.platform.syntax.extensions.ExtensionPointKey,com.intellij.platform.syntax.extensions.SyntaxLanguage):V +- a:unregisterLanguageExtension(com.intellij.platform.syntax.extensions.ExtensionPointKey,com.intellij.platform.syntax.SyntaxLanguage):V *:com.intellij.platform.syntax.extensions.ExtensionSupport - a:getExtensions(com.intellij.platform.syntax.extensions.ExtensionPointKey):java.util.List -- a:getLanguageExtensions(com.intellij.platform.syntax.extensions.ExtensionPointKey,com.intellij.platform.syntax.extensions.SyntaxLanguage):java.util.List +- a:getLanguageExtensions(com.intellij.platform.syntax.extensions.ExtensionPointKey,com.intellij.platform.syntax.SyntaxLanguage):java.util.List *f:com.intellij.platform.syntax.extensions.ExtensionSupportKt - *sf:ExtensionRegistry():com.intellij.platform.syntax.extensions.ExtensionRegistry - *sf:ExtensionSupport():com.intellij.platform.syntax.extensions.ExtensionSupport -*f:com.intellij.platform.syntax.extensions.SyntaxLanguage -- equals(java.lang.Object):Z -- f:getId():java.lang.String -- hashCode():I -*f:com.intellij.platform.syntax.extensions.SyntaxLanguageKt -- sf:SyntaxLanguage(java.lang.String):com.intellij.platform.syntax.extensions.SyntaxLanguage diff --git a/platform/syntax/syntax-extensions/intellij.platform.syntax.extensions.iml b/platform/syntax/syntax-extensions/intellij.platform.syntax.extensions.iml index cf153d6c3b2f..ccf3200383e4 100644 --- a/platform/syntax/syntax-extensions/intellij.platform.syntax.extensions.iml +++ b/platform/syntax/syntax-extensions/intellij.platform.syntax.extensions.iml @@ -36,5 +36,6 @@ + \ No newline at end of file diff --git a/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/ExtensionSupport.kt b/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/ExtensionSupport.kt index 20b498ae0d29..375bc3946b1d 100644 --- a/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/ExtensionSupport.kt +++ b/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/ExtensionSupport.kt @@ -3,6 +3,7 @@ package com.intellij.platform.syntax.extensions +import com.intellij.platform.syntax.SyntaxLanguage import com.intellij.platform.syntax.extensions.impl.registry import org.jetbrains.annotations.ApiStatus @@ -28,7 +29,7 @@ fun ExtensionRegistry(): ExtensionRegistry? = registry as? ExtensionRegistry * When working outside of IJ environment, extensions must be registered explicitly. * * @See ExtensionKey - * @see SyntaxLanguage + * @see com.intellij.platform.syntax.SyntaxLanguage * @see ExtensionRegistry */ @ApiStatus.Experimental diff --git a/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/impl/ExtensionRegistryImpl.kt b/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/impl/ExtensionRegistryImpl.kt index eee9924b9add..d9ef5084caf7 100644 --- a/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/impl/ExtensionRegistryImpl.kt +++ b/platform/syntax/syntax-extensions/src/com/intellij/platform/syntax/extensions/impl/ExtensionRegistryImpl.kt @@ -1,9 +1,9 @@ // Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. package com.intellij.platform.syntax.extensions.impl +import com.intellij.platform.syntax.SyntaxLanguage import com.intellij.platform.syntax.extensions.ExtensionPointKey import com.intellij.platform.syntax.extensions.ExtensionRegistry -import com.intellij.platform.syntax.extensions.SyntaxLanguage /** * Simple [ExtensionSupport] backend that is used outside IntelliJ runtime. diff --git a/platform/syntax/syntax-psi/api-dump-experimental.txt b/platform/syntax/syntax-psi/api-dump-experimental.txt index 7428443de2c2..2ac8165fc821 100644 --- a/platform/syntax/syntax-psi/api-dump-experimental.txt +++ b/platform/syntax/syntax-psi/api-dump-experimental.txt @@ -52,7 +52,7 @@ *f:com.intellij.platform.syntax.psi.PsiSyntaxBuilderFactory$Companion - f:getInstance():com.intellij.platform.syntax.psi.PsiSyntaxBuilderFactory *f:com.intellij.platform.syntax.psi.extensions.IntelliJSyntaxLanguageSupportKt -- sf:asIntelliJLanguage(com.intellij.platform.syntax.extensions.SyntaxLanguage):com.intellij.lang.Language +- sf:asIntelliJLanguage(com.intellij.platform.syntax.SyntaxLanguage):com.intellij.lang.Language *f:com.intellij.platform.syntax.psi.impl.PsiSyntaxParserRuntimeFactoryImplKt - sf:getSyntaxParserRuntimeFactory(com.intellij.lang.Language):com.intellij.platform.syntax.util.runtime.SyntaxParserRuntimeFactory *c:com.intellij.platform.syntax.psi.lexer.LexerAdapter diff --git a/platform/syntax/syntax-psi/src/com/intellij/platform/syntax/psi/extensions/IntelliJExtensionSupport.kt b/platform/syntax/syntax-psi/src/com/intellij/platform/syntax/psi/extensions/IntelliJExtensionSupport.kt index 5779ec9171c8..8cebbed07779 100644 --- a/platform/syntax/syntax-psi/src/com/intellij/platform/syntax/psi/extensions/IntelliJExtensionSupport.kt +++ b/platform/syntax/syntax-psi/src/com/intellij/platform/syntax/psi/extensions/IntelliJExtensionSupport.kt @@ -5,7 +5,7 @@ import com.intellij.lang.LanguageExtension import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.platform.syntax.extensions.ExtensionPointKey import com.intellij.platform.syntax.extensions.ExtensionSupport -import com.intellij.platform.syntax.extensions.SyntaxLanguage +import com.intellij.platform.syntax.SyntaxLanguage import java.util.concurrent.ConcurrentHashMap /** diff --git a/platform/syntax/syntax-psi/src/com/intellij/platform/syntax/psi/extensions/IntelliJSyntaxLanguageSupport.kt b/platform/syntax/syntax-psi/src/com/intellij/platform/syntax/psi/extensions/IntelliJSyntaxLanguageSupport.kt index b3b9d0871685..12cd43445ea0 100644 --- a/platform/syntax/syntax-psi/src/com/intellij/platform/syntax/psi/extensions/IntelliJSyntaxLanguageSupport.kt +++ b/platform/syntax/syntax-psi/src/com/intellij/platform/syntax/psi/extensions/IntelliJSyntaxLanguageSupport.kt @@ -4,7 +4,7 @@ package com.intellij.platform.syntax.psi.extensions import com.intellij.lang.Language -import com.intellij.platform.syntax.extensions.SyntaxLanguage +import com.intellij.platform.syntax.SyntaxLanguage import org.jetbrains.annotations.ApiStatus fun SyntaxLanguage.asIntelliJLanguage(): Language =