i18n: update bundle in `idea-jvm

#KT-37483
This commit is contained in:
Dmitry Gridin
2020-03-26 21:10:05 +07:00
parent 0e82c66dac
commit 77a043fe1a
39 changed files with 192 additions and 169 deletions
@@ -62,14 +62,14 @@ run.configuration.error.class.no.main.method=Class ''{0}'' has no ''main()'' met
run.configuration.error.main.not.found=Function ''main()'' not found in class ''{0}'' run.configuration.error.main.not.found=Function ''main()'' not found in class ''{0}''
run.configuration.error.main.not.found.top.level=Top-level function ''main()'' not found in package ''{0}'' run.configuration.error.main.not.found.top.level=Top-level function ''main()'' not found in package ''{0}''
script.choose.file=Choose script file script.choose.file=Choose Script File
editor.editor.only=Editor only editor.editor.only=Editor only
editor.preview.only=Preview only editor.preview.only=Preview only
editor.editor.and.preview=Editor and preview editor.editor.and.preview=Editor and preview
choose.configurator=Choose Configurator title.choose.configurator=Choose Configurator
ignore=Ignore action.text.ignore=Ignore
configure=Configure action.text.configure=Configure
kotlin.not.configured=Kotlin not configured kotlin.not.configured=Kotlin not configured
there.aren.t.configurators.available=There aren't configurators available there.aren.t.configurators.available=There aren't configurators available
all.modules.with.kotlin.files.are.configured=All modules with Kotlin files are configured all.modules.with.kotlin.files.are.configured=All modules with Kotlin files are configured
@@ -86,6 +86,8 @@ can.t.find.library.jar.file.0=Can''t find library JAR file {0}
0.library.was.created={0} library was created 0.library.was.created={0} library was created
configure.kotlin=Configure Kotlin configure.kotlin=Configure Kotlin
configure.0.in.1.project.br.2=Configure {0} in ''{1}'' project<br/> {2} configure.0.in.1.project.br.2=Configure {0} in ''{1}'' project<br/> {2}
configure.0.module=''{0}'' module
configure.modules=modules
kotlin.code.style=Kotlin Code Style kotlin.code.style=Kotlin Code Style
default.code.style.was.updated.to.kotlin.coding.conventions=Default code style was updated to Kotlin Coding Conventions. default.code.style.was.updated.to.kotlin.coding.conventions=Default code style was updated to Kotlin Coding Conventions.
apply.new.code.style=Apply new code style apply.new.code.style=Apply new code style
@@ -94,29 +96,29 @@ libraries.for.the.following.platform.are.also.present.in.the.module.dependencies
no.target.platforms.selected=No target platforms selected no.target.platforms.selected=No target platforms selected
kotlin.common.standard.library=Kotlin Common Standard Library kotlin.common.standard.library=Kotlin Common Standard Library
create.kotlin.common.standard.library=Create Kotlin Common Standard Library create.kotlin.common.standard.library=Create Kotlin Common Standard Library
kotlin.js=Kotlin/JS presentable.name.kotlin.js=Kotlin/JS
kotlin.java.runtime.library=Kotlin Java Runtime Library kotlin.java.runtime.library=Kotlin Java Runtime Library
create.kotlin.java.runtime.library=Create Kotlin Java Runtime Library create.kotlin.java.runtime.library=Create Kotlin Java Runtime Library
kotlin.javascript.library=Kotlin JavaScript Library kotlin.javascript.library=Kotlin JavaScript Library
create.kotlin.javascript.library=Create Kotlin JavaScript Library create.kotlin.javascript.library=Create Kotlin JavaScript Library
javascript.library.creation=JavaScript Library Creation javascript.library.creation=JavaScript Library Creation
java.runtime.library.creation=Java Runtime Library Creation java.runtime.library.creation=Java Runtime Library Creation
js.files=JS files presentable.type.js.files=JS files
kotlin.project.with.a.javascript.target.based.on.the.intellij.idea.build.system=Kotlin project with a JavaScript target based on the IntelliJ IDEA build system kotlin.project.with.a.javascript.target.based.on.the.intellij.idea.build.system=Kotlin project with a JavaScript target based on the IntelliJ IDEA build system
kotlin.project.with.a.jvm.target.based.on.the.intellij.idea.build.system=Kotlin project with a JVM target based on the IntelliJ IDEA build system kotlin.project.with.a.jvm.target.based.on.the.intellij.idea.build.system=Kotlin project with a JVM target based on the IntelliJ IDEA build system
add.injection.comment=Add injection comment command.action.add.injection.comment=Add injection comment
add.injection.annotation=Add injection annotation command.action.add.injection.annotation=Add injection annotation
remove.injection.in.code.instructions=remove injection in-code instructions command.action.remove.injection.in.code.instructions=remove injection in-code instructions
this.java.file.is.outside.of.java.source.roots.and.won.t.be.added.to.the.classpath=This .java file is outside of Java source roots and won't be added to the classpath. this.java.file.is.outside.of.java.source.roots.and.won.t.be.added.to.the.classpath=This .java file is outside of Java source roots and won't be added to the classpath.
incompatible.api=Incompatible API reason.incompatible.api=Incompatible API
kotlin.bytecode.decompiler=Kotlin Bytecode Decompiler kotlin.bytecode.decompiler=Kotlin Bytecode Decompiler
failed.to.decompile.0.1=Failed to decompile {0}: {1} failed.to.decompile.0.1=Failed to decompile {0}: {1}
decompile=Decompile button.text.decompile=Decompile
ir=IR checkbox.text.ir=IR
jvm.8.target=JVM 8 target checkbox.text.jvm.8.target=JVM 8 target
assertions=Assertions checkbox.text.assertions=Assertions
optimization=Optimization checkbox.text.optimization=Optimization
inline=Inline checkbox.text.inline=Inline
cannot.compile.0.to.bytecode=Cannot compile {0} to bytecode. cannot.compile.0.to.bytecode=Cannot compile {0} to bytecode.
create.backup.for.debugging.kotlin.incremental.compilation=Create backup for debugging Kotlin incremental compilation create.backup.for.debugging.kotlin.incremental.compilation=Create backup for debugging Kotlin incremental compilation
creating.backup.for.debugging.kotlin.incremental.compilation=Creating backup for debugging Kotlin incremental compilation creating.backup.for.debugging.kotlin.incremental.compilation=Creating backup for debugging Kotlin incremental compilation
@@ -132,7 +134,7 @@ this.language.feature.requires.version.0.or.later.of.the.kotlin.runtime.library.
could.not.find.script.file.0=Could not find script file: {0} could.not.find.script.file.0=Could not find script file: {0}
file.was.not.specified=File was not specified file.was.not.specified=File was not specified
run.kotlin.script=Run Kotlin script run.kotlin.script=Run Kotlin script
kotlin.script=Kotlin script name.kotlin.script=Kotlin script
exception.occurs.during.run.scratch.action=Exception occurs during Run Scratch Action exception.occurs.during.run.scratch.action=Exception occurs during Run Scratch Action
there.were.compilation.errors.in.module.0=There were compilation errors in module {0} there.were.compilation.errors.in.module.0=There were compilation errors in module {0}
other.scratch.file.execution.is.in.progress=Other Scratch file execution is in progress other.scratch.file.execution.is.in.progress=Other Scratch file execution is in progress
@@ -145,9 +147,9 @@ running.kotlin.scratch=Running Kotlin Scratch...
couldn.t.execute.statement.0=Couldn''t execute statement: {0} couldn.t.execute.statement.0=Couldn''t execute statement: {0}
couldn.t.stop.repl.process=Couldn't stop REPL process couldn.t.stop.repl.process=Couldn't stop REPL process
check.bunch.files=Check &bunch files check.bunch.files=Check &bunch files
commit=Commit button.text.commit=Commit
review=Review button.text.review=Review
forgotten.bunch.files=Forgotten Bunch Files button.text.forgotten.bunch.files=Forgotten Bunch Files
several.bunch.files.haven.t.been.updated.0.do.you.want.to.review.them.before.commit=Several bunch files haven''t been updated:\n\n{0}\n\nDo you want to review them before commit? several.bunch.files.haven.t.been.updated.0.do.you.want.to.review.them.before.commit=Several bunch files haven''t been updated:\n\n{0}\n\nDo you want to review them before commit?
update.kotlin.runtime.library=Update Kotlin Runtime Library update.kotlin.runtime.library=Update Kotlin Runtime Library
automatic.library.version.update.for.maven.and.gradle.projects.is.currently.unsupported.please.update.your.build.scripts.manually=Automatic library version update for Maven and Gradle projects is currently unsupported. Please update your build scripts manually. automatic.library.version.update.for.maven.and.gradle.projects.is.currently.unsupported.please.update.your.build.scripts.manually=Automatic library version update for Maven and Gradle projects is currently unsupported. Please update your build scripts manually.
@@ -156,31 +158,43 @@ failed.to.update.0.1=Failed to update {0}: {1}
library.update.failed1=Library update failed library.update.failed1=Library update failed
failed.to.find.root.for.file.0=Failed to find root for file: {0} failed.to.find.root.for.file.0=Failed to find root for file: {0}
html.b.0.choice.0.1.1.some.kotlin.runtime.librar.0.choice.0.1.y.1.ies.b.1.choice.0.1.and.one.other.jar.1.and.1.other.jars.1.choice.0.has.0.have.an.unsupported.binary.format.html=<b>{0,choice,0#|1#|1<Some }Kotlin runtime librar{0,choice,0#|1#y|1<ies}</b>{1,choice,0#|1# and one other jar|1< and {1} other jars} {1,choice,0#has|0<have} an unsupported binary format. html.b.0.choice.0.1.1.some.kotlin.runtime.librar.0.choice.0.1.y.1.ies.b.1.choice.0.1.and.one.other.jar.1.and.1.other.jars.1.choice.0.has.0.have.an.unsupported.binary.format.html=<b>{0,choice,0#|1#|1<Some }Kotlin runtime librar{0,choice,0#|1#y|1<ies}</b>{1,choice,0#|1# and one other jar|1< and {1} other jars} {1,choice,0#has|0<have} an unsupported binary format.
replace=Replace button.text.replace.library=Replace
downgrade=Downgrade button.text.downgrade.library=Downgrade
update=Update button.text.update.library=Update
0.choice.0.1.1.all.kotlin.runtime.librar.0.choice.0.1.y.1.ies={0,choice,0#|1#|1<all }Kotlin runtime librar{0,choice,0#|1#y|1<ies} 0.choice.0.1.1.all.kotlin.runtime.librar.0.choice.0.1.y.1.ies={0,choice,0#|1#|1<all }Kotlin runtime librar{0,choice,0#|1#y|1<ies}
html.kotlin.library.b.0.b.has.outdated.binary.format.and.can.t.be.read.by.current.plugin.please.update.the.library.html=Kotlin library <b>'{'0'}'</b> has outdated binary format and can''t be read by current plugin. Please update the library. html.kotlin.library.b.0.b.has.outdated.binary.format.and.can.t.be.read.by.current.plugin.please.update.the.library.html=Kotlin library <b>'{'0'}'</b> has outdated binary format and can''t be read by current plugin. Please update the library.
html.kotlin.library.b.0.b.was.compiled.with.a.newer.kotlin.compiler.and.can.t.be.read.please.update.kotlin.plugin.html=Kotlin library <b>'{'0'}'</b> was compiled with a newer Kotlin compiler and can''t be read. Please update Kotlin plugin. html.kotlin.library.b.0.b.was.compiled.with.a.newer.kotlin.compiler.and.can.t.be.read.please.update.kotlin.plugin.html=Kotlin library <b>'{'0'}'</b> was compiled with a newer Kotlin compiler and can''t be read. Please update Kotlin plugin.
some.kotlin.libraries.attached.to.this.project.have.unsupported.binary.format.please.update.the.libraries.or.the.plugin=Some Kotlin libraries attached to this project have unsupported binary format. Please update the libraries or the plugin. some.kotlin.libraries.attached.to.this.project.have.unsupported.binary.format.please.update.the.libraries.or.the.plugin=Some Kotlin libraries attached to this project have unsupported binary format. Please update the libraries or the plugin.
some.kotlin.libraries.attached.to.this.project.have.outdated.binary.format.and.can.t.be.read.by.current.plugin.please.update.found.libraries=Some Kotlin libraries attached to this project have outdated binary format and can't be read by current plugin. Please update found libraries. some.kotlin.libraries.attached.to.this.project.have.outdated.binary.format.and.can.t.be.read.by.current.plugin.please.update.found.libraries=Some Kotlin libraries attached to this project have outdated binary format and can't be read by current plugin. Please update found libraries.
some.kotlin.libraries.attached.to.this.project.were.compiled.with.a.newer.kotlin.compiler.and.can.t.be.read.please.update.kotlin.plugin=Some Kotlin libraries attached to this project were compiled with a newer Kotlin compiler and can't be read. Please update Kotlin plugin. some.kotlin.libraries.attached.to.this.project.were.compiled.with.a.newer.kotlin.compiler.and.can.t.be.read.please.update.kotlin.plugin=Some Kotlin libraries attached to this project were compiled with a newer Kotlin compiler and can't be read. Please update Kotlin plugin.
go.to.0=Go to {0} button.text.go.to.0=Go to {0}
details=Details button.text.details=Details
update.plugin=Update plugin progress.action.text.update.plugin=Update plugin
check=\ Check... progress.action.text.check=\ Check...
can.t.show.all.paths.during.index.update=Can't show all paths during index update can.t.show.all.paths.during.index.update=Can't show all paths during index update
unsupported.format.plugin.version.0=Unsupported format, plugin version: {0} unsupported.format.plugin.version.0=Unsupported format, plugin version: {0}
no.updates.found=No updates found no.updates.found=No updates found
0.1.expected.2={0} ({1}) - expected: {2} 0.1.expected.2={0} ({1}) - expected: {2}
copy.to=&Copy to: choose.library.copy.to=&Copy to:
use.library.from.plugin=&Use library from plugin use.library.from.plugin=&Use library from plugin
all.modules.containing.kotlin.files=All modules containing Kotlin files: all.modules.containing.kotlin.files=All modules containing Kotlin files:
all.modules=All modules all.modules=All modules
single.module=Single module: single.module=Single module:
kotlin.compiler.and.runtime.version=Kotlin compiler and runtime version: kotlin.compiler.and.runtime.version=Kotlin compiler and runtime version:
copy.into=&Copy into: copy.into=&Copy into:
using.compiler.bundled.into.plugin=Using compiler bundled into plugin using.compiler.bundled.into.plugin=Using compiler bundled into plugin
reason=&Reason api.dialog.reason=&Reason
reference=Re&ference api.dialog.reference=Re&ference
script.file=Script file configuration.title.script.file=Script file
presentable.name.js.idea=JS | IDEA
presentable.name.jvm.idea=JVM | IDEA
language.name.kotlin=Kotlin
language.name.java=Java
language.name.javascript=JavaScript
as.kotlin.1.module=as Kotlin ({0}) {1,choice,0#module|2#modules}
presentable.name.kotlin.jvm=Kotlin/JVM
fix.0.in.current.module={0} in the current module
fix.0.in.the.project={0} in the project
short.feature.name.coroutine=coroutine
enable.feature.family=Increase {0,choice,0#module|1#project} {1,choice,0#API version|1#language version}
enable.feature.text=Set {0,choice,0#module|1#project} {1,choice,0#API version|1#language version} to {2}
@@ -27,15 +27,12 @@ import org.jetbrains.kotlin.idea.KotlinIcons
import org.jetbrains.kotlin.idea.internal.KotlinBytecodeToolWindow import org.jetbrains.kotlin.idea.internal.KotlinBytecodeToolWindow
class ShowKotlinBytecodeAction : AnAction() { class ShowKotlinBytecodeAction : AnAction() {
val TOOLWINDOW_ID = "Kotlin Bytecode"
override fun actionPerformed(e: AnActionEvent) { override fun actionPerformed(e: AnActionEvent) {
val project = e.project ?: return val project = e.project ?: return
val toolWindowManager = ToolWindowManager.getInstance(project) val toolWindowManager = ToolWindowManager.getInstance(project)
var toolWindow = toolWindowManager.getToolWindow(TOOLWINDOW_ID) var toolWindow = toolWindowManager.getToolWindow(TOOLWINDOW_ID)
if (toolWindow == null) { if (toolWindow == null) {
toolWindow = toolWindowManager.registerToolWindow("Kotlin Bytecode", false, ToolWindowAnchor.RIGHT) toolWindow = toolWindowManager.registerToolWindow(TOOLWINDOW_ID, false, ToolWindowAnchor.RIGHT)
toolWindow.icon = KotlinIcons.SMALL_LOGO_13 toolWindow.icon = KotlinIcons.SMALL_LOGO_13
val contentManager = toolWindow.contentManager val contentManager = toolWindow.contentManager
@@ -49,4 +46,8 @@ class ShowKotlinBytecodeAction : AnAction() {
val file = e.getData(CommonDataKeys.PSI_FILE) val file = e.getData(CommonDataKeys.PSI_FILE)
e.presentation.isEnabled = e.project != null && file?.fileType == KotlinFileType.INSTANCE e.presentation.isEnabled = e.project != null && file?.fileType == KotlinFileType.INSTANCE
} }
companion object {
const val TOOLWINDOW_ID = "Kotlin Bytecode"
}
} }
@@ -27,14 +27,12 @@ import org.jetbrains.kotlin.idea.KotlinIcons
import org.jetbrains.kotlin.idea.internal.KotlinBytecodeToolWindow import org.jetbrains.kotlin.idea.internal.KotlinBytecodeToolWindow
class ShowKotlinBytecodeAction : AnAction() { class ShowKotlinBytecodeAction : AnAction() {
val TOOLWINDOW_ID = "Kotlin Bytecode"
override fun actionPerformed(e: AnActionEvent) { override fun actionPerformed(e: AnActionEvent) {
val project = e.project ?: return val project = e.project ?: return
val toolWindowManager = ToolWindowManager.getInstance(project) val toolWindowManager = ToolWindowManager.getInstance(project)
val toolWindow = toolWindowManager.getToolWindow(TOOLWINDOW_ID) ?: toolWindowManager.registerToolWindow( val toolWindow = toolWindowManager.getToolWindow(TOOLWINDOW_ID) ?: toolWindowManager.registerToolWindow(
"Kotlin Bytecode", TOOLWINDOW_ID,
false, false,
ToolWindowAnchor.RIGHT, ToolWindowAnchor.RIGHT,
) )
@@ -51,4 +49,8 @@ class ShowKotlinBytecodeAction : AnAction() {
val file = e.getData(CommonDataKeys.PSI_FILE) val file = e.getData(CommonDataKeys.PSI_FILE)
e.presentation.isEnabled = e.project != null && file?.fileType == KotlinFileType.INSTANCE e.presentation.isEnabled = e.project != null && file?.fileType == KotlinFileType.INSTANCE
} }
companion object {
const val TOOLWINDOW_ID = "Kotlin Bytecode"
}
} }
@@ -83,11 +83,11 @@ fun devRepository(version: String) = RepositoryDescription(
isSnapshot = false isSnapshot = false
) )
val MAVEN_CENTRAL = "mavenCentral()" const val MAVEN_CENTRAL = "mavenCentral()"
val JCENTER = "jcenter()" const val JCENTER = "jcenter()"
val KOTLIN_GROUP_ID = "org.jetbrains.kotlin" const val KOTLIN_GROUP_ID = "org.jetbrains.kotlin"
fun isRepositoryConfigured(repositoriesBlockText: String): Boolean = fun isRepositoryConfigured(repositoriesBlockText: String): Boolean =
repositoriesBlockText.contains(MAVEN_CENTRAL) || repositoriesBlockText.contains(JCENTER) repositoriesBlockText.contains(MAVEN_CENTRAL) || repositoriesBlockText.contains(JCENTER)
@@ -28,6 +28,7 @@ import com.intellij.openapi.roots.OrderRootType
import com.intellij.openapi.roots.impl.libraries.LibraryEx import com.intellij.openapi.roots.impl.libraries.LibraryEx
import com.intellij.openapi.roots.libraries.Library import com.intellij.openapi.roots.libraries.Library
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.idea.KotlinJvmBundle
import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.Kotlin2JvmCompilerArgumentsHolder
import org.jetbrains.kotlin.idea.facet.getOrCreateFacet import org.jetbrains.kotlin.idea.facet.getOrCreateFacet
import org.jetbrains.kotlin.idea.facet.initializeIfNeeded import org.jetbrains.kotlin.idea.facet.initializeIfNeeded
@@ -63,7 +64,7 @@ open class KotlinJavaModuleConfigurator protected constructor() : KotlinWithLibr
get() = JavaRuntimeLibraryDescription.JAVA_RUNTIME_LIBRARY_CREATION get() = JavaRuntimeLibraryDescription.JAVA_RUNTIME_LIBRARY_CREATION
override val presentableText: String override val presentableText: String
get() = "Java" get() = KotlinJvmBundle.message("language.name.java")
override val name: String override val name: String
get() = NAME get() = NAME
@@ -36,7 +36,7 @@ open class KotlinJsModuleConfigurator : KotlinWithLibraryConfigurator() {
override fun getTargetPlatform() = JsPlatforms.CompatJsPlatform override fun getTargetPlatform() = JsPlatforms.CompatJsPlatform
override val presentableText: String override val presentableText: String
get() = JavaScript.FULL_NAME get() = KotlinJvmBundle.message("language.name.javascript")
override fun isConfigured(module: Module) = hasKotlinJsRuntimeInScope(module) override fun isConfigured(module: Module) = hasKotlinJsRuntimeInScope(module)
@@ -97,7 +97,7 @@ class KotlinSetupEnvironmentNotificationProvider(private val myProject: Project)
setText(KotlinJvmBundle.message("kotlin.not.configured")) setText(KotlinJvmBundle.message("kotlin.not.configured"))
val configurators = getAbleToRunConfigurators(module).toList() val configurators = getAbleToRunConfigurators(module).toList()
if (configurators.isNotEmpty()) { if (configurators.isNotEmpty()) {
createComponentActionLabel(KotlinJvmBundle.message("configure")) { label -> createComponentActionLabel(KotlinJvmBundle.message("action.text.configure")) { label ->
val singleConfigurator = configurators.singleOrNull() val singleConfigurator = configurators.singleOrNull()
if (singleConfigurator != null) { if (singleConfigurator != null) {
singleConfigurator.apply(module.project) singleConfigurator.apply(module.project)
@@ -107,7 +107,7 @@ class KotlinSetupEnvironmentNotificationProvider(private val myProject: Project)
} }
} }
createComponentActionLabel(KotlinJvmBundle.message("ignore")) { createComponentActionLabel(KotlinJvmBundle.message("action.text.ignore")) {
SuppressNotificationState.suppressKotlinNotConfigured(module) SuppressNotificationState.suppressKotlinNotConfigured(module)
EditorNotifications.getInstance(module.project).updateAllNotifications() EditorNotifications.getInstance(module.project).updateAllNotifications()
} }
@@ -123,7 +123,7 @@ class KotlinSetupEnvironmentNotificationProvider(private val myProject: Project)
fun createConfiguratorsPopup(project: Project, configurators: List<KotlinProjectConfigurator>): ListPopup { fun createConfiguratorsPopup(project: Project, configurators: List<KotlinProjectConfigurator>): ListPopup {
val step = object : BaseListPopupStep<KotlinProjectConfigurator>( val step = object : BaseListPopupStep<KotlinProjectConfigurator>(
KotlinJvmBundle.message("choose.configurator"), KotlinJvmBundle.message("title.choose.configurator"),
configurators configurators
) { ) {
override fun getTextFor(value: KotlinProjectConfigurator?) = value?.presentableText ?: "<none>" override fun getTextFor(value: KotlinProjectConfigurator?) = value?.presentableText ?: "<none>"
@@ -464,7 +464,7 @@ abstract class KotlinWithLibraryConfigurator protected constructor() : KotlinPro
} }
companion object { companion object {
val DEFAULT_LIBRARY_DIR = "lib" const val DEFAULT_LIBRARY_DIR = "lib"
fun getPathFromLibrary(library: Library?, type: OrderRootType): String? { fun getPathFromLibrary(library: Library?, type: OrderRootType): String? {
if (library == null) return null if (library == null) return null
@@ -28,7 +28,8 @@ class ConfigureKotlinNotification(
excludeModules: List<Module>, excludeModules: List<Module>,
val notificationState: ConfigureKotlinNotificationState val notificationState: ConfigureKotlinNotificationState
) : Notification( ) : Notification(
KotlinConfigurationCheckerService.CONFIGURE_NOTIFICATION_GROUP_ID, KotlinJvmBundle.message("configure.kotlin"), KotlinConfigurationCheckerService.CONFIGURE_NOTIFICATION_GROUP_ID,
KotlinJvmBundle.message("configure.kotlin"),
notificationState.notificationString, notificationState.notificationString,
NotificationType.WARNING, NotificationType.WARNING,
NotificationListener { notification, event -> NotificationListener { notification, event ->
@@ -63,7 +64,10 @@ class ConfigureKotlinNotification(
val isOnlyOneModule = configurableModules.size == 1 val isOnlyOneModule = configurableModules.size == 1
val modulesString = if (isOnlyOneModule) "'${configurableModules.first().baseModule.name}' module" else "modules" val modulesString = if (isOnlyOneModule)
KotlinJvmBundle.message("configure.0.module", configurableModules.first().baseModule.name)
else
KotlinJvmBundle.message("configure.modules")
val links = ableToRunConfigurators.joinToString(separator = "<br/>") { configurator -> val links = ableToRunConfigurators.joinToString(separator = "<br/>") { configurator ->
getLink(configurator, isOnlyOneModule) getLink(configurator, isOnlyOneModule)
} }
@@ -76,6 +80,10 @@ class ConfigureKotlinNotification(
} }
private fun getLink(configurator: KotlinProjectConfigurator, isOnlyOneModule: Boolean): String = private fun getLink(configurator: KotlinProjectConfigurator, isOnlyOneModule: Boolean): String =
"<a href=\"${configurator.name}\">as Kotlin (${configurator.presentableText}) module${if (!isOnlyOneModule) "s" else ""}</a>" "<a href=\"${configurator.name}\">${KotlinJvmBundle.message(
"as.kotlin.1.module",
configurator.presentableText,
1.takeIf { isOnlyOneModule } ?: 2
)}</a>"
} }
} }
@@ -55,7 +55,7 @@ fun notifyKotlinStyleUpdateIfNeeded(project: Project) {
private class KotlinCodeStyleChangedNotification(val project: Project, isProjectSettings: Boolean) : Notification( private class KotlinCodeStyleChangedNotification(val project: Project, isProjectSettings: Boolean) : Notification(
KOTLIN_UPDATE_CODE_STYLE_GROUP_ID, KOTLIN_UPDATE_CODE_STYLE_GROUP_ID,
"Kotlin Code Style", KotlinJvmBundle.message("kotlin.code.style"),
"<html>${KotlinJvmBundle.message("default.code.style.was.updated.to.kotlin.coding.conventions")}</html>", "<html>${KotlinJvmBundle.message("default.code.style.was.updated.to.kotlin.coding.conventions")}</html>",
NotificationType.WARNING, NotificationType.WARNING,
null null
@@ -14,8 +14,8 @@ class CommonStandardLibraryDescription(project: Project?) : CustomLibraryDescrip
project, "common", LIBRARY_NAME, DIALOG_TITLE, LIBRARY_CAPTION, KOTLIN_COMMON_STDLIB_KIND, SUITABLE_LIBRARY_KINDS project, "common", LIBRARY_NAME, DIALOG_TITLE, LIBRARY_CAPTION, KOTLIN_COMMON_STDLIB_KIND, SUITABLE_LIBRARY_KINDS
) { ) {
companion object { companion object {
val KOTLIN_COMMON_STDLIB_KIND = LibraryKind.create("kotlin-stdlib-common") val KOTLIN_COMMON_STDLIB_KIND: LibraryKind = LibraryKind.create("kotlin-stdlib-common")
val LIBRARY_NAME = "KotlinStdlibCommon" const val LIBRARY_NAME = "KotlinStdlibCommon"
val DIALOG_TITLE get() = KotlinJvmBundle.message("create.kotlin.common.standard.library") val DIALOG_TITLE get() = KotlinJvmBundle.message("create.kotlin.common.standard.library")
val LIBRARY_CAPTION get() = KotlinJvmBundle.message("kotlin.common.standard.library") val LIBRARY_CAPTION get() = KotlinJvmBundle.message("kotlin.common.standard.library")
@@ -222,6 +222,6 @@ abstract class CustomLibraryDescriptorWithDeferredConfig(
companion object { companion object {
private val DEFAULT_LIB_DIR_NAME = "lib" private const val DEFAULT_LIB_DIR_NAME = "lib"
} }
} }
@@ -30,7 +30,7 @@ class JSLibraryStdDescription(project: Project?) : CustomLibraryDescriptorWithDe
} }
companion object { companion object {
val LIBRARY_NAME = "KotlinJavaScript" const val LIBRARY_NAME = "KotlinJavaScript"
val JAVA_SCRIPT_LIBRARY_CREATION get() = KotlinJvmBundle.message("javascript.library.creation") val JAVA_SCRIPT_LIBRARY_CREATION get() = KotlinJvmBundle.message("javascript.library.creation")
val DIALOG_TITLE get() = KotlinJvmBundle.message("create.kotlin.javascript.library") val DIALOG_TITLE get() = KotlinJvmBundle.message("create.kotlin.javascript.library")
@@ -69,7 +69,7 @@ class JSLibraryType : LibraryType<DummyLibraryProperties>(JSLibraryKind) {
object JSRootFilter : FileTypeBasedRootFilter( object JSRootFilter : FileTypeBasedRootFilter(
OrderRootType.CLASSES, false, PlainTextFileType.INSTANCE, OrderRootType.CLASSES, false, PlainTextFileType.INSTANCE,
KotlinJvmBundle.message("js.files") KotlinJvmBundle.message("presentable.type.js.files")
) { ) {
override fun isFileAccepted(virtualFile: VirtualFile) = isAcceptedForJsLibrary(virtualFile.extension) override fun isFileAccepted(virtualFile: VirtualFile) = isAcceptedForJsLibrary(virtualFile.extension)
@@ -48,7 +48,7 @@ class JavaFrameworkSupportProvider : FrameworkSupportInModuleProvider() {
FrameworksCompatibilityUtils.suggestRemoveIncompatibleFramework( FrameworksCompatibilityUtils.suggestRemoveIncompatibleFramework(
rootModel, rootModel,
JSLibraryStdDescription.SUITABLE_LIBRARY_KINDS, JSLibraryStdDescription.SUITABLE_LIBRARY_KINDS,
KotlinJvmBundle.message("kotlin.js") KotlinJvmBundle.message("presentable.name.kotlin.js")
) )
description!!.finishLibConfiguration(module, rootModel, false) description!!.finishLibConfiguration(module, rootModel, false)
@@ -19,13 +19,14 @@ package org.jetbrains.kotlin.idea.framework
import com.intellij.framework.FrameworkTypeEx import com.intellij.framework.FrameworkTypeEx
import com.intellij.framework.addSupport.FrameworkSupportInModuleProvider import com.intellij.framework.addSupport.FrameworkSupportInModuleProvider
import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.idea.KotlinIcons
import org.jetbrains.kotlin.idea.KotlinJvmBundle
import javax.swing.Icon import javax.swing.Icon
class JavaFrameworkType : FrameworkTypeEx("kotlin-java-framework-id") { class JavaFrameworkType : FrameworkTypeEx("kotlin-java-framework-id") {
override fun createProvider(): FrameworkSupportInModuleProvider = JavaFrameworkSupportProvider() override fun createProvider(): FrameworkSupportInModuleProvider = JavaFrameworkSupportProvider()
override fun getPresentableName() = "Kotlin/JVM" override fun getPresentableName() = KotlinJvmBundle.message("presentable.name.kotlin.jvm")
override fun getIcon(): Icon = KotlinIcons.SMALL_LOGO override fun getIcon(): Icon = KotlinIcons.SMALL_LOGO
@@ -37,8 +37,8 @@ class JavaRuntimeLibraryDescription(project: Project?) : CustomLibraryDescriptor
} }
companion object { companion object {
val KOTLIN_JAVA_RUNTIME_KIND = LibraryKind.create("kotlin-java-runtime") val KOTLIN_JAVA_RUNTIME_KIND: LibraryKind = LibraryKind.create("kotlin-java-runtime")
val LIBRARY_NAME = "KotlinJavaRuntime" const val LIBRARY_NAME = "KotlinJavaRuntime"
val JAVA_RUNTIME_LIBRARY_CREATION get() = KotlinJvmBundle.message("java.runtime.library.creation") val JAVA_RUNTIME_LIBRARY_CREATION get() = KotlinJvmBundle.message("java.runtime.library.creation")
val DIALOG_TITLE get() = KotlinJvmBundle.message("create.kotlin.java.runtime.library") val DIALOG_TITLE get() = KotlinJvmBundle.message("create.kotlin.java.runtime.library")
@@ -12,6 +12,8 @@ import com.intellij.ide.util.projectWizard.WizardContext
import com.intellij.openapi.projectRoots.SdkTypeId import com.intellij.openapi.projectRoots.SdkTypeId
import com.intellij.openapi.roots.ModifiableRootModel import com.intellij.openapi.roots.ModifiableRootModel
import com.intellij.openapi.roots.ui.configuration.ModulesProvider import com.intellij.openapi.roots.ui.configuration.ModulesProvider
import org.jetbrains.annotations.Nls
import org.jetbrains.annotations.NonNls
import org.jetbrains.kotlin.idea.roots.migrateNonJvmSourceFolders import org.jetbrains.kotlin.idea.roots.migrateNonJvmSourceFolders
import org.jetbrains.kotlin.idea.statistics.NewProjectWizardsFUSCollector import org.jetbrains.kotlin.idea.statistics.NewProjectWizardsFUSCollector
import org.jetbrains.kotlin.platform.TargetPlatform import org.jetbrains.kotlin.platform.TargetPlatform
@@ -19,13 +21,17 @@ import org.jetbrains.kotlin.platform.jvm.isJvm
import javax.swing.Icon import javax.swing.Icon
class KotlinModuleBuilder( class KotlinModuleBuilder(
val targetPlatform: TargetPlatform, val builderName: String, val builderDescription: String, val icon: Icon val targetPlatform: TargetPlatform,
@NonNls private val builderName: String,
@Nls private val builderPresentableName: String,
@Nls private val builderDescription: String,
val icon: Icon
) : JavaModuleBuilder() { ) : JavaModuleBuilder() {
private var wizardContext: WizardContext? = null private var wizardContext: WizardContext? = null
override fun getBuilderId() = "kotlin.module.builder" override fun getBuilderId() = "kotlin.module.builder"
override fun getName() = builderName override fun getName() = builderName
override fun getPresentableName() = builderName override fun getPresentableName() = builderPresentableName
override fun getDescription() = builderDescription override fun getDescription() = builderDescription
override fun getNodeIcon() = icon override fun getNodeIcon() = icon
override fun getGroupName() = KotlinTemplatesFactory.KOTLIN_GROUP_NAME override fun getGroupName() = KotlinTemplatesFactory.KOTLIN_GROUP_NAME
@@ -21,8 +21,8 @@ class KotlinTemplatesFactory : ProjectTemplatesFactory() {
companion object { companion object {
val EP_NAME = ExtensionPointName.create<ModuleBuilder>("org.jetbrains.kotlin.moduleBuilder") val EP_NAME = ExtensionPointName.create<ModuleBuilder>("org.jetbrains.kotlin.moduleBuilder")
val KOTLIN_GROUP_NAME: String = "Kotlin" const val KOTLIN_GROUP_NAME: String = "Kotlin"
val KOTLIN_PARENT_GROUP_NAME = "Kotlin Group" const val KOTLIN_PARENT_GROUP_NAME = "Kotlin Group"
} }
override fun getGroups() = arrayOf(KOTLIN_GROUP_NAME) override fun getGroups() = arrayOf(KOTLIN_GROUP_NAME)
@@ -36,6 +36,7 @@ class KotlinTemplatesFactory : ProjectTemplatesFactory() {
KotlinModuleBuilder( KotlinModuleBuilder(
JvmPlatforms.unspecifiedJvmPlatform, JvmPlatforms.unspecifiedJvmPlatform,
"JVM | IDEA", "JVM | IDEA",
KotlinJvmBundle.message("presentable.name.jvm.idea"),
KotlinJvmBundle.message("kotlin.project.with.a.jvm.target.based.on.the.intellij.idea.build.system"), KotlinJvmBundle.message("kotlin.project.with.a.jvm.target.based.on.the.intellij.idea.build.system"),
KotlinIcons.SMALL_LOGO KotlinIcons.SMALL_LOGO
) )
@@ -43,7 +44,9 @@ class KotlinTemplatesFactory : ProjectTemplatesFactory() {
BuilderBasedTemplate( BuilderBasedTemplate(
KotlinModuleBuilder( KotlinModuleBuilder(
JsPlatforms.defaultJsPlatform, "JS | IDEA", JsPlatforms.defaultJsPlatform,
"JS | IDEA",
KotlinJvmBundle.message("presentable.name.js.idea"),
KotlinJvmBundle.message("kotlin.project.with.a.javascript.target.based.on.the.intellij.idea.build.system"), KotlinJvmBundle.message("kotlin.project.with.a.javascript.target.based.on.the.intellij.idea.build.system"),
KotlinIcons.JS KotlinIcons.JS
) )
@@ -21,7 +21,7 @@
<borderPainted value="false"/> <borderPainted value="false"/>
<contentAreaFilled value="true"/> <contentAreaFilled value="true"/>
<hideActionText value="false"/> <hideActionText value="false"/>
<text resource-bundle="messages/KotlinJvmBundle" key="copy.to"/> <text resource-bundle="messages/KotlinJvmBundle" key="choose.library.copy.to"/>
</properties> </properties>
</component> </component>
<grid id="258c2" binding="copyPanelPlace" layout-manager="BorderLayout" hgap="0" vgap="0"> <grid id="258c2" binding="copyPanelPlace" layout-manager="BorderLayout" hgap="0" vgap="0">
@@ -16,11 +16,12 @@
package org.jetbrains.kotlin.idea.framework.ui; package org.jetbrains.kotlin.idea.framework.ui;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class CreateLibraryDialog extends CreateLibraryDialogBase { public class CreateLibraryDialog extends CreateLibraryDialogBase {
public CreateLibraryDialog(@NotNull String defaultPath, @NotNull String title, @NotNull String libraryCaption) { public CreateLibraryDialog(@NotNull String defaultPath, @Nls @NotNull String title, @Nls @NotNull String libraryCaption) {
super(null, defaultPath, title, libraryCaption); super(null, defaultPath, title, libraryCaption);
updateComponents(); updateComponents();
} }
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.framework.ui;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.DialogWrapper; import com.intellij.openapi.ui.DialogWrapper;
import com.intellij.ui.SeparatorWithText; import com.intellij.ui.SeparatorWithText;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.idea.versions.KotlinRuntimeLibraryUtilKt; import org.jetbrains.kotlin.idea.versions.KotlinRuntimeLibraryUtilKt;
@@ -40,8 +41,8 @@ public abstract class CreateLibraryDialogBase extends DialogWrapper {
public CreateLibraryDialogBase( public CreateLibraryDialogBase(
@Nullable Project project, @Nullable Project project,
@NotNull String defaultPath, @NotNull String defaultPath,
@NotNull String title, @Nls @NotNull String title,
@NotNull String libraryCaption @Nls @NotNull String libraryCaption
) { ) {
super(project); super(project);
@@ -74,7 +74,7 @@ class KotlinLanguageInjectionSupport : AbstractLanguageInjectionSupport() {
TemporaryPlacesRegistry.getInstance(project).removeHostWithUndo(project, psiElement) TemporaryPlacesRegistry.getInstance(project).removeHostWithUndo(project, psiElement)
project.executeWriteCommand(KotlinJvmBundle.message("remove.injection.in.code.instructions")) { project.executeWriteCommand(KotlinJvmBundle.message("command.action.remove.injection.in.code.instructions")) {
injectInstructions.forEach(PsiElement::delete) injectInstructions.forEach(PsiElement::delete)
} }
@@ -172,7 +172,7 @@ private fun addInjectionInstructionInCode(language: Language, host: PsiLanguageI
val modifierListOwner = findElementToInjectWithAnnotation(ktHost) val modifierListOwner = findElementToInjectWithAnnotation(ktHost)
if (modifierListOwner != null && canInjectWithAnnotation(ktHost)) { if (modifierListOwner != null && canInjectWithAnnotation(ktHost)) {
project.executeWriteCommand(KotlinJvmBundle.message("add.injection.annotation")) { project.executeWriteCommand(KotlinJvmBundle.message("command.action.add.injection.annotation")) {
modifierListOwner.addAnnotation(FqName(AnnotationUtil.LANGUAGE), "\"${language.id}\"") modifierListOwner.addAnnotation(FqName(AnnotationUtil.LANGUAGE), "\"${language.id}\"")
} }
@@ -186,7 +186,7 @@ private fun addInjectionInstructionInCode(language: Language, host: PsiLanguageI
val psiFactory = KtPsiFactory(project) val psiFactory = KtPsiFactory(project)
val injectComment = psiFactory.createComment("//language=" + language.id) val injectComment = psiFactory.createComment("//language=" + language.id)
project.executeWriteCommand(KotlinJvmBundle.message("add.injection.comment")) { project.executeWriteCommand(KotlinJvmBundle.message("command.action.add.injection.comment")) {
commentBeforeAnchor.parent.addBefore(injectComment, commentBeforeAnchor) commentBeforeAnchor.parent.addBefore(injectComment, commentBeforeAnchor)
} }
@@ -1,17 +1,6 @@
/* /*
* Copyright 2010-2016 JetBrains s.r.o. * 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.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/ */
package org.jetbrains.kotlin.idea.injection package org.jetbrains.kotlin.idea.injection
@@ -85,7 +74,7 @@ class KotlinLanguageInjectionSupport : AbstractLanguageInjectionSupport() {
TemporaryPlacesRegistry.getInstance(project).removeHostWithUndo(project, psiElement) TemporaryPlacesRegistry.getInstance(project).removeHostWithUndo(project, psiElement)
project.executeWriteCommand(KotlinJvmBundle.message("remove.injection.in.code.instructions")) { project.executeWriteCommand(KotlinJvmBundle.message("command.action.remove.injection.in.code.instructions")) {
injectInstructions.forEach(PsiElement::delete) injectInstructions.forEach(PsiElement::delete)
} }
@@ -184,7 +173,7 @@ private fun addInjectionInstructionInCode(language: Language, host: PsiLanguageI
val modifierListOwner = findElementToInjectWithAnnotation(ktHost) val modifierListOwner = findElementToInjectWithAnnotation(ktHost)
if (modifierListOwner != null && canInjectWithAnnotation(ktHost)) { if (modifierListOwner != null && canInjectWithAnnotation(ktHost)) {
project.executeWriteCommand(KotlinJvmBundle.message("add.injection.annotation")) { project.executeWriteCommand(KotlinJvmBundle.message("command.action.add.injection.annotation")) {
modifierListOwner.addAnnotation(FqName(AnnotationUtil.LANGUAGE), "\"${language.id}\"") modifierListOwner.addAnnotation(FqName(AnnotationUtil.LANGUAGE), "\"${language.id}\"")
} }
@@ -200,7 +189,7 @@ private fun addInjectionInstructionInCode(language: Language, host: PsiLanguageI
val psiFactory = KtPsiFactory(project) val psiFactory = KtPsiFactory(project)
val injectComment = psiFactory.createComment("//language=" + language.id) val injectComment = psiFactory.createComment("//language=" + language.id)
project.executeWriteCommand(KotlinJvmBundle.message("add.injection.comment")) { project.executeWriteCommand(KotlinJvmBundle.message("command.action.add.injection.comment")) {
commentBeforeAnchor.parent.addBefore(injectComment, commentBeforeAnchor) commentBeforeAnchor.parent.addBefore(injectComment, commentBeforeAnchor)
} }
@@ -24,7 +24,7 @@
</constraints> </constraints>
<properties> <properties>
<labelFor value="49f89"/> <labelFor value="49f89"/>
<text resource-bundle="messages/KotlinJvmBundle" key="reference"/> <text resource-bundle="messages/KotlinJvmBundle" key="api.dialog.reference"/>
</properties> </properties>
</component> </component>
<vspacer id="eac19"> <vspacer id="eac19">
@@ -44,7 +44,7 @@
</constraints> </constraints>
<properties> <properties>
<labelFor value="ec77c"/> <labelFor value="ec77c"/>
<text resource-bundle="messages/KotlinJvmBundle" key="reason"/> <text resource-bundle="messages/KotlinJvmBundle" key="api.dialog.reason"/>
</properties> </properties>
</component> </component>
<component id="ec77c" class="javax.swing.JTextField" binding="reasonTextField"> <component id="ec77c" class="javax.swing.JTextField" binding="reasonTextField">
@@ -64,7 +64,7 @@ class IncompatibleAPIInspection : LocalInspectionTool() {
companion object { companion object {
const val SHORT_NAME = "IncompatibleAPI" const val SHORT_NAME = "IncompatibleAPI"
val DEFAULT_REASON get() = KotlinJvmBundle.message("incompatible.api") val DEFAULT_REASON get() = KotlinJvmBundle.message("reason.incompatible.api")
} }
} }
@@ -181,7 +181,7 @@ class KotlinBytecodeToolWindow(private val myProject: Project, private val toolW
val optionPanel = JPanel(FlowLayout()) val optionPanel = JPanel(FlowLayout())
add(optionPanel, BorderLayout.NORTH) add(optionPanel, BorderLayout.NORTH)
decompile = JButton(KotlinJvmBundle.message("decompile")) decompile = JButton(KotlinJvmBundle.message("button.text.decompile"))
if (KotlinDecompilerService.getInstance() != null) { if (KotlinDecompilerService.getInstance() != null) {
optionPanel.add(decompile) optionPanel.add(decompile)
decompile.addActionListener { decompile.addActionListener {
@@ -204,11 +204,11 @@ class KotlinBytecodeToolWindow(private val myProject: Project, private val toolW
} }
/*TODO: try to extract default parameter from compiler options*/ /*TODO: try to extract default parameter from compiler options*/
enableInline = JCheckBox(KotlinJvmBundle.message("inline"), true) enableInline = JCheckBox(KotlinJvmBundle.message("checkbox.text.inline"), true)
enableOptimization = JCheckBox(KotlinJvmBundle.message("optimization"), true) enableOptimization = JCheckBox(KotlinJvmBundle.message("checkbox.text.optimization"), true)
enableAssertions = JCheckBox(KotlinJvmBundle.message("assertions"), true) enableAssertions = JCheckBox(KotlinJvmBundle.message("checkbox.text.assertions"), true)
jvm8Target = JCheckBox(KotlinJvmBundle.message("jvm.8.target"), false) jvm8Target = JCheckBox(KotlinJvmBundle.message("checkbox.text.jvm.8.target"), false)
ir = JCheckBox(KotlinJvmBundle.message("ir"), false) ir = JCheckBox(KotlinJvmBundle.message("checkbox.text.ir"), false)
optionPanel.add(enableInline) optionPanel.add(enableInline)
optionPanel.add(enableOptimization) optionPanel.add(enableOptimization)
optionPanel.add(enableAssertions) optionPanel.add(enableAssertions)
@@ -48,7 +48,8 @@ class CreateIncrementalCompilationBackup : AnAction(KotlinJvmBundle.message("cre
ProgressManager.getInstance().run( ProgressManager.getInstance().run(
object : Task.Backgroundable( object : Task.Backgroundable(
project, project,
KotlinJvmBundle.message("creating.backup.for.debugging.kotlin.incremental.compilation"), true KotlinJvmBundle.message("creating.backup.for.debugging.kotlin.incremental.compilation"),
true
) { ) {
override fun run(indicator: ProgressIndicator) { override fun run(indicator: ProgressIndicator) {
createPatches(backupDir, project, indicator) createPatches(backupDir, project, indicator)
@@ -1,17 +1,6 @@
/* /*
* Copyright 2010-2015 JetBrains s.r.o. * 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.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/ */
package org.jetbrains.kotlin.idea.internal.makeBackup package org.jetbrains.kotlin.idea.internal.makeBackup
@@ -59,7 +48,8 @@ class CreateIncrementalCompilationBackup : AnAction(KotlinJvmBundle.message("cre
ProgressManager.getInstance().run( ProgressManager.getInstance().run(
object : Task.Backgroundable( object : Task.Backgroundable(
project, project,
KotlinJvmBundle.message("creating.backup.for.debugging.kotlin.incremental.compilation"), true KotlinJvmBundle.message("creating.backup.for.debugging.kotlin.incremental.compilation"),
true
) { ) {
override fun run(indicator: ProgressIndicator) { override fun run(indicator: ProgressIndicator) {
createPatches(backupDir, project, indicator) createPatches(backupDir, project, indicator)
@@ -13,6 +13,7 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.idea.KotlinJvmBundle
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgumentsHolder
import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator
import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
@@ -24,7 +25,7 @@ sealed class ChangeCoroutineSupportFix(
) : AbstractChangeFeatureSupportLevelFix(element, LanguageFeature.Coroutines, coroutineSupport, shortFeatureName) { ) : AbstractChangeFeatureSupportLevelFix(element, LanguageFeature.Coroutines, coroutineSupport, shortFeatureName) {
class InModule(element: PsiElement, coroutineSupport: LanguageFeature.State) : ChangeCoroutineSupportFix(element, coroutineSupport) { class InModule(element: PsiElement, coroutineSupport: LanguageFeature.State) : ChangeCoroutineSupportFix(element, coroutineSupport) {
override fun getText() = "${super.getText()} in the current module" override fun getText() = KotlinJvmBundle.message("fix.0.in.current.module", super.getText())
override fun invoke(project: Project, editor: Editor?, file: KtFile) { override fun invoke(project: Project, editor: Editor?, file: KtFile) {
val module = ModuleUtilCore.findModuleForPsiElement(file) ?: return val module = ModuleUtilCore.findModuleForPsiElement(file) ?: return
@@ -34,7 +35,7 @@ sealed class ChangeCoroutineSupportFix(
} }
class InProject(element: PsiElement, coroutineSupport: LanguageFeature.State) : ChangeCoroutineSupportFix(element, coroutineSupport) { class InProject(element: PsiElement, coroutineSupport: LanguageFeature.State) : ChangeCoroutineSupportFix(element, coroutineSupport) {
override fun getText() = "${super.getText()} in the project" override fun getText() = KotlinJvmBundle.message("fix.0.in.the.project", super.getText())
override fun invoke(project: Project, editor: Editor?, file: KtFile) { override fun invoke(project: Project, editor: Editor?, file: KtFile) {
if (featureSupportEnabled) { if (featureSupportEnabled) {
@@ -54,7 +55,7 @@ sealed class ChangeCoroutineSupportFix(
} }
companion object : FeatureSupportIntentionActionsFactory() { companion object : FeatureSupportIntentionActionsFactory() {
private const val shortFeatureName = "coroutine" private val shortFeatureName get() = KotlinJvmBundle.message("short.feature.name.coroutine")
fun getFixText(state: LanguageFeature.State) = getFixText(state, shortFeatureName) fun getFixText(state: LanguageFeature.State) = getFixText(state, shortFeatureName)
@@ -14,12 +14,10 @@ import com.intellij.psi.PsiElement
import org.jetbrains.kotlin.cli.common.arguments.CliArgumentStringBuilder.replaceLanguageFeature import org.jetbrains.kotlin.cli.common.arguments.CliArgumentStringBuilder.replaceLanguageFeature
import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.diagnostics.Diagnostic import org.jetbrains.kotlin.diagnostics.Diagnostic
import org.jetbrains.kotlin.idea.KotlinJvmBundle
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings
import org.jetbrains.kotlin.idea.configuration.BuildSystemType
import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator import org.jetbrains.kotlin.idea.configuration.findApplicableConfigurator
import org.jetbrains.kotlin.idea.configuration.getBuildSystemType
import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware
import org.jetbrains.kotlin.idea.facet.KotlinFacet
import org.jetbrains.kotlin.idea.facet.getCleanRuntimeLibraryVersion import org.jetbrains.kotlin.idea.facet.getCleanRuntimeLibraryVersion
import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots import org.jetbrains.kotlin.idea.roots.invalidateProjectRoots
import org.jetbrains.kotlin.idea.util.module import org.jetbrains.kotlin.idea.util.module
@@ -36,7 +34,7 @@ sealed class ChangeGeneralLanguageFeatureSupportFix(
feature: LanguageFeature, feature: LanguageFeature,
featureSupport: LanguageFeature.State featureSupport: LanguageFeature.State
) : ChangeGeneralLanguageFeatureSupportFix(element, feature, featureSupport) { ) : ChangeGeneralLanguageFeatureSupportFix(element, feature, featureSupport) {
override fun getText() = "${super.getText()} in the current module" override fun getText() = KotlinJvmBundle.message("fix.0.in.current.module", super.getText())
override fun invoke(project: Project, editor: Editor?, file: KtFile) { override fun invoke(project: Project, editor: Editor?, file: KtFile) {
val module = ModuleUtilCore.findModuleForPsiElement(file) ?: return val module = ModuleUtilCore.findModuleForPsiElement(file) ?: return
@@ -51,7 +49,7 @@ sealed class ChangeGeneralLanguageFeatureSupportFix(
feature: LanguageFeature, feature: LanguageFeature,
featureSupport: LanguageFeature.State featureSupport: LanguageFeature.State
) : ChangeGeneralLanguageFeatureSupportFix(element, feature, featureSupport) { ) : ChangeGeneralLanguageFeatureSupportFix(element, feature, featureSupport) {
override fun getText() = "${super.getText()} in the project" override fun getText() = KotlinJvmBundle.message("fix.0.in.the.project", super.getText())
override fun invoke(project: Project, editor: Editor?, file: KtFile) { override fun invoke(project: Project, editor: Editor?, file: KtFile) {
if (featureSupportEnabled) { if (featureSupportEnabled) {
@@ -36,17 +36,24 @@ import org.jetbrains.kotlin.psi.KtFile
sealed class EnableUnsupportedFeatureFix( sealed class EnableUnsupportedFeatureFix(
element: PsiElement, element: PsiElement,
protected val feature: LanguageFeature, protected val feature: LanguageFeature,
protected val apiVersionOnly: Boolean protected val apiVersionOnly: Boolean,
protected val isModule: Boolean,
) : KotlinQuickFixAction<PsiElement>(element) { ) : KotlinQuickFixAction<PsiElement>(element) {
override fun getFamilyName() = KotlinJvmBundle.message(
"enable.feature.family",
0.takeIf { isModule } ?: 1,
0.takeIf { apiVersionOnly } ?: 1
)
override fun getText() = KotlinJvmBundle.message(
"enable.feature.text",
0.takeIf { isModule } ?: 1,
0.takeIf { apiVersionOnly } ?: 1,
if (apiVersionOnly) feature.sinceApiVersion.versionString else feature.sinceVersion?.versionString.toString()
)
class InModule(element: PsiElement, feature: LanguageFeature, apiVersionOnly: Boolean) : class InModule(element: PsiElement, feature: LanguageFeature, apiVersionOnly: Boolean) :
EnableUnsupportedFeatureFix(element, feature, apiVersionOnly) { EnableUnsupportedFeatureFix(element, feature, apiVersionOnly, isModule = true) {
override fun getFamilyName() = "Increase module " + if (apiVersionOnly) "API version" else "language version"
override fun getText() = if (apiVersionOnly)
"Set module API version to ${feature.sinceApiVersion.versionString}"
else
"Set module language version to ${feature.sinceVersion!!.description}"
override fun invoke(project: Project, editor: Editor?, file: KtFile) { override fun invoke(project: Project, editor: Editor?, file: KtFile) {
val module = ModuleUtilCore.findModuleForPsiElement(file) ?: return val module = ModuleUtilCore.findModuleForPsiElement(file) ?: return
@@ -70,14 +77,7 @@ sealed class EnableUnsupportedFeatureFix(
} }
class InProject(element: PsiElement, feature: LanguageFeature, apiVersionOnly: Boolean) : class InProject(element: PsiElement, feature: LanguageFeature, apiVersionOnly: Boolean) :
EnableUnsupportedFeatureFix(element, feature, apiVersionOnly) { EnableUnsupportedFeatureFix(element, feature, apiVersionOnly, isModule = false) {
override fun getFamilyName() = "Increase project " + if (apiVersionOnly) "API version" else "language version"
override fun getText() = if (apiVersionOnly)
"Set project API version to ${feature.sinceApiVersion.versionString}"
else
"Set project language version to ${feature.sinceVersion!!.versionString}"
override fun invoke(project: Project, editor: Editor?, file: KtFile) { override fun invoke(project: Project, editor: Editor?, file: KtFile) {
val targetVersion = feature.sinceVersion!! val targetVersion = feature.sinceVersion!!
@@ -24,7 +24,7 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.NotNullLazyValue; import com.intellij.openapi.util.NotNullLazyValue;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.idea.KotlinIcons; import org.jetbrains.kotlin.idea.KotlinIcons;
import org.jetbrains.kotlin.idea.KotlinLanguage; import org.jetbrains.kotlin.idea.KotlinJvmBundle;
public class KotlinRunConfigurationType extends SimpleConfigurationType { public class KotlinRunConfigurationType extends SimpleConfigurationType {
public static KotlinRunConfigurationType getInstance() { public static KotlinRunConfigurationType getInstance() {
@@ -33,8 +33,8 @@ public class KotlinRunConfigurationType extends SimpleConfigurationType {
public KotlinRunConfigurationType() { public KotlinRunConfigurationType() {
super("JetRunConfigurationType", super("JetRunConfigurationType",
KotlinLanguage.NAME, KotlinJvmBundle.message("language.name.kotlin"),
KotlinLanguage.NAME, KotlinJvmBundle.message("language.name.kotlin"),
NotNullLazyValue.createValue(() -> KotlinIcons.SMALL_LOGO)); NotNullLazyValue.createValue(() -> KotlinIcons.SMALL_LOGO));
} }
@@ -31,7 +31,7 @@
</constraints> </constraints>
<properties> <properties>
<labelLocation value="West"/> <labelLocation value="West"/>
<text resource-bundle="messages/KotlinJvmBundle" key="script.file"/> <text resource-bundle="messages/KotlinJvmBundle" key="configuration.title.script.file"/>
</properties> </properties>
</component> </component>
</children> </children>
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.idea.KotlinJvmBundle
class KotlinStandaloneScriptRunConfigurationType : SimpleConfigurationType( class KotlinStandaloneScriptRunConfigurationType : SimpleConfigurationType(
"KotlinStandaloneScriptRunConfigurationType", "KotlinStandaloneScriptRunConfigurationType",
KotlinJvmBundle.message("kotlin.script"), KotlinJvmBundle.message("name.kotlin.script"),
KotlinJvmBundle.message("run.kotlin.script"), KotlinJvmBundle.message("run.kotlin.script"),
NotNullLazyValue.createValue { KotlinIcons.SMALL_LOGO } NotNullLazyValue.createValue { KotlinIcons.SMALL_LOGO }
) { ) {
@@ -93,7 +93,7 @@ class KtScratchReplExecutor(file: ScratchFile) : SequentialScratchExecutor(file)
} }
private fun sendCommandToProcess(command: String) { private fun sendCommandToProcess(command: String) {
LOG.printDebugMessage("Send to REPL: ${command}") LOG.printDebugMessage("Send to REPL: $command")
val processInputOS = osProcessHandler?.processInput ?: return logError(this::class.java, "<p>Broken execute stream</p>") val processInputOS = osProcessHandler?.processInput ?: return logError(this::class.java, "<p>Broken execute stream</p>")
val charset = osProcessHandler?.charset ?: Charsets.UTF_8 val charset = osProcessHandler?.charset ?: Charsets.UTF_8
@@ -203,16 +203,15 @@ class KtScratchReplExecutor(file: ScratchFile) : SequentialScratchExecutor(file)
} }
} }
private fun parseReplOutput(text: String, outputType: String): ScratchOutput? { private fun parseReplOutput(text: String, outputType: String): ScratchOutput? = when (outputType) {
return when (outputType) { "USER_OUTPUT" -> ScratchOutput(text, ScratchOutputType.OUTPUT)
"USER_OUTPUT" -> ScratchOutput(text, ScratchOutputType.OUTPUT) "REPL_RESULT" -> ScratchOutput(text, ScratchOutputType.RESULT)
"REPL_RESULT" -> ScratchOutput(text, ScratchOutputType.RESULT) "REPL_INCOMPLETE",
"REPL_INCOMPLETE", "INTERNAL_ERROR",
"INTERNAL_ERROR", "COMPILE_ERROR",
"COMPILE_ERROR", "RUNTIME_ERROR",
"RUNTIME_ERROR" -> ScratchOutput(text, ScratchOutputType.ERROR) -> ScratchOutput(text, ScratchOutputType.ERROR)
else -> null else -> null
}
} }
} }
} }
@@ -106,9 +106,11 @@ class BunchFileCheckInHandlerFactory : CheckinHandlerFactory() {
"several.bunch.files.haven.t.been.updated.0.do.you.want.to.review.them.before.commit", "several.bunch.files.haven.t.been.updated.0.do.you.want.to.review.them.before.commit",
filePaths.joinToString("\n") filePaths.joinToString("\n")
), ),
KotlinJvmBundle.message("forgotten.bunch.files"), KotlinJvmBundle.message("button.text.forgotten.bunch.files"),
KotlinJvmBundle.message("review"), KotlinJvmBundle.message("button.text.review"),
KotlinJvmBundle.message("commit"), CommonBundle.getCancelButtonText(), Messages.getWarningIcon() KotlinJvmBundle.message("button.text.commit"),
CommonBundle.getCancelButtonText(),
Messages.getWarningIcon()
)) { )) {
YES -> { YES -> {
return ReturnResult.CLOSE_WINDOW return ReturnResult.CLOSE_WINDOW
@@ -132,7 +134,7 @@ object BunchFileUtils {
val file = File(bunchFile.path) val file = File(bunchFile.path)
if (!file.exists()) return null if (!file.exists()) return null
val lines = file.readLines().map { it.trim() }.filter { !it.isEmpty() } val lines = file.readLines().map { it.trim() }.filter { it.isNotEmpty() }
if (lines.size <= 1) return null if (lines.size <= 1) return null
return lines.drop(1).map { it.split('_').first() } return lines.drop(1).map { it.split('_').first() }
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. * 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. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -103,9 +103,11 @@ class BunchFileCheckInHandlerFactory : CheckinHandlerFactory() {
"several.bunch.files.haven.t.been.updated.0.do.you.want.to.review.them.before.commit", "several.bunch.files.haven.t.been.updated.0.do.you.want.to.review.them.before.commit",
filePaths.joinToString("\n") filePaths.joinToString("\n")
), ),
KotlinJvmBundle.message("forgotten.bunch.files"), KotlinJvmBundle.message("button.text.forgotten.bunch.files"),
KotlinJvmBundle.message("review"), KotlinJvmBundle.message("button.text.review"),
KotlinJvmBundle.message("commit"), CommonBundle.getCancelButtonText(), Messages.getWarningIcon() KotlinJvmBundle.message("button.text.commit"),
CommonBundle.getCancelButtonText(),
Messages.getWarningIcon()
)) { )) {
YES -> { YES -> {
return ReturnResult.CLOSE_WINDOW return ReturnResult.CLOSE_WINDOW
@@ -129,7 +131,7 @@ object BunchFileUtils {
val file = File(bunchFile.path) val file = File(bunchFile.path)
if (!file.exists()) return null if (!file.exists()) return null
val lines = file.readLines().map { it.trim() }.filter { !it.isEmpty() } val lines = file.readLines().map { it.trim() }.filter { it.isNotEmpty() }
if (lines.size <= 1) return null if (lines.size <= 1) return null
return lines.drop(1).map { it.split('_').first() } return lines.drop(1).map { it.split('_').first() }
@@ -79,9 +79,9 @@ class UnsupportedAbiVersionNotificationPanelProvider(private val project: Projec
val isPluginNewForAllRuntimeLibraries = badRootsInRuntimeLibraries.all { it.supportedVersion > it.version } val isPluginNewForAllRuntimeLibraries = badRootsInRuntimeLibraries.all { it.supportedVersion > it.version }
val updateAction = when { val updateAction = when {
isPluginNewForAllRuntimeLibraries -> KotlinJvmBundle.message("update") isPluginNewForAllRuntimeLibraries -> KotlinJvmBundle.message("button.text.update.library")
isPluginOldForAllRuntimeLibraries -> KotlinJvmBundle.message("downgrade") isPluginOldForAllRuntimeLibraries -> KotlinJvmBundle.message("button.text.downgrade.library")
else -> KotlinJvmBundle.message("replace") else -> KotlinJvmBundle.message("button.text.replace.library")
} }
val actionLabelText = "$updateAction " + KotlinJvmBundle.message( val actionLabelText = "$updateAction " + KotlinJvmBundle.message(
@@ -124,7 +124,7 @@ class UnsupportedAbiVersionNotificationPanelProvider(private val project: Projec
} }
} }
answer.createActionLabel(KotlinJvmBundle.message("go.to.0", presentableName)) { answer.createActionLabel(KotlinJvmBundle.message("button.text.go.to.0", presentableName)) {
navigateToLibraryRoot( navigateToLibraryRoot(
project, project,
badVersionedRoot.file badVersionedRoot.file
@@ -149,7 +149,7 @@ class UnsupportedAbiVersionNotificationPanelProvider(private val project: Projec
} }
createShowPathsActionLabel(module, answer, KotlinJvmBundle.message("details")) createShowPathsActionLabel(module, answer, KotlinJvmBundle.message("button.text.details"))
return answer return answer
} }
@@ -178,7 +178,10 @@ class UnsupportedAbiVersionNotificationPanelProvider(private val project: Projec
} }
private fun createUpdatePluginLink(answer: ErrorNotificationPanel) { private fun createUpdatePluginLink(answer: ErrorNotificationPanel) {
answer.createProgressAction(KotlinJvmBundle.message("check"), KotlinJvmBundle.message("update.plugin")) { link, updateLink -> answer.createProgressAction(
KotlinJvmBundle.message("progress.action.text.check"),
KotlinJvmBundle.message("progress.action.text.update.plugin")
) { link, updateLink ->
KotlinPluginUpdater.getInstance().runCachedUpdate { pluginUpdateStatus -> KotlinPluginUpdater.getInstance().runCachedUpdate { pluginUpdateStatus ->
when (pluginUpdateStatus) { when (pluginUpdateStatus) {
is PluginUpdateStatus.Update -> { is PluginUpdateStatus.Update -> {