as42: Apply 201 <-> AS41 diff
This commit is contained in:
committed by
Konstantin Tskhovrebov
parent
17e43aadaa
commit
2df030f583
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.statistics
|
||||||
|
|
||||||
|
open class KotlinFUSLogger {
|
||||||
|
companion object {
|
||||||
|
fun log(group: FUSEventGroups, event: String) {
|
||||||
|
// Not whitelisted for AS
|
||||||
|
}
|
||||||
|
|
||||||
|
fun log(group: FUSEventGroups, event: String, eventData: Map<String, String>) {
|
||||||
|
// Not whitelisted for AS
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
class ProjectConfigurationCollector {
|
||||||
|
// Not whitelisted
|
||||||
|
}
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle
|
||||||
|
|
||||||
|
fun KaptImportingTest.isAndroidStudio() = true
|
||||||
+8
@@ -0,0 +1,8 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.codeInsight.gradle
|
||||||
|
|
||||||
|
fun isGradleInspectionTestApplicable() = false
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.tools.projectWizard.wizard.service
|
||||||
|
|
||||||
|
import com.intellij.openapi.project.Project
|
||||||
|
import java.nio.file.Path
|
||||||
|
|
||||||
|
class MavenProjectImporter(private val project: Project) {
|
||||||
|
fun importProject(path: Path) {
|
||||||
|
// AS does not support Maven
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<idea-plugin>
|
||||||
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
|
<externalAnnotator language="kotlin" implementationClass="org.jetbrains.android.inspections.lint.AndroidLintExternalAnnotator"/>
|
||||||
|
</extensions>
|
||||||
|
</idea-plugin>
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<idea-plugin>
|
||||||
|
<extensions defaultExtensionNs="Git4Idea">
|
||||||
|
</extensions>
|
||||||
|
</idea-plugin>
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
<idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude" version="2" url="http://kotlinlang.org" allow-bundled-update="true">
|
||||||
|
<id>org.jetbrains.kotlin</id>
|
||||||
|
|
||||||
|
<name>Kotlin</name>
|
||||||
|
<description><![CDATA[
|
||||||
|
The Kotlin plugin provides language support in IntelliJ IDEA and Android Studio.
|
||||||
|
<br>
|
||||||
|
<a href="http://kotlinlang.org/docs/tutorials/getting-started.html">Getting Started in IntelliJ IDEA</a><br>
|
||||||
|
<a href="http://kotlinlang.org/docs/tutorials/kotlin-android.html">Getting Started in Android Studio</a><br>
|
||||||
|
<a href="http://slack.kotlinlang.org/">Public Slack</a><br>
|
||||||
|
<a href="https://youtrack.jetbrains.com/issues/KT">Issue tracker</a><br>
|
||||||
|
]]></description>
|
||||||
|
<version>@snapshot@</version>
|
||||||
|
<vendor url="http://www.jetbrains.com">JetBrains</vendor>
|
||||||
|
|
||||||
|
<idea-version since-build="202.6397.94" until-build="202.*"/>
|
||||||
|
|
||||||
|
<change-notes><![CDATA[
|
||||||
|
<h3>1.4.0</h3>
|
||||||
|
Released: <b>August 17, 2020</b>
|
||||||
|
<ul>
|
||||||
|
<li>New compiler with better type inference.</li>
|
||||||
|
<li>IR backends for JVM and JS in Alpha mode (<a href="https://kotlinlang.org/docs/reference/whatsnew14.html#unified-backends-and-extensibility">requires opt-in</a>).</li>
|
||||||
|
<li>A new flexible Kotlin Project Wizard for easy creation and configuration of different types of projects.</li>
|
||||||
|
<li>New IDE functionality to debug coroutines.</li>
|
||||||
|
<li>IDE performance improvements: many actions, such as project opening and autocomplete suggestions now complete up to 4 times faster.</li>
|
||||||
|
<li>New language features such as SAM conversions, trailing comma, and other.</li>
|
||||||
|
<li>Type annotations in the JVM bytecode and new modes for generating default interfaces in Kotlin/JVM.</li>
|
||||||
|
<li>New Gradle DSL for Kotlin/JS.</li>
|
||||||
|
<li>Improved performance and interop with Swift and Objective-C in Kotlin/Native.</li>
|
||||||
|
<li>Support for sharing code in several targets thanks to the hierarchical structure in multiplatform projects.</li>
|
||||||
|
<li>New collection operators, delegated properties improvements, the double-ended queue implementation ArrayDeque, and much more new things in the standard library.</li>
|
||||||
|
</ul>
|
||||||
|
For more details, see <a href="https://kotlinlang.org/docs/reference/whatsnew14.html?utm_source=product&utm_medium=link">What’s New in Kotlin 1.4.0</a> and <a href="http://blog.jetbrains.com/kotlin/2020/08/kotlin-1-4-released-with-a-focus-on-quality-and-performance/?utm_source=product&utm_medium=link">this blog post</a>.
|
||||||
|
<br><br>
|
||||||
|
To get the most out of the changes and improvements introduced in Kotlin 1.4, join our <a href="https://kotlinlang.org/lp/event-14/">Online Event</a> where you will be able to enjoy four days of Kotlin talks, Q&As with the Kotlin team, and more.
|
||||||
|
]]>
|
||||||
|
</change-notes>
|
||||||
|
|
||||||
|
<depends>com.intellij.modules.platform</depends>
|
||||||
|
<depends>com.intellij.modules.androidstudio</depends>
|
||||||
|
|
||||||
|
<depends optional="true" config-file="junit.xml">JUnit</depends>
|
||||||
|
<depends optional="true" config-file="gradle.xml">com.intellij.gradle</depends>
|
||||||
|
<depends optional="true" config-file="gradle-java.xml">org.jetbrains.plugins.gradle</depends>
|
||||||
|
<depends optional="true" config-file="kotlin-gradle-testing.xml">org.jetbrains.plugins.gradle</depends>
|
||||||
|
<depends optional="true" config-file="gradle-groovy.xml">org.intellij.groovy</depends>
|
||||||
|
<depends optional="true" config-file="maven-common.xml">org.jetbrains.idea.maven</depends>
|
||||||
|
<depends optional="true" config-file="maven.xml">org.jetbrains.idea.maven</depends>
|
||||||
|
<depends optional="true" config-file="testng-j.xml">TestNG-J</depends>
|
||||||
|
<depends optional="true" config-file="coverage.xml">Coverage</depends>
|
||||||
|
<depends optional="true" config-file="i18n.xml">com.intellij.java-i18n</depends>
|
||||||
|
<depends optional="true" config-file="decompiler.xml">org.jetbrains.java.decompiler</depends>
|
||||||
|
<depends optional="true" config-file="git4idea.xml">Git4Idea</depends>
|
||||||
|
<depends optional="true" config-file="stream-debugger.xml">org.jetbrains.debugger.streams</depends>
|
||||||
|
|
||||||
|
<!-- ULTIMATE-PLUGIN-PLACEHOLDER -->
|
||||||
|
|
||||||
|
<!-- CIDR-PLUGIN-PLACEHOLDER-START -->
|
||||||
|
<depends>com.intellij.modules.java</depends>
|
||||||
|
<depends optional="true" config-file="javaScriptDebug.xml">JavaScriptDebugger</depends>
|
||||||
|
<depends optional="true" config-file="kotlin-copyright.xml">com.intellij.copyright</depends>
|
||||||
|
<depends optional="true" config-file="injection.xml">org.intellij.intelliLang</depends>
|
||||||
|
<!-- CIDR-PLUGIN-PLACEHOLDER-END -->
|
||||||
|
|
||||||
|
<xi:include href="plugin-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
|
<!-- CIDR-PLUGIN-EXCLUDE-START -->
|
||||||
|
<xi:include href="jvm-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
<xi:include href="jvm.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
<!-- CIDR-PLUGIN-EXCLUDE-END -->
|
||||||
|
|
||||||
|
<xi:include href="native-common.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
<xi:include href="native.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
|
<xi:include href="tipsAndTricks.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
|
<xi:include href="extensions/ide.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
|
<xi:include href="kotlinx-serialization.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
|
<xi:include href="scripting-support.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
|
<extensionPoints>
|
||||||
|
<xi:include href="extensions/compiler.xml" xpointer="xpointer(/idea-plugin/extensionPoints/*)"/>
|
||||||
|
|
||||||
|
<extensionPoint qualifiedName="org.jetbrains.kotlin.pluginUpdateVerifier"
|
||||||
|
interface="org.jetbrains.kotlin.idea.update.PluginUpdateVerifier"/>
|
||||||
|
</extensionPoints>
|
||||||
|
|
||||||
|
<xi:include href="plugin-kotlin-extensions.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="com.intellij.jvm">
|
||||||
|
<declarationSearcher language="kotlin" implementationClass="org.jetbrains.kotlin.idea.jvm.KotlinDeclarationSearcher"/>
|
||||||
|
</extensions>
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="com.intellij">
|
||||||
|
<applicationInitializedListener implementation="org.jetbrains.kotlin.idea.PluginStartupListener" />
|
||||||
|
<applicationService serviceImplementation="org.jetbrains.kotlin.idea.PluginStartupService" />
|
||||||
|
|
||||||
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.PluginStartupActivity"/>
|
||||||
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.versions.KotlinUpdatePluginStartupActivity" />
|
||||||
|
|
||||||
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.completion.LookupCancelWatcher"/>
|
||||||
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.caches.KotlinPackageContentModificationListener"/>
|
||||||
|
<postStartupActivity implementation="org.jetbrains.kotlin.idea.configuration.KotlinMigrationProjectComponent"/>
|
||||||
|
|
||||||
|
<projectService serviceImplementation="org.jetbrains.kotlin.idea.completion.LookupCancelService"/>
|
||||||
|
<projectService serviceImplementation="org.jetbrains.kotlin.idea.configuration.KotlinMigrationProjectService"/>
|
||||||
|
|
||||||
|
<highlightingPassFactory implementation="org.jetbrains.kotlin.idea.highlighter.KotlinBeforeResolveHighlightingPass$Registrar"/>
|
||||||
|
<highlightingPassFactory implementation="org.jetbrains.kotlin.idea.highlighter.ScriptExternalHighlightingPass$Registrar"/>
|
||||||
|
<highlightingPassFactory implementation="org.jetbrains.kotlin.idea.parameterInfo.custom.KotlinCodeHintsPass$Registrar"/>
|
||||||
|
<highlightingPassFactory implementation="org.jetbrains.kotlin.idea.refactoring.cutPaste.MoveDeclarationsPassFactory$Registrar"/>
|
||||||
|
|
||||||
|
<projectService serviceImplementation="org.jetbrains.kotlin.idea.caches.trackers.KotlinCodeBlockModificationListener"/>
|
||||||
|
|
||||||
|
<fileTypeUsageSchemaDescriptor schema="Gradle Script" implementationClass="org.jetbrains.kotlin.idea.core.script.KotlinGradleScriptFileTypeSchemaDetector"/>
|
||||||
|
|
||||||
|
<completion.ml.model implementation="org.jetbrains.kotlin.idea.completion.ml.KotlinMLRankingProvider"/>
|
||||||
|
<suggestedRefactoringSupport language="kotlin" implementationClass="org.jetbrains.kotlin.idea.refactoring.suggested.KotlinSuggestedRefactoringSupport"/>
|
||||||
|
|
||||||
|
<refactoring.moveInnerHandler language="kotlin"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.refactoring.move.MoveKotlinInnerHandler"/>
|
||||||
|
|
||||||
|
<defaultLiveTemplates file="liveTemplates/Kotlin.xml"/>
|
||||||
|
|
||||||
|
<fileType name="Kotlin"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.KotlinFileType"
|
||||||
|
fieldName="INSTANCE"
|
||||||
|
language="kotlin"
|
||||||
|
extensions="kt;kts"/>
|
||||||
|
<fileType name="ARCHIVE" extensions="klib"/>
|
||||||
|
<fileType name="KNM"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.klib.KlibMetaFileType"
|
||||||
|
fieldName="INSTANCE"
|
||||||
|
extensions="knm"/>
|
||||||
|
<fileType name="KJSM"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.decompiler.js.KotlinJavaScriptMetaFileType"
|
||||||
|
fieldName="INSTANCE"
|
||||||
|
extensions="kjsm"/>
|
||||||
|
|
||||||
|
<fileType name="kotlin_builtins"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInFileType"
|
||||||
|
fieldName="INSTANCE"
|
||||||
|
extensions="kotlin_builtins;kotlin_metadata"/>
|
||||||
|
|
||||||
|
<fileType name="kotlin_module"
|
||||||
|
implementationClass="org.jetbrains.kotlin.idea.KotlinModuleFileType"
|
||||||
|
fieldName="INSTANCE"
|
||||||
|
extensions="kotlin_module"/>
|
||||||
|
</extensions>
|
||||||
|
|
||||||
|
<extensions defaultExtensionNs="org.jetbrains.kotlin">
|
||||||
|
<pluginUpdateVerifier implementation="org.jetbrains.kotlin.idea.update.GooglePluginUpdateVerifier"/>
|
||||||
|
</extensions>
|
||||||
|
</idea-plugin>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
class IDESettingsFUSCollector {
|
||||||
|
// Not whitelisted
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.configuration
|
||||||
|
|
||||||
|
internal object MLCompletionForKotlin {
|
||||||
|
const val isAvailable: Boolean = false
|
||||||
|
|
||||||
|
var isEnabled: Boolean
|
||||||
|
get() = false
|
||||||
|
set(value) {
|
||||||
|
throw UnsupportedOperationException()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.highlighter.markers
|
||||||
|
|
||||||
|
import com.intellij.icons.AllIcons
|
||||||
|
import javax.swing.Icon
|
||||||
|
|
||||||
|
// FIX ME WHEN BUNCH as35 REMOVED
|
||||||
|
internal fun createDslStyleIcon(styleId: Int): Icon {
|
||||||
|
return AllIcons.Gutter.Colors
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.reporter
|
||||||
|
|
||||||
|
import com.intellij.diagnostic.ITNReporter
|
||||||
|
import com.intellij.openapi.diagnostic.IdeaLoggingEvent
|
||||||
|
import com.intellij.openapi.diagnostic.SubmittedReportInfo
|
||||||
|
import com.intellij.util.Consumer
|
||||||
|
import java.awt.Component
|
||||||
|
|
||||||
|
abstract class ITNReporterCompat : ITNReporter() {
|
||||||
|
final override fun submit(
|
||||||
|
events: Array<IdeaLoggingEvent>,
|
||||||
|
additionalInfo: String?,
|
||||||
|
parentComponent: Component?,
|
||||||
|
consumer: Consumer<SubmittedReportInfo>
|
||||||
|
): Boolean {
|
||||||
|
return submitCompat(events, additionalInfo, parentComponent, consumer)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun submitCompat(
|
||||||
|
events: Array<IdeaLoggingEvent>,
|
||||||
|
additionalInfo: String?,
|
||||||
|
parentComponent: Component?,
|
||||||
|
consumer: Consumer<SubmittedReportInfo>
|
||||||
|
): Boolean {
|
||||||
|
@Suppress("IncompatibleAPI")
|
||||||
|
return super.submit(events, additionalInfo, parentComponent, consumer)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@file:Suppress("DEPRECATION")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea
|
||||||
|
|
||||||
|
// Remove the function, when there's no dependency to cidr during running Kotlin tests.
|
||||||
|
fun registerAdditionalResourceBundleInTests() {
|
||||||
|
}
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.update
|
||||||
|
|
||||||
|
import com.intellij.ide.plugins.IdeaPluginDescriptor
|
||||||
|
import com.intellij.ide.plugins.PluginManagerCore
|
||||||
|
import com.intellij.ide.plugins.PluginNode
|
||||||
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
|
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||||
|
import org.jetbrains.kotlin.idea.util.isDev
|
||||||
|
import org.jetbrains.kotlin.idea.util.isEap
|
||||||
|
import java.io.IOException
|
||||||
|
import java.net.URL
|
||||||
|
import java.util.*
|
||||||
|
import javax.xml.bind.JAXBContext
|
||||||
|
import javax.xml.bind.JAXBException
|
||||||
|
import javax.xml.bind.annotation.*
|
||||||
|
|
||||||
|
class GooglePluginUpdateVerifier : PluginUpdateVerifier() {
|
||||||
|
override val verifierName: String
|
||||||
|
get() = KotlinBundle.message("update.name.android.studio")
|
||||||
|
|
||||||
|
// Verifies if a plugin can be installed in Android Studio 3.2+.
|
||||||
|
// Currently used only by KotlinPluginUpdater.
|
||||||
|
override fun verify(pluginDescriptor: IdeaPluginDescriptor): PluginVerifyResult? {
|
||||||
|
if (pluginDescriptor.pluginId.idString != KOTLIN_PLUGIN_ID) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
val version = pluginDescriptor.version
|
||||||
|
if (isEap(version) || isDev(version)) {
|
||||||
|
return PluginVerifyResult.accept()
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
val url = URL(METADATA_FILE_URL)
|
||||||
|
val stream = url.openStream()
|
||||||
|
val context = JAXBContext.newInstance(PluginCompatibility::class.java)
|
||||||
|
val unmarshaller = context.createUnmarshaller()
|
||||||
|
val pluginCompatibility = unmarshaller.unmarshal(stream) as PluginCompatibility
|
||||||
|
|
||||||
|
val release = getRelease(pluginCompatibility)
|
||||||
|
?: return PluginVerifyResult.decline(KotlinBundle.message("update.reason.text.no.verified.versions.for.this.build"))
|
||||||
|
|
||||||
|
return if (release.plugins().any { KOTLIN_PLUGIN_ID == it.id && version == it.version })
|
||||||
|
PluginVerifyResult.accept()
|
||||||
|
else
|
||||||
|
PluginVerifyResult.decline(KotlinBundle.message("update.reason.text.version.to.be.verified"))
|
||||||
|
} catch (e: Exception) {
|
||||||
|
LOG.info("Exception when verifying plugin ${pluginDescriptor.pluginId.idString} version $version", e)
|
||||||
|
return when (e) {
|
||||||
|
is IOException ->
|
||||||
|
PluginVerifyResult.decline(KotlinBundle.message("update.reason.text.unable.to.connect.to.compatibility.verification.repository"))
|
||||||
|
is JAXBException -> PluginVerifyResult.decline(KotlinBundle.message("update.reason.text.unable.to.parse.compatibility.verification.metadata"))
|
||||||
|
else -> PluginVerifyResult.decline(
|
||||||
|
KotlinBundle.message("update.reason.text.exception.during.verification",
|
||||||
|
e.message.toString()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getRelease(pluginCompatibility: PluginCompatibility): StudioRelease? {
|
||||||
|
for (studioRelease in pluginCompatibility.releases()) {
|
||||||
|
if (buildInRange(studioRelease.name, studioRelease.sinceBuild, studioRelease.untilBuild)) {
|
||||||
|
return studioRelease
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun buildInRange(name: String?, sinceBuild: String?, untilBuild: String?): Boolean {
|
||||||
|
val descriptor = PluginNode()
|
||||||
|
descriptor.name = name
|
||||||
|
descriptor.sinceBuild = sinceBuild
|
||||||
|
descriptor.untilBuild = untilBuild
|
||||||
|
return PluginManagerCore.isCompatible(descriptor)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val KOTLIN_PLUGIN_ID = "org.jetbrains.kotlin"
|
||||||
|
private const val METADATA_FILE_URL = "https://dl.google.com/android/studio/plugins/compatibility.xml"
|
||||||
|
|
||||||
|
private val LOG = Logger.getInstance(GooglePluginUpdateVerifier::class.java)
|
||||||
|
|
||||||
|
private fun PluginCompatibility.releases() = studioRelease ?: emptyArray()
|
||||||
|
private fun StudioRelease.plugins() = ideaPlugin ?: emptyArray()
|
||||||
|
|
||||||
|
@XmlRootElement(name = "plugin-compatibility")
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
class PluginCompatibility {
|
||||||
|
@XmlElement(name = "studio-release")
|
||||||
|
var studioRelease: Array<StudioRelease>? = null
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "PluginCompatibility(studioRelease=${Arrays.toString(studioRelease)})"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
class StudioRelease {
|
||||||
|
@XmlAttribute(name = "until-build")
|
||||||
|
var untilBuild: String? = null
|
||||||
|
@XmlAttribute(name = "since-build")
|
||||||
|
var sinceBuild: String? = null
|
||||||
|
@XmlAttribute
|
||||||
|
var name: String? = null
|
||||||
|
@XmlAttribute
|
||||||
|
var channel: String? = null
|
||||||
|
|
||||||
|
@XmlElement(name = "idea-plugin")
|
||||||
|
var ideaPlugin: Array<IdeaPlugin>? = null
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "StudioRelease(" +
|
||||||
|
"untilBuild=$untilBuild, name=$name, ideaPlugin=${Arrays.toString(ideaPlugin)}, " +
|
||||||
|
"sinceBuild=$sinceBuild, channel=$channel" +
|
||||||
|
")"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
class IdeaPlugin {
|
||||||
|
@XmlAttribute
|
||||||
|
var id: String? = null
|
||||||
|
@XmlAttribute
|
||||||
|
var sha256: String? = null
|
||||||
|
@XmlAttribute
|
||||||
|
var channel: String? = null
|
||||||
|
@XmlAttribute
|
||||||
|
var version: String? = null
|
||||||
|
|
||||||
|
@XmlElement(name = "idea-version")
|
||||||
|
var ideaVersion: IdeaVersion? = null
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "IdeaPlugin(id=$id, sha256=$sha256, ideaVersion=$ideaVersion, channel=$channel, version=$version)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@XmlAccessorType(XmlAccessType.FIELD)
|
||||||
|
class IdeaVersion {
|
||||||
|
@XmlAttribute(name = "until-build")
|
||||||
|
var untilBuild: String? = null
|
||||||
|
@XmlAttribute(name = "since-build")
|
||||||
|
var sinceBuild: String? = null
|
||||||
|
|
||||||
|
override fun toString(): String {
|
||||||
|
return "IdeaVersion(untilBuild=$untilBuild, sinceBuild=$sinceBuild)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.idea.update
|
||||||
|
|
||||||
|
import com.intellij.ide.plugins.IdeaPluginDescriptor
|
||||||
|
import com.intellij.openapi.util.registry.Registry
|
||||||
|
import org.jetbrains.kotlin.idea.PluginUpdateStatus
|
||||||
|
|
||||||
|
// Do an additional verification with PluginUpdateVerifier. Enabled only in AS 3.2+
|
||||||
|
fun verify(updateStatus: PluginUpdateStatus.Update): PluginUpdateStatus {
|
||||||
|
@Suppress("InvalidBundleOrProperty")
|
||||||
|
val pluginVerifierEnabled = Registry.`is`("kotlin.plugin.update.verifier.enabled", true)
|
||||||
|
if (!pluginVerifierEnabled) {
|
||||||
|
return updateStatus
|
||||||
|
}
|
||||||
|
|
||||||
|
val pluginDescriptor: IdeaPluginDescriptor = updateStatus.pluginDescriptor
|
||||||
|
val pluginVerifiers = PluginUpdateVerifier.EP_NAME.extensions
|
||||||
|
|
||||||
|
for (pluginVerifier in pluginVerifiers) {
|
||||||
|
val verifyResult = pluginVerifier.verify(pluginDescriptor) ?: continue
|
||||||
|
if (!verifyResult.verified) {
|
||||||
|
return PluginUpdateStatus.Unverified(
|
||||||
|
pluginVerifier.verifierName,
|
||||||
|
verifyResult.declineMessage,
|
||||||
|
updateStatus
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return updateStatus
|
||||||
|
}
|
||||||
Vendored
+7
@@ -0,0 +1,7 @@
|
|||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class <lineMarker descr="Run Test" settings="Nothing here">MyKotlinTest</lineMarker> {
|
||||||
|
@Test
|
||||||
|
fun <lineMarker descr="Run Test" settings="Nothing here">testA</lineMarker>() {
|
||||||
|
}
|
||||||
|
}
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class <lineMarker descr="Run Test" settings="Nothing here">MyKotlinTest</lineMarker> {
|
||||||
|
@Test
|
||||||
|
fun <lineMarker descr="Run Test" settings="Nothing here">testA</lineMarker>() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun <lineMarker descr="Run Test" settings="Nothing here">testB</lineMarker>() {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.jps.build
|
||||||
|
|
||||||
|
import org.jetbrains.jps.incremental.CompileContext
|
||||||
|
import org.jetbrains.jps.incremental.messages.CompilerMessage
|
||||||
|
|
||||||
|
fun jpsReportInternalBuilderError(context: CompileContext, error: Throwable) {
|
||||||
|
KotlinBuilder.LOG.info(error)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user