[compilation-charts] create a plugin IDEA-368823

GitOrigin-RevId: 24a9f28108d235ea689830d91d3c30282f49ba21
This commit is contained in:
Aleksey Dobrynin
2025-04-02 23:39:08 +00:00
committed by intellij-monorepo-bot
parent 92e53f14a1
commit c38838b59d
54 changed files with 300 additions and 124 deletions
+2
View File
@@ -317,6 +317,8 @@
<module fileurl="file://$PROJECT_DIR$/commandInterface/intellij.commandInterface.iml" filepath="$PROJECT_DIR$/commandInterface/intellij.commandInterface.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/commander/intellij.commander.iml" filepath="$PROJECT_DIR$/plugins/commander/intellij.commander.iml" />
<module fileurl="file://$PROJECT_DIR$/wintools/intellij.community.wintools.iml" filepath="$PROJECT_DIR$/wintools/intellij.community.wintools.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/compilation-charts/intellij.compilation.charts.iml" filepath="$PROJECT_DIR$/plugins/compilation-charts/intellij.compilation.charts.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/compilation-charts/jps-plugin/intellij.compilation.charts.jps.iml" filepath="$PROJECT_DIR$/plugins/compilation-charts/jps-plugin/intellij.compilation.charts.jps.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/completion-ml-ranking/intellij.completionMlRanking.iml" filepath="$PROJECT_DIR$/plugins/completion-ml-ranking/intellij.completionMlRanking.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/completion-ml-ranking/intellij.completionMlRanking.tests.iml" filepath="$PROJECT_DIR$/plugins/completion-ml-ranking/intellij.completionMlRanking.tests.iml" />
<module fileurl="file://$PROJECT_DIR$/plugins/completion-ml-ranking-models/intellij.completionMlRankingModels.iml" filepath="$PROJECT_DIR$/plugins/completion-ml-ranking-models/intellij.completionMlRankingModels.iml" />
+2
View File
@@ -234,6 +234,8 @@ java_library(
"//plugins/search-everywhere-ml/ranking/yaml:searchEverywhereMl-ranking-yaml",
"//plugins/search-everywhere-ml/typos:searchEverywhereMl-typos",
"//plugins/grazie",
"//plugins/compilation-charts:compilation-charts",
"//plugins/compilation-charts/jps-plugin:compilation-charts-jps",
"//plugins/compose:compose-ide-plugin",
"//plugins/compose/intellij.compose.ide.plugin.k1:ide-plugin-k1",
"//plugins/compose/intellij.compose.ide.plugin.k2:ide-plugin-k2",
@@ -208,6 +208,9 @@ object CommunityRepositoryModules {
pluginAuto(listOf("intellij.performanceTesting.ui")),
githubPlugin("intellij.vcs.github.community", productCode = "IC"),
gitlabPlugin("intellij.vcs.gitlab.community", productCode = "IC"),
pluginAuto(listOf("intellij.compilation.charts")) { spec ->
spec.withModule("intellij.compilation.charts.jps")
},
)
val CONTRIB_REPOSITORY_PLUGINS: List<PluginLayout> = java.util.List.of(
+39
View File
@@ -0,0 +1,39 @@
### auto-generated section `build intellij.compilation.charts` start
load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources")
jvm_resources(
name = "compilation-charts_resources",
files = glob(["resources/**/*"]),
strip_prefix = "resources"
)
jvm_library(
name = "compilation-charts",
module_name = "intellij.compilation.charts",
visibility = ["//visibility:public"],
srcs = glob(["src/**/*.kt", "src/**/*.java"], allow_empty = True),
deps = [
"@community//java/compiler/impl:java-compiler-impl",
"@community//jps/jps-builders:build",
"@community//platform/extensions",
"@community//platform/ide-core-impl",
"@community//platform/core-api:core",
"@community//platform/lang-api:lang",
"@community//platform/lang-impl",
"@lib//:jackson",
"@lib//:jackson-databind",
"@lib//:jackson-module-kotlin",
"@lib//:rd-core",
"@lib//:rd-swing",
"@lib//:kotlinx-coroutines-core",
"@community//platform/rd-platform-community:rd-community",
"@lib//:kotlinx-collections-immutable",
"@community//platform/core-ui",
"@community//platform/platform-api:ide",
"@community//platform/util/concurrency",
"@community//java/idea-ui:ui",
"@community//platform/platform-impl:ide-impl",
],
runtime_deps = [":compilation-charts_resources"]
)
### auto-generated section `build intellij.compilation.charts` end
@@ -0,0 +1,24 @@
### auto-generated section `build intellij.compilation.charts.jps` start
load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources")
jvm_resources(
name = "compilation-charts-jps_resources",
files = glob(["resources/**/*"]),
strip_prefix = "resources"
)
jvm_library(
name = "compilation-charts-jps",
module_name = "intellij.compilation.charts.jps",
visibility = ["//visibility:public"],
srcs = glob(["src/**/*.kt", "src/**/*.java"], allow_empty = True),
kotlinc_opts = "@community//:k11",
deps = [
"@community//jps/jps-builders:build",
"@community//platform/util",
"@lib//:gson",
"@community//jps/model-api:model",
],
runtime_deps = [":compilation-charts-jps_resources"]
)
### auto-generated section `build intellij.compilation.charts.jps` end
@@ -1,2 +1,2 @@
# Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
com.intellij.java.compiler.charts.jps.ChartsBuilderService
com.intellij.compilation.charts.jps.ChartsBuilderService
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.jps;
package com.intellij.compilation.charts.jps;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.NlsSafe;
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.jps;
package com.intellij.compilation.charts.jps;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NonNls;
@@ -1,9 +1,9 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.jps;
package com.intellij.compilation.charts.jps;
import org.jetbrains.jps.incremental.messages.CustomBuilderMessage;
import static com.intellij.java.compiler.charts.jps.ChartsBuilderService.COMPILATION_STATUS_BUILDER_ID;
import static com.intellij.compilation.charts.jps.ChartsBuilderService.COMPILATION_STATUS_BUILDER_ID;
public class CompilationStatusBuilderMessage extends CustomBuilderMessage {
public CompilationStatusBuilderMessage(String messageType) {
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.jps;
package com.intellij.compilation.charts.jps;
import com.google.gson.Gson;
import com.intellij.util.containers.ContainerUtil;
@@ -17,7 +17,7 @@ import java.util.List;
import java.util.Set;
import java.util.function.Supplier;
import static com.intellij.java.compiler.charts.jps.ChartsBuilderService.COMPILATION_STATISTIC_BUILDER_ID;
import static com.intellij.compilation.charts.jps.ChartsBuilderService.COMPILATION_STATISTIC_BUILDER_ID;
public final class CompileStatisticBuilderMessage extends CustomBuilderMessage {
private static final Gson JSON = new Gson();
@@ -0,0 +1,6 @@
- name: lib/compilation-charts-jps.jar
modules:
- name: intellij.compilation.charts.jps
- name: lib/compilation-charts.jar
modules:
- name: intellij.compilation.charts
@@ -0,0 +1,56 @@
<idea-plugin package="com.intellij.compilation.charts">
<id>intellij.compilation.charts</id>
<name>Compilation Charts</name>
<vendor>JetBrains</vendor>
<category>Build Tools</category>
<description><![CDATA[
Provides compilation charts for profiling and analyzing compilation time.
The plugin visualizes build progress, CPU load, memory usage, and per-thread compilation details in real time within IntelliJ IDEA.
This helps to identify slow parts of the build and optimize the project structure accordingly.
]]></description>
<resource-bundle>messages.CompilationChartsBundle</resource-bundle>
<dependencies>
<plugin id="com.intellij.java"/>
</dependencies>
<extensions defaultExtensionNs="com.intellij">
<postStartupActivity implementation="com.intellij.compilation.charts.jps.CompilationChartsProjectActivity"/>
<compileServer.plugin classpath="jps/compilation-charts-jps.jar"/>
<buildProcess.parametersProvider implementation="com.intellij.compilation.charts.jps.CompilationChartsBuildParametersProvider"/>
<registryKey key="compilation.charts" defaultValue="false"
description="Show compilation charts" restartRequired="false"/>
<registryKey key="compilation.charts.mac.magnificationGesture" defaultValue="false"
description="Enable pinch-to-zoom gesture for magnifying compilation charts." restartRequired="false"/>
<applicationService serviceInterface="com.intellij.compilation.charts.CompilationChartsFactory"
serviceImplementation="com.intellij.compilation.charts.impl.CompilationChartsFactoryImpl"/>
</extensions>
<actions resource-bundle="messages.CompilationChartsBundle">
<action id="CompilationChartsZoomResetAction"
class="com.intellij.compilation.charts.ui.ActionPanel$ZoomResetAction"
icon="AllIcons.Graph.ActualZoom">
<keyboard-shortcut first-keystroke="shift meta EQUALS" keymap="Mac OS X"/>
<keyboard-shortcut first-keystroke="shift ctrl EQUALS" keymap="$default"/>
<override-text place="CompilationChartsToolbar"/>
</action>
<action id="CompilationChartsZoomOutAction"
class="com.intellij.compilation.charts.ui.ActionPanel$ZoomOutAction"
icon="AllIcons.Graph.ZoomOut" use-shortcut-of="CollapseAll">
<override-text place="CompilationChartsToolbar"/>
</action>
<action id="CompilationChartsZoomInAction"
class="com.intellij.compilation.charts.ui.ActionPanel$ZoomInAction"
icon="AllIcons.Graph.ZoomIn" use-shortcut-of="ExpandAll">
<override-text place="CompilationChartsToolbar"/>
</action>
<action id="CompilationChartsScrollToEndAction"
class="com.intellij.compilation.charts.ui.ActionPanel$ScrollToEndAction"
icon="AllIcons.Actions.Forward">
<override-text place="CompilationChartsToolbar"/>
</action>
</actions>
</idea-plugin>
@@ -0,0 +1,5 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="13.5" y="28.5" width="21" height="8" rx="2.5" fill="#EDF3FF" stroke="#3574F0" stroke-width="3"/>
<rect x="5.5" y="15.5" width="21" height="9" rx="2.5" fill="#F2FCF3" stroke="#208A3C" stroke-width="3"/>
<rect x="13.5" y="3.5" width="21" height="8" rx="2.5" fill="#EDF3FF" stroke="#3574F0" stroke-width="3"/>
</svg>

After

Width:  |  Height:  |  Size: 419 B

@@ -0,0 +1,5 @@
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="13.5" y="28.5" width="21" height="8" rx="2.5" fill="#25324D" stroke="#548AF7" stroke-width="3"/>
<rect x="5.5" y="15.5" width="21" height="9" rx="2.5" fill="#253627" stroke="#57965C" stroke-width="3"/>
<rect x="13.5" y="3.5" width="21" height="8" rx="2.5" fill="#25324D" stroke="#548AF7" stroke-width="3"/>
</svg>

After

Width:  |  Height:  |  Size: 419 B

@@ -1,34 +1,34 @@
<idea-plugin package="com.intellij.java.compiler.charts">
<idea-plugin package="com.intellij.compilation.charts">
<module value="intellij.java.compiler.charts" />
<extensions defaultExtensionNs="com.intellij">
<postStartupActivity implementation="com.intellij.java.compiler.charts.jps.CompilationChartsProjectActivity"/>
<compileServer.plugin classpath="jps/java-compiler-charts-jps.jar"/>
<buildProcess.parametersProvider implementation="com.intellij.java.compiler.charts.jps.CompilationChartsBuildParametersProvider"/>
<postStartupActivity implementation="com.intellij.compilation.charts.jps.CompilationChartsProjectActivity"/>
<compileServer.plugin classpath="jps/compilation-charts-jps.jar"/>
<buildProcess.parametersProvider implementation="com.intellij.compilation.charts.jps.CompilationChartsBuildParametersProvider"/>
<registryKey key="compilation.charts" defaultValue="false"
description="Show compilation charts" restartRequired="false"/>
<registryKey key="compilation.charts.mac.magnificationGesture" defaultValue="false"
description="Enable pinch-to-zoom gesture for magnifying compilation charts." restartRequired="false"/>
<applicationService serviceInterface="com.intellij.java.compiler.charts.CompilationChartsFactory"
serviceImplementation="com.intellij.java.compiler.charts.impl.CompilationChartsFactoryImpl"/>
<applicationService serviceInterface="com.intellij.compilation.charts.CompilationChartsFactory"
serviceImplementation="com.intellij.compilation.charts.impl.CompilationChartsFactoryImpl"/>
</extensions>
<actions resource-bundle="messages.CompilationChartsBundle">
<action id="CompilationChartsZoomResetAction" class="com.intellij.java.compiler.charts.ui.ActionPanel$ZoomResetAction"
<action id="CompilationChartsZoomResetAction" class="com.intellij.compilation.charts.ui.ActionPanel$ZoomResetAction"
icon="AllIcons.Graph.ActualZoom">
<keyboard-shortcut first-keystroke="shift meta EQUALS" keymap="Mac OS X"/>
<keyboard-shortcut first-keystroke="shift ctrl EQUALS" keymap="$default"/>
<override-text place="CompilationChartsToolbar"/>
</action>
<action id="CompilationChartsZoomOutAction" class="com.intellij.java.compiler.charts.ui.ActionPanel$ZoomOutAction"
<action id="CompilationChartsZoomOutAction" class="com.intellij.compilation.charts.ui.ActionPanel$ZoomOutAction"
icon="AllIcons.Graph.ZoomOut" use-shortcut-of="CollapseAll">
<override-text place="CompilationChartsToolbar"/>
</action>
<action id="CompilationChartsZoomInAction" class="com.intellij.java.compiler.charts.ui.ActionPanel$ZoomInAction"
<action id="CompilationChartsZoomInAction" class="com.intellij.compilation.charts.ui.ActionPanel$ZoomInAction"
icon="AllIcons.Graph.ZoomIn" use-shortcut-of="ExpandAll">
<override-text place="CompilationChartsToolbar"/>
</action>
<action id="CompilationChartsScrollToEndAction" class="com.intellij.java.compiler.charts.ui.ActionPanel$ScrollToEndAction"
<action id="CompilationChartsScrollToEndAction" class="com.intellij.compilation.charts.ui.ActionPanel$ScrollToEndAction"
icon="AllIcons.Actions.Forward">
<override-text place="CompilationChartsToolbar"/>
</action>
@@ -1,11 +1,11 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts;
package com.intellij.compilation.charts;
import com.intellij.java.compiler.charts.events.ChartEvent;
import com.intellij.compilation.charts.events.ChartEvent;
import com.intellij.openapi.Disposable;
import org.jetbrains.annotations.NotNull;
import javax.swing.*;
import javax.swing.JComponent;
import java.util.Collection;
public interface CompilationCharts extends Disposable {
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts;
package com.intellij.compilation.charts;
import com.intellij.DynamicBundle;
import org.jetbrains.annotations.Nls;
@@ -1,7 +1,7 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts;
package com.intellij.compilation.charts;
import com.intellij.java.compiler.charts.events.StatisticChartEvent;
import com.intellij.compilation.charts.events.StatisticChartEvent;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.events;
package com.intellij.compilation.charts.events;
import org.jetbrains.annotations.NotNull;
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.events;
package com.intellij.compilation.charts.events;
import org.jetbrains.annotations.NotNull;
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.events;
package com.intellij.compilation.charts.events;
import org.jetbrains.annotations.NotNull;
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.events;
package com.intellij.compilation.charts.events;
import com.intellij.openapi.util.NlsContexts;
import org.jetbrains.annotations.NotNull;
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.events;
package com.intellij.compilation.charts.events;
import org.jetbrains.annotations.NotNull;
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.events;
package com.intellij.compilation.charts.events;
import org.jetbrains.annotations.NotNull;
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.events;
package com.intellij.compilation.charts.events;
import org.jetbrains.annotations.NotNull;
@@ -1,9 +1,9 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.impl;
package com.intellij.compilation.charts.impl;
import com.intellij.java.compiler.charts.CompilationCharts;
import com.intellij.java.compiler.charts.CompilationChartsFactory;
import com.intellij.java.compiler.charts.events.StatisticChartEvent;
import com.intellij.compilation.charts.CompilationCharts;
import com.intellij.compilation.charts.CompilationChartsFactory;
import com.intellij.compilation.charts.events.StatisticChartEvent;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nls;
@@ -1,12 +1,16 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.impl
package com.intellij.compilation.charts.impl
import com.intellij.java.compiler.charts.CompilationCharts
import com.intellij.java.compiler.charts.events.*
import com.intellij.java.compiler.charts.impl.CompilationChartsViewModel.Filter
import com.intellij.java.compiler.charts.ui.CompilationChartsTopic
import com.intellij.java.compiler.charts.ui.CompilationChartsTopic.*
import com.intellij.java.compiler.charts.ui.CompilationChartsView
import com.intellij.compilation.charts.CompilationCharts
import com.intellij.compilation.charts.events.ChartEvent
import com.intellij.compilation.charts.events.ModuleChartEvent
import com.intellij.compilation.charts.events.ModuleFinishChartEvent
import com.intellij.compilation.charts.events.ModuleStartChartEvent
import com.intellij.compilation.charts.events.StatisticChartEvent
import com.intellij.compilation.charts.impl.CompilationChartsViewModel.Filter
import com.intellij.compilation.charts.ui.CompilationChartsTopic
import com.intellij.compilation.charts.ui.CompilationChartsTopic.*
import com.intellij.compilation.charts.ui.CompilationChartsView
import com.intellij.openapi.Disposable
import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.project.Project
@@ -1,7 +1,7 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.impl
package com.intellij.compilation.charts.impl
import com.intellij.java.compiler.charts.ui.CompilationChartsTopic
import com.intellij.compilation.charts.ui.CompilationChartsTopic
import com.intellij.openapi.Disposable
import com.intellij.openapi.project.Project
import java.util.function.Predicate
@@ -1,9 +1,9 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.impl;
package com.intellij.compilation.charts.impl;
import com.intellij.java.compiler.charts.CompilationChartsFactory.EventColor;
import com.intellij.java.compiler.charts.CompilationChartsFactory.EventLayout;
import com.intellij.java.compiler.charts.events.StatisticChartEvent;
import com.intellij.compilation.charts.CompilationChartsFactory.EventColor;
import com.intellij.compilation.charts.CompilationChartsFactory.EventLayout;
import com.intellij.compilation.charts.events.StatisticChartEvent;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
@@ -1,21 +1,22 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.jps
package com.intellij.compilation.charts.jps
import com.intellij.build.BuildViewManager
import com.intellij.build.events.BuildEventPresentationData
import com.intellij.build.events.PresentableBuildEvent
import com.intellij.build.events.impl.AbstractBuildEvent
import com.intellij.compilation.charts.CompilationCharts
import com.intellij.compilation.charts.CompilationChartsBundle
import com.intellij.execution.ui.ExecutionConsole
import com.intellij.icons.AllIcons
import com.intellij.java.compiler.charts.CompilationCharts
import com.intellij.java.compiler.charts.CompilationChartsBundle
import com.intellij.openapi.actionSystem.ActionGroup
import javax.swing.Icon
import javax.swing.JComponent
internal class CompilationChartsBuildEvent(val view: BuildViewManager,
val buildId: Any,
val chart: CompilationCharts) :
val chart: CompilationCharts
) :
AbstractBuildEvent(Any(), buildId, System.currentTimeMillis(), CompilationChartsBundle.message("charts.tab.name")),
PresentableBuildEvent {
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.jps
package com.intellij.compilation.charts.jps
import com.intellij.compiler.server.BuildProcessParametersProvider
import com.intellij.openapi.util.registry.Registry
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.jps
package com.intellij.compilation.charts.jps
import com.fasterxml.jackson.core.JsonFactory
import com.fasterxml.jackson.core.JsonProcessingException
@@ -11,15 +11,15 @@ import com.intellij.build.BuildViewManager
import com.intellij.build.events.BuildEvent
import com.intellij.build.events.FinishBuildEvent
import com.intellij.build.events.StartBuildEvent
import com.intellij.compilation.charts.CompilationChartsBundle
import com.intellij.compilation.charts.CompilationChartsFactory
import com.intellij.compilation.charts.CompilationChartsFactory.EventLayout
import com.intellij.compilation.charts.events.CpuStatisticChartEvent
import com.intellij.compilation.charts.events.MemoryStatisticChartEvent
import com.intellij.compilation.charts.events.ModuleFinishChartEvent
import com.intellij.compilation.charts.events.ModuleStartChartEvent
import com.intellij.compilation.charts.ui.Colors
import com.intellij.compiler.server.CustomBuilderMessageHandler
import com.intellij.java.compiler.charts.CompilationChartsBundle
import com.intellij.java.compiler.charts.CompilationChartsFactory
import com.intellij.java.compiler.charts.CompilationChartsFactory.EventLayout
import com.intellij.java.compiler.charts.events.CpuStatisticChartEvent
import com.intellij.java.compiler.charts.events.MemoryStatisticChartEvent
import com.intellij.java.compiler.charts.events.ModuleFinishChartEvent
import com.intellij.java.compiler.charts.events.ModuleStartChartEvent
import com.intellij.java.compiler.charts.ui.Colors
import com.intellij.openapi.Disposable
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.Project
@@ -27,7 +27,9 @@ import com.intellij.openapi.startup.ProjectActivity
import com.intellij.openapi.util.Disposer
import com.intellij.openapi.util.registry.Registry
import com.intellij.util.messages.MessageBusConnection
import java.util.*
import java.util.ArrayDeque
import java.util.Queue
import java.util.UUID
import java.util.concurrent.atomic.AtomicReference
class CompilationChartsProjectActivity : ProjectActivity {
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.jps
package com.intellij.compilation.charts.jps
interface TargetEvent {
val name: String
@@ -1,10 +1,16 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.compilation.charts.CompilationChartsBundle
import com.intellij.compilation.charts.impl.CompilationChartsViewModel
import com.intellij.icons.AllIcons
import com.intellij.java.compiler.charts.CompilationChartsBundle
import com.intellij.java.compiler.charts.impl.CompilationChartsViewModel
import com.intellij.openapi.actionSystem.*
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.ActionUpdateThread
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.DefaultActionGroup
import com.intellij.openapi.actionSystem.IdeActions
import com.intellij.openapi.actionSystem.Presentation
import com.intellij.openapi.actionSystem.Separator
import com.intellij.openapi.actionSystem.ex.CustomComponentAction
import com.intellij.openapi.project.DumbAwareAction
import com.intellij.openapi.project.Project
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
class AutoScrollingType {
private var type: Type = Type.YES
@@ -1,9 +1,15 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.ide.ui.UISettings.Companion.setupAntialiasing
import com.intellij.util.JBHiDPIScaledImage
import java.awt.*
import java.awt.Color
import java.awt.Font
import java.awt.FontMetrics
import java.awt.Graphics2D
import java.awt.RenderingHints
import java.awt.Shape
import java.awt.Stroke
import java.awt.geom.AffineTransform
import java.awt.geom.Line2D
import java.awt.geom.Path2D
@@ -1,11 +1,11 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.compilation.charts.impl.CompilationChartsImpl.FilterImpl
import com.intellij.compilation.charts.impl.CompilationChartsViewModel
import com.intellij.compilation.charts.impl.CompilationChartsViewModel.Filter
import com.intellij.compilation.charts.impl.EventDeclaration
import com.intellij.ide.ui.UISettings
import com.intellij.java.compiler.charts.impl.CompilationChartsImpl.FilterImpl
import com.intellij.java.compiler.charts.impl.CompilationChartsViewModel
import com.intellij.java.compiler.charts.impl.CompilationChartsViewModel.Filter
import com.intellij.java.compiler.charts.impl.EventDeclaration
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.editor.colors.EditorColorsListener
import com.intellij.openapi.editor.colors.EditorColorsManager
@@ -15,7 +15,11 @@ import com.intellij.ui.components.JBPanelWithEmptyText
import com.intellij.ui.components.Magnificator
import com.intellij.util.concurrency.AppExecutorUtil
import com.intellij.util.ui.UIUtil
import java.awt.*
import java.awt.BorderLayout
import java.awt.Dimension
import java.awt.Graphics
import java.awt.Graphics2D
import java.awt.Point
import java.awt.geom.Rectangle2D
import java.awt.image.BufferedImage
import java.util.concurrent.atomic.AtomicBoolean
@@ -1,8 +1,8 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.java.compiler.charts.CompilationChartsBundle
import com.intellij.java.compiler.charts.ui.CompilationChartsAction.Position.*
import com.intellij.compilation.charts.CompilationChartsBundle
import com.intellij.compilation.charts.ui.CompilationChartsAction.Position.*
import com.intellij.openapi.Disposable
import com.intellij.openapi.project.Project
import com.intellij.openapi.ui.popup.Balloon
@@ -1,10 +1,10 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.java.compiler.charts.events.ModuleChartEvent
import com.intellij.java.compiler.charts.events.StatisticChartEvent
import com.intellij.java.compiler.charts.impl.CompilationChartsViewModel.Filter
import com.intellij.java.compiler.charts.impl.ModuleKey
import com.intellij.compilation.charts.events.ModuleChartEvent
import com.intellij.compilation.charts.events.StatisticChartEvent
import com.intellij.compilation.charts.impl.CompilationChartsViewModel.Filter
import com.intellij.compilation.charts.impl.ModuleKey
import com.jetbrains.rd.util.reactive.IViewableList
import com.jetbrains.rd.util.reactive.IViewableMap
import kotlinx.collections.immutable.PersistentList
@@ -1,8 +1,8 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.java.compiler.charts.impl.CompilationChartsViewModel
import com.intellij.java.compiler.charts.ui.CompilationChartsTopic.*
import com.intellij.compilation.charts.impl.CompilationChartsViewModel
import com.intellij.compilation.charts.ui.CompilationChartsTopic.*
import com.intellij.openapi.actionSystem.DataKey
import com.intellij.openapi.actionSystem.DataSink
import com.intellij.openapi.actionSystem.UiDataProvider
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.openapi.util.registry.Registry
import com.intellij.ui.components.JBViewport
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.util.concurrency.AppExecutorUtil
import java.awt.Point
@@ -1,13 +1,14 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.java.compiler.charts.events.ModuleChartEvent
import com.intellij.java.compiler.charts.events.ModuleFinishChartEvent
import com.intellij.java.compiler.charts.events.ModuleStartChartEvent
import com.intellij.java.compiler.charts.events.StatisticChartEvent
import com.intellij.java.compiler.charts.impl.ChartModule
import com.intellij.java.compiler.charts.impl.ModuleKey
import java.util.*
import com.intellij.compilation.charts.events.ModuleChartEvent
import com.intellij.compilation.charts.events.ModuleFinishChartEvent
import com.intellij.compilation.charts.events.ModuleStartChartEvent
import com.intellij.compilation.charts.events.StatisticChartEvent
import com.intellij.compilation.charts.impl.ChartModule
import com.intellij.compilation.charts.impl.ModuleKey
import java.util.NavigableSet
import java.util.TreeSet
import java.util.concurrent.ConcurrentHashMap
import java.util.concurrent.atomic.AtomicInteger
@@ -1,5 +1,5 @@
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import java.awt.Point
import java.util.concurrent.TimeUnit
@@ -1,9 +1,17 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.java.compiler.charts.CompilationChartsBundle
import com.intellij.java.compiler.charts.impl.ModuleKey
import com.intellij.openapi.actionSystem.*
import com.intellij.compilation.charts.CompilationChartsBundle
import com.intellij.compilation.charts.impl.ModuleKey
import com.intellij.openapi.actionSystem.ActionManager
import com.intellij.openapi.actionSystem.ActionPlaces
import com.intellij.openapi.actionSystem.ActionUiKind
import com.intellij.openapi.actionSystem.AnActionEvent
import com.intellij.openapi.actionSystem.CommonDataKeys
import com.intellij.openapi.actionSystem.DataContext
import com.intellij.openapi.actionSystem.DataKey
import com.intellij.openapi.actionSystem.LangDataKeys
import com.intellij.openapi.actionSystem.PlatformCoreDataKeys
import com.intellij.openapi.fileEditor.OpenFileDescriptor
import com.intellij.openapi.module.ModuleManager
import com.intellij.openapi.options.ShowSettingsUtil
@@ -1,9 +1,9 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.java.compiler.charts.events.StatisticChartEvent
import com.intellij.java.compiler.charts.impl.CompilationChartsViewModel
import com.intellij.java.compiler.charts.impl.ModuleKey
import com.intellij.compilation.charts.events.StatisticChartEvent
import com.intellij.compilation.charts.impl.CompilationChartsViewModel
import com.intellij.compilation.charts.impl.ModuleKey
import com.intellij.ui.JBColor
import com.intellij.util.ui.UIUtil.FontSize
import java.awt.Color
@@ -12,7 +12,7 @@ import java.awt.event.MouseAdapter
import java.awt.event.MouseEvent
import java.awt.event.MouseMotionListener
import java.awt.geom.Rectangle2D
import java.util.*
import java.util.Objects
import java.util.concurrent.ConcurrentHashMap
import kotlin.math.abs
import kotlin.math.max
@@ -1,13 +1,13 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.compilation.charts.events.StatisticChartEvent
import com.intellij.compilation.charts.impl.ChartModule
import com.intellij.compilation.charts.impl.ModuleKey
import com.intellij.compilation.charts.ui.Colors.FILTERED_ALPHA
import com.intellij.compilation.charts.ui.Colors.NO_ALPHA
import com.intellij.compilation.charts.ui.Settings.Block.MIN_SIZE
import com.intellij.ide.nls.NlsMessages
import com.intellij.java.compiler.charts.events.StatisticChartEvent
import com.intellij.java.compiler.charts.impl.ChartModule
import com.intellij.java.compiler.charts.impl.ModuleKey
import com.intellij.java.compiler.charts.ui.Colors.FILTERED_ALPHA
import com.intellij.java.compiler.charts.ui.Colors.NO_ALPHA
import com.intellij.java.compiler.charts.ui.Settings.Block.MIN_SIZE
import com.intellij.openapi.util.text.Formats
import com.intellij.ui.JBColor
import com.intellij.util.ui.UIUtil
@@ -16,7 +16,8 @@ import java.awt.Color
import java.awt.geom.Line2D
import java.awt.geom.Path2D
import java.awt.geom.Rectangle2D
import java.util.*
import java.util.NavigableSet
import java.util.TreeSet
import java.util.concurrent.TimeUnit
import java.util.function.BiFunction
import kotlin.math.max
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.icons.AllIcons
import com.intellij.ui.JBColor
@@ -1,12 +1,13 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.java.compiler.charts.events.StatisticChartEvent
import com.intellij.java.compiler.charts.impl.ChartModule
import com.intellij.java.compiler.charts.impl.CompilationChartsImpl.FilterImpl
import com.intellij.java.compiler.charts.impl.CompilationChartsViewModel.Filter
import com.intellij.java.compiler.charts.impl.ModuleKey
import java.util.*
import com.intellij.compilation.charts.events.StatisticChartEvent
import com.intellij.compilation.charts.impl.ChartModule
import com.intellij.compilation.charts.impl.CompilationChartsImpl.FilterImpl
import com.intellij.compilation.charts.impl.CompilationChartsViewModel.Filter
import com.intellij.compilation.charts.impl.ModuleKey
import java.util.NavigableSet
import java.util.TreeSet
import kotlin.math.max
import kotlin.math.min
@@ -1,5 +1,5 @@
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.intellij.java.compiler.charts.ui
package com.intellij.compilation.charts.ui
import com.intellij.ui.ColorUtil
import com.intellij.util.JBHiDPIScaledImage