mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[java-console] IDEA-346861 Support change ClassFinderFilter's style in settings
GitOrigin-RevId: 696419662953dfdd0a7a799ed2ad1f5611d18fbc
This commit is contained in:
committed by
intellij-monorepo-bot
parent
58dcd393a1
commit
cd6619cc6b
@@ -165,6 +165,7 @@
|
||||
<inspectionCustomComponent implementation="com.intellij.codeInsight.options.JavaInspectionButtons"/>
|
||||
|
||||
<!--console filter-->
|
||||
<colorSettingsPage implementation="com.intellij.analysis.customization.console.ClassFinderConsoleColorsPage"/>
|
||||
<consoleFilterProvider implementation="com.intellij.analysis.customization.console.ClassLoggingConsoleFilterProvider"/>
|
||||
<advancedSetting id="process.console.output.to.find.class.names" default="true" groupKey="group.advanced.settings.jvm" bundle="messages.JvmAnalysisBundle"/>
|
||||
<statistics.counterUsagesCollector implementationClass="com.intellij.analysis.customization.console.LogConsoleLogHandlerCollectors"/>
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
// 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.analysis.customization.console;
|
||||
|
||||
import com.intellij.execution.impl.ConsoleViewUtil;
|
||||
import com.intellij.java.JavaBundle;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsScheme;
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey;
|
||||
import com.intellij.openapi.editor.ex.EditorEx;
|
||||
import com.intellij.openapi.fileTypes.PlainSyntaxHighlighter;
|
||||
import com.intellij.openapi.fileTypes.PlainTextFileType;
|
||||
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
|
||||
import com.intellij.openapi.options.OptionsBundle;
|
||||
import com.intellij.openapi.options.colors.AttributesDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorDescriptor;
|
||||
import com.intellij.openapi.options.colors.ColorSettingsPage;
|
||||
import com.intellij.psi.codeStyle.DisplayPriority;
|
||||
import com.intellij.psi.codeStyle.DisplayPrioritySortable;
|
||||
import com.intellij.ui.EditorCustomization;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Map;
|
||||
|
||||
public final class ClassFinderConsoleColorsPage implements ColorSettingsPage, DisplayPrioritySortable, EditorCustomization {
|
||||
public static final TextAttributesKey
|
||||
TERMINAL_CLASS_NAME_LOG_REFERENCE = TextAttributesKey.createTextAttributesKey("TERMINAL_CLASS_NAME_LOG_REFERENCE");
|
||||
|
||||
private static final String DEMO_TEXT =
|
||||
"""
|
||||
com.example.<className>ClassName</className>
|
||||
""";
|
||||
|
||||
private static final AttributesDescriptor LOG_CLASS_NAME =
|
||||
new AttributesDescriptor(OptionsBundle.messagePointer("options.language.defaults.class.name"), TERMINAL_CLASS_NAME_LOG_REFERENCE);
|
||||
private static final AttributesDescriptor[] ATTRS = {LOG_CLASS_NAME,};
|
||||
|
||||
|
||||
private static final Map<String, TextAttributesKey> ADDITIONAL_HIGHLIGHT_DESCRIPTORS =
|
||||
Map.of("className", TERMINAL_CLASS_NAME_LOG_REFERENCE);
|
||||
|
||||
@Override
|
||||
public @NotNull Map<String, TextAttributesKey> getAdditionalHighlightingTagToDescriptorMap() {
|
||||
return ADDITIONAL_HIGHLIGHT_DESCRIPTORS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDisplayName() {
|
||||
return JavaBundle.message("jvm.logging.configurable.display.name");
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull Icon getIcon() {
|
||||
return PlainTextFileType.INSTANCE.getIcon();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AttributesDescriptor @NotNull [] getAttributeDescriptors() {
|
||||
return ATTRS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ColorDescriptor @NotNull [] getColorDescriptors() {
|
||||
return ColorDescriptor.EMPTY_ARRAY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull SyntaxHighlighter getHighlighter() {
|
||||
return new PlainSyntaxHighlighter();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String getDemoText() {
|
||||
return DEMO_TEXT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public DisplayPriority getPriority() {
|
||||
return DisplayPriority.COMMON_SETTINGS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull EditorColorsScheme customizeColorScheme(@NotNull EditorColorsScheme scheme) {
|
||||
return ConsoleViewUtil.updateConsoleColorScheme(scheme);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void customize(@NotNull EditorEx editor) {
|
||||
editor.getSettings().setCaretRowShown(false);
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
// 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.analysis.customization.console
|
||||
|
||||
import com.intellij.analysis.customization.console.ClassFinderConsoleColorsPage.TERMINAL_CLASS_NAME_LOG_REFERENCE
|
||||
import com.intellij.execution.filters.Filter
|
||||
import com.intellij.execution.filters.HyperlinkInfo
|
||||
import com.intellij.openapi.editor.colors.EditorColorsManager
|
||||
import com.intellij.openapi.editor.markup.EffectType
|
||||
import com.intellij.openapi.editor.markup.TextAttributes
|
||||
import com.intellij.openapi.project.Project
|
||||
@@ -27,14 +29,14 @@ private val HARDCODED_NOT_CLASS = setOf(
|
||||
|
||||
internal class ClassFinderFilter(private val myProject: Project, myScope: GlobalSearchScope) : Filter {
|
||||
private val cache = ClassInfoResolver(myProject, myScope)
|
||||
private val hyperLinkAttributes: TextAttributes = EditorColorsManager.getInstance()?.globalScheme?.getAttributes(TERMINAL_CLASS_NAME_LOG_REFERENCE)?: hardCodedHyperLinkAttributes()
|
||||
|
||||
override fun applyFilter(line: String, entireLength: Int): Filter.Result? {
|
||||
val textStartOffset = entireLength - line.length
|
||||
|
||||
val expectedClasses = findProbableClasses(line)
|
||||
val results: MutableList<Filter.Result> = ArrayList()
|
||||
val attributes = hyperLinkAttributes
|
||||
for (probableClass in expectedClasses) {
|
||||
val attributes = hyperLinkAttributes()
|
||||
|
||||
results.add(
|
||||
Filter.Result(textStartOffset + probableClass.from,
|
||||
@@ -49,7 +51,7 @@ internal class ClassFinderFilter(private val myProject: Project, myScope: Global
|
||||
return Filter.Result(results)
|
||||
}
|
||||
|
||||
private fun hyperLinkAttributes(): TextAttributes {
|
||||
private fun hardCodedHyperLinkAttributes(): TextAttributes {
|
||||
val attributes = TextAttributes()
|
||||
attributes.effectType = EffectType.BOLD_DOTTED_LINE
|
||||
attributes.effectColor = NamedColorUtil.getInactiveTextColor()
|
||||
|
||||
@@ -637,6 +637,12 @@
|
||||
<option name="BACKGROUND" value="d8d8d8"/>
|
||||
</value>
|
||||
</option>
|
||||
<option name="TERMINAL_CLASS_NAME_LOG_REFERENCE">
|
||||
<value>
|
||||
<option name="EFFECT_TYPE" value="5" />
|
||||
<option name="EFFECT_COLOR" value="808080" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="LIVE_TEMPLATE_ATTRIBUTES">
|
||||
<value>
|
||||
<option name="FOREGROUND"/>
|
||||
@@ -667,7 +673,7 @@
|
||||
<value>
|
||||
<option name="FOREGROUND"/>
|
||||
<option name="BACKGROUND" value="e4e4ff" deuteranopia="D9E6FF" protanopia="D9E6FF"/>
|
||||
<option name="ERROR_STRIPE_COLOR" value="baa8ff" deuteranopia="acb0bf" protanopia="acb0bf"/>
|
||||
<option name="ERROR_STRIPE_COLOR" value="baa8ff" deuteranopia="acb0bf" protanopia="acb0bf"/>
|
||||
<option name="EFFECT_COLOR"/>
|
||||
</value>
|
||||
</option>
|
||||
@@ -1395,7 +1401,7 @@
|
||||
<option name="FOREGROUND" value="bc5150" />
|
||||
</value>
|
||||
</option>
|
||||
|
||||
|
||||
<option name="BREADCRUMBS_DEFAULT">
|
||||
<value>
|
||||
<option name="FOREGROUND" value="585858"/>
|
||||
@@ -2538,6 +2544,12 @@
|
||||
<option name="BACKGROUND" value="6b6b6b"/>
|
||||
</value>
|
||||
</option>
|
||||
<option name="TERMINAL_CLASS_NAME_LOG_REFERENCE">
|
||||
<value>
|
||||
<option name="EFFECT_TYPE" value="5" />
|
||||
<option name="EFFECT_COLOR" value="808080" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="SPY-JS.FUNCTION_SCOPE">
|
||||
<value>
|
||||
<option name="BACKGROUND" value="3A3A3A"/>
|
||||
|
||||
Reference in New Issue
Block a user