From ec2eec33e3472fc10141fd15da95e2c5d624d770 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Thu, 26 Jan 2017 10:21:53 +0300 Subject: [PATCH] Added hint url for coroutines and multiplatform diagnostics. --- .../jetbrains/kotlin/config/LanguageVersionSettings.kt | 10 ++++++---- idea/testData/diagnosticMessage/urlMultiproject.kt | 5 +++++ idea/testData/diagnosticMessage/urlMultiproject1.txt | 2 ++ .../highlighter/DiagnosticMessageTestGenerated.java | 6 ++++++ 4 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 idea/testData/diagnosticMessage/urlMultiproject.kt create mode 100644 idea/testData/diagnosticMessage/urlMultiproject1.txt diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt index c7e93fe3a09..5fff6a11edb 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt @@ -19,13 +19,13 @@ package org.jetbrains.kotlin.config import org.jetbrains.kotlin.config.LanguageVersion.KOTLIN_1_1 import org.jetbrains.kotlin.utils.DescriptionAware -enum class LanguageFeature(val sinceVersion: LanguageVersion?) { +enum class LanguageFeature(val sinceVersion: LanguageVersion?, val hintUrl: String? = null) { // Note: names of these entries are also used in diagnostic tests and in user-visible messages (see presentableText below) TypeAliases(KOTLIN_1_1), BoundCallableReferences(KOTLIN_1_1), LocalDelegatedProperties(KOTLIN_1_1), TopLevelSealedInheritance(KOTLIN_1_1), - Coroutines(KOTLIN_1_1), + Coroutines(KOTLIN_1_1, "https://kotlinlang.org/docs/diagnostics/experimental-coroutines"), AdditionalBuiltInsMembers(KOTLIN_1_1), DataClassInheritance(KOTLIN_1_1), InlineProperties(KOTLIN_1_1), @@ -42,17 +42,19 @@ enum class LanguageFeature(val sinceVersion: LanguageVersion?) { SafeCallBoundSmartCasts(KOTLIN_1_1), // Experimental features - MultiPlatformProjects(null), + MultiPlatformProjects(null, "https://kotlinlang.org/docs/diagnostics/experimental-multitraget-projects"), MultiPlatformDoNotCheckImpl(null), WarnOnCoroutines(null), ErrorOnCoroutines(null) ; - val presentableText: String + val presentableName: String // E.g. "DestructuringLambdaParameters" -> ["Destructuring", "Lambda", "Parameters"] -> "destructuring lambda parameters" get() = name.split("(? +The feature is experimental and should be turned on explicitly via a command line option or in IDE settings: multi platform projects (See: https://kotlinlang.org/docs/diagnostics/experimental-multitraget-projects) \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java index 64533d77bbc..29908ca262c 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/DiagnosticMessageTestGenerated.java @@ -317,4 +317,10 @@ public class DiagnosticMessageTestGenerated extends AbstractDiagnosticMessageTes String fileName = KotlinTestUtils.navigationMetadata("idea/testData/diagnosticMessage/upperBoundViolatedInTypeAliasConstructorCall.kt"); doTest(fileName); } + + @TestMetadata("urlMultiproject.kt") + public void testUrlMultiproject() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/diagnosticMessage/urlMultiproject.kt"); + doTest(fileName); + } }