diff --git a/java/idea-ui/resources/messages/JavaUiBundle.properties b/java/idea-ui/resources/messages/JavaUiBundle.properties
index a8b912ae5fc3..1204f717e3d0 100644
--- a/java/idea-ui/resources/messages/JavaUiBundle.properties
+++ b/java/idea-ui/resources/messages/JavaUiBundle.properties
@@ -704,8 +704,8 @@ is.used.in=' is used in
and.in=\ and in
in=, in
-action.PromoSpring.text=Change Active Spring Profiles...
-action.PromoOpenAPI.text=Configure OpenAPI Sources...
+action.PromoSpring.text=Change Active Spring Profiles\u2026
+action.PromoOpenAPI.text=Configure OpenAPI Sources\u2026
action.PromoBeans.text=Beans
action.PromoEndpoints.text=Endpoints
action.PromoDatabase.text=Database
@@ -714,14 +714,14 @@ action.PromoPersistence.text=Persistence
action.PromoProfiler.text=IntelliJ Profiler
feature.spring.wizard.description=Spring Boot integration is available in IntelliJ IDEA Ultimate
-feature.spring.description.html=Use a rich set of built-in developer tools and support for the Spring framework in both Java and Kotlin code, including Spring MVC, Spring Data, Spring Security, and Spring Cloud:
+feature.spring.description.html=Use a rich set of built-in developer tools and support for the Spring Framework in both Java and Kotlin code, including Spring MVC, Spring Data, Spring Security, and Spring Cloud, including:
feature.spring.run.config=Dedicated run configuration
-feature.spring.config.files=Rich configuration files support
-feature.spring.data=JPA and SQL code assistance
-feature.spring.navigation=Advanced navigation and visualization
+feature.spring.config.files=Extensive support for configuration files
+feature.spring.data=Intelligent JPA and SQL code assistance
+feature.spring.navigation=Advanced code navigation and visualization features
promo.configurable.profiler=Java Profiler
-feature.profiler.description.html=Improve performance of your applications with advanced profiling options for JVM:
+feature.profiler.description.html=Gain insights about your application\u2019s performance and enhance it with powerful JVM profiling capabilities, such as:
feature.profiler.cpu=CPU and memory allocation profiling
feature.profiler.memory=Memory snapshots
feature.profiler.hints=In-editor performance hints
\ No newline at end of file
diff --git a/java/idea-ui/src/com/intellij/ide/ultimatepromo/configurables.kt b/java/idea-ui/src/com/intellij/ide/ultimatepromo/configurables.kt
index 2641c2a255d0..ec81f2d20202 100644
--- a/java/idea-ui/src/com/intellij/ide/ultimatepromo/configurables.kt
+++ b/java/idea-ui/src/com/intellij/ide/ultimatepromo/configurables.kt
@@ -48,14 +48,11 @@ internal class PromoSwaggerConfigurableProvider : UltimateConfigurableProvider(P
internal class PromoDatabaseConfigurable : UltimatePromoConfigurable() {
override fun getId(): String = "promo.database"
-
- override fun getDisplayName(): String {
- return FeaturePromoBundle.message("promo.configurable.database")
- }
+ override fun getDisplayName(): String = FeaturePromoBundle.message("promo.configurable.database")
override fun createComponent(): JComponent {
return featurePage(
- FeaturePromoBundle.message("feature.database.description.html"),
+ FeaturePromoBundle.message("feature.database.description.html", "https://www.jetbrains.com/help/idea/relational-databases.html"),
listOf(
PromoFeatureListItem(AllIcons.Nodes.DataTables, FeaturePromoBundle.message("feature.database.create.and.manage")),
PromoFeatureListItem(AllIcons.Actions.Run_anything, FeaturePromoBundle.message("feature.database.run")),
@@ -68,14 +65,11 @@ internal class PromoDatabaseConfigurable : UltimatePromoConfigurable() {
internal class PromoKubernetesConfigurable : UltimatePromoConfigurable() {
override fun getId(): String = "promo.kubernetes"
-
- override fun getDisplayName(): String {
- return FeaturePromoBundle.message("promo.configurable.kubernetes")
- }
+ override fun getDisplayName(): String = FeaturePromoBundle.message("promo.configurable.kubernetes")
override fun createComponent(): JComponent {
return featurePage(
- FeaturePromoBundle.message("feature.kubernetes.description.html"),
+ FeaturePromoBundle.message("feature.kubernetes.description.html", "https://www.jetbrains.com/help/idea/kubernetes.html"),
listOf(
PromoFeatureListItem(AllIcons.Nodes.Deploy, FeaturePromoBundle.message("feature.kubernetes.deploy")),
PromoFeatureListItem(AllIcons.Nodes.Console, FeaturePromoBundle.message("feature.kubernetes.logs")),
@@ -88,14 +82,11 @@ internal class PromoKubernetesConfigurable : UltimatePromoConfigurable() {
internal class PromoProfilerConfigurable : UltimatePromoConfigurable() {
override fun getId(): String = "promo.profiler"
-
- override fun getDisplayName(): String {
- return JavaUiBundle.message("promo.configurable.profiler")
- }
+ override fun getDisplayName(): String = JavaUiBundle.message("promo.configurable.profiler")
override fun createComponent(): JComponent {
return featurePage(
- JavaUiBundle.message("feature.profiler.description.html"),
+ JavaUiBundle.message("feature.profiler.description.html", "https://www.jetbrains.com/help/idea/profiler-intro.html"),
listOf(
PromoFeatureListItem(AllIcons.Actions.ProfileCPU, JavaUiBundle.message("feature.profiler.cpu")),
PromoFeatureListItem(AllIcons.Actions.ProfileMemory, JavaUiBundle.message("feature.profiler.memory")),
@@ -106,57 +97,39 @@ internal class PromoProfilerConfigurable : UltimatePromoConfigurable() {
}
}
+private fun javascriptFeaturePage(): JComponent {
+ @Suppress("DialogTitleCapitalization")
+ return featurePage(
+ FeaturePromoBundle.message("feature.javascript.description.html",
+ "https://www.jetbrains.com/help/idea/javascript-specific-guidelines.html"),
+ listOf(
+ PromoFeatureListItem(AllIcons.Actions.ReformatCode, FeaturePromoBundle.message("feature.javascript.code")),
+ PromoFeatureListItem(AllIcons.Actions.SuggestedRefactoringBulb, FeaturePromoBundle.message("feature.javascript.refactor")),
+ PromoFeatureListItem(AllIcons.FileTypes.UiForm, FeaturePromoBundle.message("feature.javascript.frameworks"))
+ ),
+ "JavaScript"
+ )
+}
+
internal class PromoJSConfigurable : UltimatePromoConfigurable() {
override fun getId(): String = "promo.javascript"
-
- override fun getDisplayName(): String {
- return FeaturePromoBundle.message("promo.configurable.javascript")
- }
-
- override fun createComponent(): JComponent {
- return featurePage(
- FeaturePromoBundle.message("feature.javascript.description.html"),
- listOf(
- PromoFeatureListItem(AllIcons.Actions.ReformatCode, FeaturePromoBundle.message("feature.javascript.code")),
- PromoFeatureListItem(AllIcons.Actions.SuggestedRefactoringBulb, FeaturePromoBundle.message("feature.javascript.refactor")),
- PromoFeatureListItem(AllIcons.FileTypes.UiForm, FeaturePromoBundle.message("feature.javascript.frameworks"))
- ),
- "JavaScript"
- )
- }
+ override fun getDisplayName(): String = FeaturePromoBundle.message("promo.configurable.javascript")
+ override fun createComponent(): JComponent = javascriptFeaturePage()
}
internal class PromoTSConfigurable : UltimatePromoConfigurable() {
override fun getId(): String = "promo.typescript"
-
- override fun getDisplayName(): String {
- return FeaturePromoBundle.message("promo.configurable.typescript")
- }
-
- override fun createComponent(): JComponent {
- @Suppress("DialogTitleCapitalization")
- return featurePage(
- FeaturePromoBundle.message("feature.javascript.description.html"),
- listOf(
- PromoFeatureListItem(AllIcons.Actions.ReformatCode, FeaturePromoBundle.message("feature.javascript.code")),
- PromoFeatureListItem(AllIcons.Actions.SuggestedRefactoringBulb, FeaturePromoBundle.message("feature.javascript.refactor")),
- PromoFeatureListItem(AllIcons.FileTypes.UiForm, FeaturePromoBundle.message("feature.javascript.frameworks"))
- ),
- "JavaScript"
- )
- }
+ override fun getDisplayName(): String = FeaturePromoBundle.message("promo.configurable.typescript")
+ override fun createComponent(): JComponent = javascriptFeaturePage()
}
internal class PromoSwaggerConfigurable : UltimatePromoConfigurable() {
override fun getId(): String = "promo.swagger"
-
- override fun getDisplayName(): String {
- return FeaturePromoBundle.message("promo.configurable.swagger")
- }
+ override fun getDisplayName(): String = FeaturePromoBundle.message("promo.configurable.swagger")
override fun createComponent(): JComponent {
return featurePage(
- FeaturePromoBundle.message("feature.swagger.description.html"),
+ FeaturePromoBundle.message("feature.swagger.description.html", "https://www.jetbrains.com/help/idea/openapi.html"),
listOf(
PromoFeatureListItem(AllIcons.Actions.ReformatCode, FeaturePromoBundle.message("feature.swagger.code")),
PromoFeatureListItem(AllIcons.FileTypes.UiForm, FeaturePromoBundle.message("feature.swagger.preview")),
diff --git a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java
index fa9cc57e41f8..7a2d49733d4e 100644
--- a/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java
+++ b/platform/lang-impl/src/com/intellij/ide/util/gotoByName/GotoActionModel.java
@@ -31,6 +31,7 @@ import com.intellij.openapi.options.SearchableConfigurable;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.DumbService;
import com.intellij.openapi.project.Project;
+import com.intellij.openapi.updateSettings.impl.pluginsAdvertisement.FeaturePromoBundle;
import com.intellij.openapi.util.*;
import com.intellij.openapi.util.NlsActions.ActionText;
import com.intellij.openapi.util.text.StringUtil;
@@ -946,7 +947,7 @@ public final class GotoActionModel implements ChooseByNameModel, Comparatorextensive database and SQL support includes dedicated Database tool window and lets you:
-feature.database.create.and.manage=Create and manage local and cloud databases
-feature.database.run=Run queries from files or in the query console
-feature.database.export=Export and import data
+feature.database.description.html=Benefit from robust database and SQL support, featuring a dedicated Database tool window that allows you to:
+feature.database.create.and.manage=Create and manage both local and cloud databases
+feature.database.run=Execute queries from files or via the query console
+feature.database.export=Effortlessly export and import data
-feature.kubernetes.description.html=IntelliJ IDEA Ultimate adds the following features for development of applications with Kubernetes:
-feature.kubernetes.deploy=Connect to Kubernetes clusters and deploy resources
-feature.kubernetes.logs=View and download logs
-feature.kubernetes.editor=Configure resources with Kustomize and Helm code assistance
+feature.kubernetes.description.html=Develop on Kubernetes easily with an advanced out-of-the box editor and runtime support including:
+feature.kubernetes.deploy=Seamless Kubernetes cluster connection and resource deployment
+feature.kubernetes.logs=Easy log access with a download option
+feature.kubernetes.editor=Simplified resource configuration with Kustomize and Helm code assistance
-feature.javascript.description.html=Use modern front-end technologies to build applications with JavaScript, TypeScript, and JSX-based frameworks such as React and Next.js.
-feature.javascript.code=Advanced code completion, snippets and live templates
+feature.javascript.description.html=Use modern frontend technologies to build applications with JavaScript, TypeScript, and JSX-based frameworks, such as React and Next.js. Elevate your development workflow with:
+feature.javascript.code=Advanced code completion and live templates
feature.javascript.refactor=Refactorings for JavaScript and TypeScript
-feature.javascript.frameworks=Powerful integration with Angular, React and Vue
+feature.javascript.frameworks=Seamless integration with Angular, React, and Vue
-feature.swagger.description.html=Use advanced features for microservices development with OpenAPI and Swagger:
+feature.swagger.description.html=Leverage advanced features for microservice development with OpenAPI and Swagger, including:
feature.swagger.code=Completion and validation by JSON Schema for specifications
-feature.swagger.preview=Integrated Swagger UI/Redoc previews in editor
-feature.swagger.httpclient=HTTP Client for API testing
\ No newline at end of file
+feature.swagger.preview=Integrated Swagger UI/Redoc preview right in the editor
+feature.swagger.httpclient=HTTP Client for streamlined API testing
\ No newline at end of file