mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-08 15:09:39 +07:00
[platform] IJPL-49: Improve i18n handling
GitOrigin-RevId: 0b53b757a30f7bffdc730a2536e7ee06951e1f4d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bbe2c63c2c
commit
d32141e78d
@@ -5,6 +5,7 @@ import com.intellij.ide.environment.EnvironmentKey
|
||||
import com.intellij.ide.environment.EnvironmentKeyProvider
|
||||
import com.intellij.java.JavaBundle
|
||||
import com.intellij.openapi.project.Project
|
||||
import java.util.function.Supplier
|
||||
|
||||
class JvmEnvironmentKeyProvider : EnvironmentKeyProvider {
|
||||
|
||||
@@ -13,9 +14,9 @@ class JvmEnvironmentKeyProvider : EnvironmentKeyProvider {
|
||||
val JDK_NAME = EnvironmentKey.create("project.jdk.name")
|
||||
}
|
||||
|
||||
override val knownKeys: Map<EnvironmentKey, String> =
|
||||
mapOf(Keys.JDK_KEY to JavaBundle.message("environment.key.description.project.jdk"),
|
||||
Keys.JDK_NAME to JavaBundle.message("environment.key.description.project.jdk.name"),
|
||||
override val knownKeys: Map<EnvironmentKey, Supplier<String>> =
|
||||
mapOf(Keys.JDK_KEY to JavaBundle.messagePointer("environment.key.description.project.jdk"),
|
||||
Keys.JDK_NAME to JavaBundle.messagePointer("environment.key.description.project.jdk.name"),
|
||||
)
|
||||
|
||||
override suspend fun getRequiredKeys(project: Project): List<EnvironmentKey> = listOf()
|
||||
|
||||
@@ -42,5 +42,5 @@ sealed interface EnvironmentKey {
|
||||
|
||||
val EnvironmentKey.description: @Nls String
|
||||
get() = EnvironmentKeyProvider.EP_NAME.extensionList.firstNotNullOfOrNull { provider ->
|
||||
provider.knownKeys[this]
|
||||
provider.knownKeys[this]?.get()
|
||||
} ?: error("Key ${this.id} must be registered in some ${EnvironmentKeyProvider}")
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.NlsContext
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
import org.jetbrains.annotations.Nls
|
||||
import java.util.function.Supplier
|
||||
|
||||
/**
|
||||
* Used for registering environment keys.
|
||||
@@ -23,7 +24,7 @@ interface EnvironmentKeyProvider {
|
||||
* Returns all keys that are used by a client of [EnvironmentService].
|
||||
* Each [EnvironmentKey] must be registered at least in one [EnvironmentKeyProvider.knownKeys].
|
||||
*/
|
||||
val knownKeys: Map<EnvironmentKey, @EnvironmentKeyDescription String>
|
||||
val knownKeys: Map<EnvironmentKey, Supplier<@EnvironmentKeyDescription String>>
|
||||
|
||||
/**
|
||||
* Returns all keys that are absolutely required for a project to be configured without interaction with the user.
|
||||
|
||||
@@ -78,7 +78,7 @@ private suspend fun generateKeyConfig(generateDescriptions: Boolean, configurati
|
||||
writeStartObject()
|
||||
if (generateDescriptions) {
|
||||
writeArrayFieldStart("description")
|
||||
for (line in descr.lines()) {
|
||||
for (line in descr.get().lines()) {
|
||||
writeString(line)
|
||||
}
|
||||
writeEndArray()
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.ide.environment.EnvironmentKey
|
||||
import com.intellij.ide.environment.EnvironmentKeyProvider
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.project.ProjectBundle
|
||||
import java.util.function.Supplier
|
||||
|
||||
class ProjectOpenKeyProvider : EnvironmentKeyProvider {
|
||||
object Keys {
|
||||
@@ -13,7 +14,7 @@ class ProjectOpenKeyProvider : EnvironmentKeyProvider {
|
||||
|
||||
override suspend fun getRequiredKeys(project: Project): List<EnvironmentKey> = listOf()
|
||||
|
||||
override val knownKeys: Map<EnvironmentKey, String> = mapOf(
|
||||
Keys.PROJECT_OPEN_PROCESSOR to ProjectBundle.message("project.open.processor.environment.property"),
|
||||
override val knownKeys: Map<EnvironmentKey, Supplier<String>> = mapOf(
|
||||
Keys.PROJECT_OPEN_PROCESSOR to ProjectBundle.messagePointer("project.open.processor.environment.property"),
|
||||
)
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.intellij.ide.IdeBundle
|
||||
import com.intellij.ide.environment.EnvironmentKey
|
||||
import com.intellij.ide.environment.EnvironmentKeyProvider
|
||||
import com.intellij.openapi.project.Project
|
||||
import java.util.function.Supplier
|
||||
|
||||
class PluginEnvironmentKeyProvider : EnvironmentKeyProvider {
|
||||
|
||||
@@ -12,8 +13,8 @@ class PluginEnvironmentKeyProvider : EnvironmentKeyProvider {
|
||||
val ENABLE_DISABLED_DEPENDENT_PLUGINS = EnvironmentKey.create("enable.disabled.dependent.plugins")
|
||||
}
|
||||
|
||||
override val knownKeys: Map<EnvironmentKey, String> = mapOf(
|
||||
Keys.ENABLE_DISABLED_DEPENDENT_PLUGINS to IdeBundle.message("environment.key.description.enable.disabled.dependent.plugins")
|
||||
override val knownKeys: Map<EnvironmentKey, Supplier<String>> = mapOf(
|
||||
Keys.ENABLE_DISABLED_DEPENDENT_PLUGINS to IdeBundle.messagePointer("environment.key.description.enable.disabled.dependent.plugins")
|
||||
)
|
||||
|
||||
override suspend fun getRequiredKeys(project: Project): List<EnvironmentKey> = emptyList()
|
||||
|
||||
@@ -21,6 +21,7 @@ import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import java.nio.file.Path
|
||||
import java.util.function.Supplier
|
||||
import kotlin.io.path.deleteIfExists
|
||||
import kotlin.io.path.readText
|
||||
|
||||
@@ -194,9 +195,9 @@ private val notRegisteredDummyKey: EnvironmentKey = EnvironmentKey.create("not.r
|
||||
|
||||
private class TestKeyProvider : EnvironmentKeyProvider {
|
||||
|
||||
override val knownKeys: Map<EnvironmentKey, String> = mapOf(
|
||||
dummyKey to "My dummy test key\nWith a long description",
|
||||
dummyKey2 to "Just another dummy key",
|
||||
override val knownKeys: Map<EnvironmentKey, Supplier<String>> = mapOf(
|
||||
dummyKey to Supplier { "My dummy test key\nWith a long description" },
|
||||
dummyKey2 to Supplier { "Just another dummy key" },
|
||||
)
|
||||
|
||||
override suspend fun getRequiredKeys(project: Project): List<EnvironmentKey> =
|
||||
|
||||
Reference in New Issue
Block a user