From 3eca906e7de2161c5afbc706117e5fb72a1a0c77 Mon Sep 17 00:00:00 2001 From: thelooter Date: Thu, 19 Sep 2024 21:23:07 +0200 Subject: [PATCH 01/13] refactor(java): refactor Java file icons to be optionally styled Signed-off-by: thelooter --- .../jetbrains_icons/IconProvider.kt | 51 +++------------- .../providers/JavaIconProvider.kt | 60 +++++++++++++++++++ ...ub.catppuccin.jetbrains_icons-withJava.xml | 9 +++ ....catppuccin.jetbrains_icons-withKotlin.xml | 2 + src/main/resources/META-INF/plugin.xml | 4 +- 5 files changed, 81 insertions(+), 45 deletions(-) create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt create mode 100644 src/main/resources/META-INF/com.github.catppuccin.jetbrains_icons-withJava.xml create mode 100644 src/main/resources/META-INF/com.github.catppuccin.jetbrains_icons-withKotlin.xml diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/IconProvider.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/IconProvider.kt index 08eed18..bf5e6bd 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/IconProvider.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/IconProvider.kt @@ -1,13 +1,8 @@ package com.github.catppuccin.jetbrains_icons -import com.github.catppuccin.jetbrains_icons.settings.PluginSettingsState -import com.github.catppuccin.jetbrains_icons.util.PsiClassUtils import com.intellij.ide.IconProvider import com.intellij.psi.PsiElement -import com.intellij.psi.PsiClass -import com.intellij.psi.PsiFile import com.intellij.psi.PsiManager -import com.intellij.psi.JavaRecursiveElementVisitor import com.intellij.psi.util.PsiUtilCore import javax.swing.Icon @@ -16,9 +11,9 @@ class IconProvider : IconProvider() { private val fileTypes = mapOf( "Dockerfile" to icons.docker, - ) + provideJavaIcons() + ) - override fun getIcon(element: PsiElement, flags: Int): Icon { + override fun getIcon(element: PsiElement, flags: Int): Icon? { val virtualFile = PsiUtilCore.getVirtualFile(element) // File types @@ -26,8 +21,12 @@ class IconProvider : IconProvider() { val file = PsiManager.getInstance(element.project).findFile(virtualFile) if (file != null) { val fileType = when { - file.name.endsWith(".java") -> determineJavaFileType(file) - else -> file.fileType.name + file.name.endsWith(".java") -> { + return null + } + else -> { + file.fileType.name + } } val icon = fileTypes[fileType] if (icon != null) { @@ -67,38 +66,4 @@ class IconProvider : IconProvider() { return icons._file } - - private fun determineJavaFileType(file: PsiFile): String { - var fileType = "JAVA_CLASS" - if (!PluginSettingsState.instance.javaSupport) return fileType - file.accept(object : JavaRecursiveElementVisitor() { - override fun visitClass(aClass: PsiClass) { - when { - aClass.isAnnotationType -> fileType = "JAVA_ANNOTATION" - aClass.isInterface -> fileType = "JAVA_INTERFACE" - aClass.isEnum -> fileType = "JAVA_ENUM" - aClass.isRecord -> fileType = "JAVA_RECORD" - PsiClassUtils.isException(aClass) -> fileType = "JAVA_EXCEPTION" - PsiClassUtils.isSealed(aClass) -> fileType = "JAVA_SEALED" - PsiClassUtils.isFinal(aClass) -> fileType = "JAVA_FINAL" - PsiClassUtils.isAbstract(aClass) -> fileType = "JAVA_ABSTRACT" - } - } - }) - return fileType - } - - private fun provideJavaIcons(): Map { - return mapOf( - "JAVA_ANNOTATION" to icons.java_annotation, - "JAVA_INTERFACE" to icons.java_interface, - "JAVA_ENUM" to icons.java_enum, - "JAVA_RECORD" to icons.java_record, - "JAVA_EXCEPTION" to icons.java_exception, - "JAVA_ABSTRACT" to icons.java_class_abstract, - "JAVA_SEALED" to icons.java_class_sealed, - "JAVA_FINAL" to icons.java_class_final, - "JAVA_CLASS" to icons.java_class, - ) - } } diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt new file mode 100644 index 0000000..f2a59c3 --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt @@ -0,0 +1,60 @@ +package com.github.catppuccin.jetbrains_icons.providers + +import com.github.catppuccin.jetbrains_icons.IconPack +import com.github.catppuccin.jetbrains_icons.settings.PluginSettingsState +import com.github.catppuccin.jetbrains_icons.util.PsiClassUtils +import com.intellij.ide.IconProvider +import com.intellij.psi.* +import com.intellij.psi.util.PsiUtilCore +import javax.swing.Icon + +class JavaIconProvider : IconProvider() { + private var icons = IconPack.instance.icons + + override fun getIcon(element: PsiElement, flags: Int): Icon? { + val virtualFile = PsiUtilCore.getVirtualFile(element) + if (virtualFile != null) { + if (!virtualFile.name.endsWith(".java")) { + return null + } + } + // Only process Java files + val file: PsiFile = (virtualFile?.let { PsiManager.getInstance(element.project).findFile(it) } ?: return null) + val fileType = determineJavaFileType(file) + return provideJavaIcons()[fileType] + } + + private fun determineJavaFileType(file: PsiFile): String { + if (!PluginSettingsState.instance.javaSupport) return "JAVA_CLASS" + var fileType = "JAVA_CLASS" + file.accept(object : JavaRecursiveElementVisitor() { + override fun visitClass(aClass: PsiClass) { + when { + aClass.isInterface -> fileType = "JAVA_INTERFACE" + aClass.isEnum -> fileType = "JAVA_ENUM" + aClass.isAnnotationType -> fileType = "JAVA_ANNOTATION" + aClass.isRecord -> fileType = "JAVA_RECORD" + PsiClassUtils.isException(aClass) -> fileType = "JAVA_EXCEPTION" + PsiClassUtils.isSealed(aClass) -> fileType = "JAVA_SEALED" + PsiClassUtils.isFinal(aClass) -> fileType = "JAVA_FINAL" + PsiClassUtils.isAbstract(aClass) -> fileType = "JAVA_ABSTRACT" + } + } + }) + return fileType + } + + private fun provideJavaIcons(): Map { + return mapOf( + "JAVA_INTERFACE" to icons.java_interface, + "JAVA_ENUM" to icons.java_enum, + "JAVA_ANNOTATION" to icons.java_annotation, + "JAVA_RECORD" to icons.java_record, + "JAVA_EXCEPTION" to icons.java_exception, + "JAVA_ABSTRACT" to icons.java_class_abstract, + "JAVA_SEALED" to icons.java_class_sealed, + "JAVA_FINAL" to icons.java_class_final, + "JAVA_CLASS" to icons.java, + ) + } +} diff --git a/src/main/resources/META-INF/com.github.catppuccin.jetbrains_icons-withJava.xml b/src/main/resources/META-INF/com.github.catppuccin.jetbrains_icons-withJava.xml new file mode 100644 index 0000000..c95a55c --- /dev/null +++ b/src/main/resources/META-INF/com.github.catppuccin.jetbrains_icons-withJava.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/src/main/resources/META-INF/com.github.catppuccin.jetbrains_icons-withKotlin.xml b/src/main/resources/META-INF/com.github.catppuccin.jetbrains_icons-withKotlin.xml new file mode 100644 index 0000000..164f46c --- /dev/null +++ b/src/main/resources/META-INF/com.github.catppuccin.jetbrains_icons-withKotlin.xml @@ -0,0 +1,2 @@ + + diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 69c4341..76130b9 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -31,8 +31,8 @@ For further help, see also:

LICENSE: MIT

]]> com.intellij.modules.platform - org.jetbrains.kotlin - com.intellij.java + org.jetbrains.kotlin + com.intellij.java Date: Thu, 19 Sep 2024 21:41:59 +0200 Subject: [PATCH 02/13] feat(settings): Disable Java Support Setting Toggle if Java Plugin is not found --- CHANGELOG.md | 2 ++ .../jetbrains_icons/settings/PluginSettingsState.kt | 4 +++- .../settings/views/SettingsAdditionalSupportView.kt | 6 +++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f23896..5f97be5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ ### Changed +- Load Java Support optionally ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) + ### Deprecated ### Removed diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/PluginSettingsState.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/PluginSettingsState.kt index 401266a..8b3a8fd 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/PluginSettingsState.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/PluginSettingsState.kt @@ -1,9 +1,11 @@ package com.github.catppuccin.jetbrains_icons.settings +import com.intellij.ide.plugins.PluginManager.* import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.components.PersistentStateComponent import com.intellij.openapi.components.State import com.intellij.openapi.components.Storage +import com.intellij.openapi.extensions.PluginId.findId import com.intellij.util.xmlb.XmlSerializerUtil @State( @@ -14,7 +16,7 @@ class PluginSettingsState : PersistentStateComponent { var variant = Variant.MOCHA.id var pythonSupport = true - var javaSupport = true + var javaSupport = isPluginInstalled(findId("com.intellij.java")) companion object { val instance: PluginSettingsState diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/views/SettingsAdditionalSupportView.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/views/SettingsAdditionalSupportView.kt index 2d2a7ea..37a58fe 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/views/SettingsAdditionalSupportView.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/views/SettingsAdditionalSupportView.kt @@ -1,6 +1,8 @@ package com.github.catppuccin.jetbrains_icons.settings.views import com.github.catppuccin.jetbrains_icons.settings.PluginSettingsState +import com.intellij.ide.plugins.PluginManager.isPluginInstalled +import com.intellij.openapi.extensions.PluginId.* import com.intellij.ui.components.JBCheckBox import com.intellij.util.ui.FormBuilder import java.awt.FlowLayout @@ -8,7 +10,9 @@ import javax.swing.JPanel class SettingsAdditionalSupportView : JPanel() { val python = JBCheckBox("Python", PluginSettingsState.instance.pythonSupport) - val java = JBCheckBox("Java Filetypes", PluginSettingsState.instance.javaSupport) + val java = JBCheckBox("Java Filetypes", PluginSettingsState.instance.javaSupport).apply { + isEnabled = isPluginInstalled(findId("com.intellij.java")) + } init { val form = FormBuilder.createFormBuilder() From fa74330b909e6f1e8ba3e9f93a99f7fc07128dd7 Mon Sep 17 00:00:00 2001 From: thelooter Date: Thu, 19 Sep 2024 22:17:19 +0200 Subject: [PATCH 03/13] fix(java): restore visibility icons Signed-off-by: thelooter --- .../providers/JavaIconProvider.kt | 71 ++++++++----------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt index f2a59c3..12d4767 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt @@ -9,52 +9,39 @@ import com.intellij.psi.util.PsiUtilCore import javax.swing.Icon class JavaIconProvider : IconProvider() { - private var icons = IconPack.instance.icons + private val icons = IconPack.instance.icons + private val javaIcons = mapOf( + "JAVA_INTERFACE" to icons.java_interface, + "JAVA_ENUM" to icons.java_enum, + "JAVA_ANNOTATION" to icons.java_annotation, + "JAVA_RECORD" to icons.java_record, + "JAVA_EXCEPTION" to icons.java_exception, + "JAVA_ABSTRACT" to icons.java_class_abstract, + "JAVA_SEALED" to icons.java_class_sealed, + "JAVA_FINAL" to icons.java_class_final, + "JAVA_CLASS" to icons.java, + ) override fun getIcon(element: PsiElement, flags: Int): Icon? { - val virtualFile = PsiUtilCore.getVirtualFile(element) - if (virtualFile != null) { - if (!virtualFile.name.endsWith(".java")) { - return null - } - } - // Only process Java files - val file: PsiFile = (virtualFile?.let { PsiManager.getInstance(element.project).findFile(it) } ?: return null) - val fileType = determineJavaFileType(file) - return provideJavaIcons()[fileType] - } + if (!PluginSettingsState.instance.javaSupport) return icons.java + + if (element !is PsiClass) return null + + val virtualFile = PsiUtilCore.getVirtualFile(element) ?: return null + if (!virtualFile.name.endsWith(".java")) return null - private fun determineJavaFileType(file: PsiFile): String { - if (!PluginSettingsState.instance.javaSupport) return "JAVA_CLASS" - var fileType = "JAVA_CLASS" - file.accept(object : JavaRecursiveElementVisitor() { - override fun visitClass(aClass: PsiClass) { - when { - aClass.isInterface -> fileType = "JAVA_INTERFACE" - aClass.isEnum -> fileType = "JAVA_ENUM" - aClass.isAnnotationType -> fileType = "JAVA_ANNOTATION" - aClass.isRecord -> fileType = "JAVA_RECORD" - PsiClassUtils.isException(aClass) -> fileType = "JAVA_EXCEPTION" - PsiClassUtils.isSealed(aClass) -> fileType = "JAVA_SEALED" - PsiClassUtils.isFinal(aClass) -> fileType = "JAVA_FINAL" - PsiClassUtils.isAbstract(aClass) -> fileType = "JAVA_ABSTRACT" - } - } - }) - return fileType + return javaIcons[determineJavaFileType(element)] } - private fun provideJavaIcons(): Map { - return mapOf( - "JAVA_INTERFACE" to icons.java_interface, - "JAVA_ENUM" to icons.java_enum, - "JAVA_ANNOTATION" to icons.java_annotation, - "JAVA_RECORD" to icons.java_record, - "JAVA_EXCEPTION" to icons.java_exception, - "JAVA_ABSTRACT" to icons.java_class_abstract, - "JAVA_SEALED" to icons.java_class_sealed, - "JAVA_FINAL" to icons.java_class_final, - "JAVA_CLASS" to icons.java, - ) + private fun determineJavaFileType(aClass: PsiClass): String = when { + aClass.isInterface -> "JAVA_INTERFACE" + aClass.isEnum -> "JAVA_ENUM" + aClass.isAnnotationType -> "JAVA_ANNOTATION" + aClass.isRecord -> "JAVA_RECORD" + PsiClassUtils.isException(aClass) -> "JAVA_EXCEPTION" + PsiClassUtils.isSealed(aClass) -> "JAVA_SEALED" + PsiClassUtils.isFinal(aClass) -> "JAVA_FINAL" + PsiClassUtils.isAbstract(aClass) -> "JAVA_ABSTRACT" + else -> "JAVA_CLASS" } } From 6b7c7b3cae5df540c92a70b90f64c20ec1b53c35 Mon Sep 17 00:00:00 2001 From: thelooter Date: Thu, 19 Sep 2024 22:21:22 +0200 Subject: [PATCH 04/13] fix(changelog): Add restored visibility icons to changelog Signed-off-by: thelooter --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f97be5..de37d7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ ### Fixed +- Visibility Icons for Java Files in the structure view are not hidden anymore ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) + ### Security ## 1.8.0 - 2024-09-13 From cd2fc50442b8f83e8c4778635848d642601ee6b2 Mon Sep 17 00:00:00 2001 From: sgoudham Date: Fri, 20 Sep 2024 02:56:55 +0100 Subject: [PATCH 05/13] fix: regression in icon provider logic --- .../jetbrains_icons/providers/JavaIconProvider.kt | 4 ++-- .../github/catppuccin/jetbrains_icons/test/Annotation.java | 4 ++++ .../com/github/catppuccin/jetbrains_icons/test/Class.java | 4 ++++ .../catppuccin/jetbrains_icons/test/ClassAbstract.java | 4 ++++ .../github/catppuccin/jetbrains_icons/test/ClassFinal.java | 4 ++++ .../catppuccin/jetbrains_icons/test/ClassSealed.java | 4 ++++ .../com/github/catppuccin/jetbrains_icons/test/Enum.java | 4 ++++ .../github/catppuccin/jetbrains_icons/test/Exception.java | 7 +++++++ .../github/catppuccin/jetbrains_icons/test/Interface.java | 4 ++++ .../com/github/catppuccin/jetbrains_icons/test/Record.java | 4 ++++ 10 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Annotation.java create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Class.java create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassAbstract.java create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassFinal.java create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassSealed.java create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Enum.java create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Exception.java create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Interface.java create mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Record.java diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt index 12d4767..e3bda91 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt @@ -19,7 +19,7 @@ class JavaIconProvider : IconProvider() { "JAVA_ABSTRACT" to icons.java_class_abstract, "JAVA_SEALED" to icons.java_class_sealed, "JAVA_FINAL" to icons.java_class_final, - "JAVA_CLASS" to icons.java, + "JAVA_CLASS" to icons.java_class, ) override fun getIcon(element: PsiElement, flags: Int): Icon? { @@ -34,9 +34,9 @@ class JavaIconProvider : IconProvider() { } private fun determineJavaFileType(aClass: PsiClass): String = when { + aClass.isAnnotationType -> "JAVA_ANNOTATION" aClass.isInterface -> "JAVA_INTERFACE" aClass.isEnum -> "JAVA_ENUM" - aClass.isAnnotationType -> "JAVA_ANNOTATION" aClass.isRecord -> "JAVA_RECORD" PsiClassUtils.isException(aClass) -> "JAVA_EXCEPTION" PsiClassUtils.isSealed(aClass) -> "JAVA_SEALED" diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Annotation.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Annotation.java new file mode 100644 index 0000000..be2d2bf --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Annotation.java @@ -0,0 +1,4 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public @interface Annotation { +} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Class.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Class.java new file mode 100644 index 0000000..2ff1483 --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Class.java @@ -0,0 +1,4 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public class Class { +} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassAbstract.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassAbstract.java new file mode 100644 index 0000000..50d5825 --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassAbstract.java @@ -0,0 +1,4 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public abstract class ClassAbstract { +} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassFinal.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassFinal.java new file mode 100644 index 0000000..d9247d4 --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassFinal.java @@ -0,0 +1,4 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public final class ClassFinal extends ClassSealed { +} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassSealed.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassSealed.java new file mode 100644 index 0000000..21f7b9e --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassSealed.java @@ -0,0 +1,4 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public sealed class ClassSealed permits ClassFinal { +} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Enum.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Enum.java new file mode 100644 index 0000000..70f2069 --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Enum.java @@ -0,0 +1,4 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public enum Enum { +} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Exception.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Exception.java new file mode 100644 index 0000000..30a1c80 --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Exception.java @@ -0,0 +1,7 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public class Exception extends RuntimeException { + public Exception(String message) { + super(message); + } +} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Interface.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Interface.java new file mode 100644 index 0000000..9192c6a --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Interface.java @@ -0,0 +1,4 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public interface Interface { +} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Record.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Record.java new file mode 100644 index 0000000..d8714d5 --- /dev/null +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Record.java @@ -0,0 +1,4 @@ +package com.github.catppuccin.jetbrains_icons.test; + +public record Record() { +} From eb865dfa32510133fd29bb378eac92053e124b6a Mon Sep 17 00:00:00 2001 From: sgoudham Date: Fri, 20 Sep 2024 02:58:12 +0100 Subject: [PATCH 06/13] chore: woops delete local `test` classes --- .../github/catppuccin/jetbrains_icons/test/Annotation.java | 4 ---- .../com/github/catppuccin/jetbrains_icons/test/Class.java | 4 ---- .../catppuccin/jetbrains_icons/test/ClassAbstract.java | 4 ---- .../github/catppuccin/jetbrains_icons/test/ClassFinal.java | 4 ---- .../catppuccin/jetbrains_icons/test/ClassSealed.java | 4 ---- .../com/github/catppuccin/jetbrains_icons/test/Enum.java | 4 ---- .../github/catppuccin/jetbrains_icons/test/Exception.java | 7 ------- .../github/catppuccin/jetbrains_icons/test/Interface.java | 4 ---- .../com/github/catppuccin/jetbrains_icons/test/Record.java | 4 ---- 9 files changed, 39 deletions(-) delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Annotation.java delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Class.java delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassAbstract.java delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassFinal.java delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassSealed.java delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Enum.java delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Exception.java delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Interface.java delete mode 100644 src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Record.java diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Annotation.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Annotation.java deleted file mode 100644 index be2d2bf..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Annotation.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public @interface Annotation { -} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Class.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Class.java deleted file mode 100644 index 2ff1483..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Class.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public class Class { -} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassAbstract.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassAbstract.java deleted file mode 100644 index 50d5825..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassAbstract.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public abstract class ClassAbstract { -} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassFinal.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassFinal.java deleted file mode 100644 index d9247d4..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassFinal.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public final class ClassFinal extends ClassSealed { -} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassSealed.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassSealed.java deleted file mode 100644 index 21f7b9e..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/ClassSealed.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public sealed class ClassSealed permits ClassFinal { -} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Enum.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Enum.java deleted file mode 100644 index 70f2069..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Enum.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public enum Enum { -} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Exception.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Exception.java deleted file mode 100644 index 30a1c80..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Exception.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public class Exception extends RuntimeException { - public Exception(String message) { - super(message); - } -} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Interface.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Interface.java deleted file mode 100644 index 9192c6a..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Interface.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public interface Interface { -} diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Record.java b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Record.java deleted file mode 100644 index d8714d5..0000000 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/test/Record.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.catppuccin.jetbrains_icons.test; - -public record Record() { -} From 7c780a0746554a1e700ac63cc01e5ea6cba93a71 Mon Sep 17 00:00:00 2001 From: sgoudham Date: Fri, 20 Sep 2024 09:53:31 +0100 Subject: [PATCH 07/13] chore: remove layer of hashmap --- .../providers/JavaIconProvider.kt | 33 +++++++------------ .../views/SettingsAdditionalSupportView.kt | 2 +- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt index e3bda91..ee8f9ca 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt @@ -10,17 +10,6 @@ import javax.swing.Icon class JavaIconProvider : IconProvider() { private val icons = IconPack.instance.icons - private val javaIcons = mapOf( - "JAVA_INTERFACE" to icons.java_interface, - "JAVA_ENUM" to icons.java_enum, - "JAVA_ANNOTATION" to icons.java_annotation, - "JAVA_RECORD" to icons.java_record, - "JAVA_EXCEPTION" to icons.java_exception, - "JAVA_ABSTRACT" to icons.java_class_abstract, - "JAVA_SEALED" to icons.java_class_sealed, - "JAVA_FINAL" to icons.java_class_final, - "JAVA_CLASS" to icons.java_class, - ) override fun getIcon(element: PsiElement, flags: Int): Icon? { if (!PluginSettingsState.instance.javaSupport) return icons.java @@ -30,18 +19,18 @@ class JavaIconProvider : IconProvider() { val virtualFile = PsiUtilCore.getVirtualFile(element) ?: return null if (!virtualFile.name.endsWith(".java")) return null - return javaIcons[determineJavaFileType(element)] + return getJavaIcon(element) } - private fun determineJavaFileType(aClass: PsiClass): String = when { - aClass.isAnnotationType -> "JAVA_ANNOTATION" - aClass.isInterface -> "JAVA_INTERFACE" - aClass.isEnum -> "JAVA_ENUM" - aClass.isRecord -> "JAVA_RECORD" - PsiClassUtils.isException(aClass) -> "JAVA_EXCEPTION" - PsiClassUtils.isSealed(aClass) -> "JAVA_SEALED" - PsiClassUtils.isFinal(aClass) -> "JAVA_FINAL" - PsiClassUtils.isAbstract(aClass) -> "JAVA_ABSTRACT" - else -> "JAVA_CLASS" + private fun getJavaIcon(aClass: PsiClass): Icon = when { + aClass.isAnnotationType -> icons.java_annotation + aClass.isInterface -> icons.java_interface + aClass.isEnum -> icons.java_enum + aClass.isRecord -> icons.java_record + PsiClassUtils.isException(aClass) -> icons.java_exception + PsiClassUtils.isSealed(aClass) -> icons.java_class_sealed + PsiClassUtils.isFinal(aClass) -> icons.java_class_final + PsiClassUtils.isAbstract(aClass) -> icons.java_class_abstract + else -> icons.java_class } } diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/views/SettingsAdditionalSupportView.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/views/SettingsAdditionalSupportView.kt index 37a58fe..c4cfbc2 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/views/SettingsAdditionalSupportView.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/settings/views/SettingsAdditionalSupportView.kt @@ -19,7 +19,7 @@ class SettingsAdditionalSupportView : JPanel() { .addComponent(python) .addTooltip("Override the Python plugin icons") .addComponent(java) - .addTooltip("Use different colors for Java filetypes (e.g. Class, Interface, Record, etc.)") + .addTooltip("Use different shapes and colors for Java filetypes (e.g. Class, Interface, Record, etc.)") .panel add(form) From a8b8aa4cb732a811f7a2f4d43cd2b0db68667b9a Mon Sep 17 00:00:00 2001 From: thelooter Date: Fri, 20 Sep 2024 20:49:41 +0200 Subject: [PATCH 08/13] fix(java): restore modifier icons for java files --- .../providers/JavaIconProvider.kt | 49 +++++++++++++++++-- .../jetbrains_icons/util/PsiClassUtils.kt | 4 ++ 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt index ee8f9ca..b734fea 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt @@ -3,15 +3,23 @@ package com.github.catppuccin.jetbrains_icons.providers import com.github.catppuccin.jetbrains_icons.IconPack import com.github.catppuccin.jetbrains_icons.settings.PluginSettingsState import com.github.catppuccin.jetbrains_icons.util.PsiClassUtils +import com.intellij.icons.AllIcons import com.intellij.ide.IconProvider -import com.intellij.psi.* +import com.intellij.ide.projectView.ProjectView +import com.intellij.openapi.util.Iconable.IconFlags +import com.intellij.psi.PsiClass +import com.intellij.psi.PsiElement +import com.intellij.psi.PsiModifier import com.intellij.psi.util.PsiUtilCore +import com.intellij.ui.LayeredIcon +import com.intellij.ui.RowIcon +import org.jetbrains.annotations.NotNull import javax.swing.Icon class JavaIconProvider : IconProvider() { private val icons = IconPack.instance.icons - override fun getIcon(element: PsiElement, flags: Int): Icon? { + override fun getIcon(@NotNull element: PsiElement, @IconFlags flags: Int): Icon? { if (!PluginSettingsState.instance.javaSupport) return icons.java if (element !is PsiClass) return null @@ -19,7 +27,42 @@ class JavaIconProvider : IconProvider() { val virtualFile = PsiUtilCore.getVirtualFile(element) ?: return null if (!virtualFile.name.endsWith(".java")) return null - return getJavaIcon(element) + val baseIcon = getJavaIcon(element) + val staticMark = getStaticMark(element) + + val icon = when { + staticMark != null -> { + LayeredIcon(2).apply { + setIcon(baseIcon, 0) + setIcon(staticMark, 1) + } + } + else -> { + baseIcon + } + } + + val visibilityIconsEnabled = ProjectView.getInstance(element.project)?.isShowVisibilityIcons("ProjectPane") ?: false + + return when { + visibilityIconsEnabled -> { + RowIcon(2).apply { + setIcon(icon, 0) + getVisibilityIcon(element)?.let { setIcon(it, 1) } + } + } + else -> icon + } + } + + private fun getStaticMark(element: PsiClass): Icon? = + if (PsiClassUtils.isStatic(element)) AllIcons.Nodes.StaticMark else null + + private fun getVisibilityIcon(psiElement: PsiClass): Icon? = when { + psiElement.hasModifierProperty(PsiModifier.PUBLIC) -> AllIcons.Nodes.Public + psiElement.hasModifierProperty(PsiModifier.PRIVATE) -> AllIcons.Nodes.Private + psiElement.hasModifierProperty(PsiModifier.PROTECTED) -> AllIcons.Nodes.Protected + else -> null } private fun getJavaIcon(aClass: PsiClass): Icon = when { diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt index e1c667e..b0279af 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt @@ -16,6 +16,10 @@ object PsiClassUtils { return psiClass.hasModifierProperty(PsiModifier.FINAL) } + fun isStatic(psiClass: PsiClass): Boolean { + return psiClass.hasModifierProperty(PsiModifier.STATIC) + } + fun isException(psiClass: PsiClass): Boolean { return psiClass.name!!.endsWith("Exception") } From cb42a7395750a3478569c2ffd9e3cad36668f66f Mon Sep 17 00:00:00 2001 From: thelooter Date: Fri, 20 Sep 2024 20:52:14 +0200 Subject: [PATCH 09/13] chore(changelog): Update CHANGELOG.md to reflect fixes --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de37d7c..f3077fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,8 @@ ### Fixed -- Visibility Icons for Java Files in the structure view are not hidden anymore ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) +- Visibility Icons for Java Files are not hidden anymore ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) +- Static Classes for Java files now have the appropriate Static Mark ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) ### Security From c0095210566ac6dff2c103800de9123a2faecd11 Mon Sep 17 00:00:00 2001 From: thelooter Date: Fri, 20 Sep 2024 23:05:34 +0200 Subject: [PATCH 10/13] feat(java): make java modifier parsing more robust --- .../jetbrains_icons/util/PsiClassUtils.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt index b0279af..1021340 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt @@ -5,22 +5,28 @@ import com.intellij.psi.PsiModifier object PsiClassUtils { fun isAbstract(psiClass: PsiClass): Boolean { - return psiClass.hasModifierProperty(PsiModifier.ABSTRACT) + return psiClass.isValid && psiClass.hasModifierProperty(PsiModifier.ABSTRACT) } fun isSealed(psiClass: PsiClass): Boolean { - return psiClass.hasModifierProperty(PsiModifier.SEALED) + return psiClass.isValid && psiClass.hasModifierProperty(PsiModifier.SEALED) } fun isFinal(psiClass: PsiClass): Boolean { - return psiClass.hasModifierProperty(PsiModifier.FINAL) + return psiClass.isValid && psiClass.hasModifierProperty(PsiModifier.FINAL) } fun isStatic(psiClass: PsiClass): Boolean { - return psiClass.hasModifierProperty(PsiModifier.STATIC) + return psiClass.isValid && psiClass.hasModifierProperty(PsiModifier.STATIC) } fun isException(psiClass: PsiClass): Boolean { - return psiClass.name!!.endsWith("Exception") + val className = psiClass.name + if (className.isNullOrEmpty()) return false + + if (!psiClass.isValid) return false + + return psiClass.superTypes.any { it.className == "Throwable" || it.className == "Exception" } + || className.endsWith("Exception") } } From 5aefb7614cb0448b06173c13473a6607cb1c9a08 Mon Sep 17 00:00:00 2001 From: thelooter Date: Sat, 21 Sep 2024 00:39:13 +0200 Subject: [PATCH 11/13] feat(java): add package-private visibility icon --- .../jetbrains_icons/providers/JavaIconProvider.kt | 3 ++- .../catppuccin/jetbrains_icons/util/PsiClassUtils.kt | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt index b734fea..6261079 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/providers/JavaIconProvider.kt @@ -42,7 +42,7 @@ class JavaIconProvider : IconProvider() { } } - val visibilityIconsEnabled = ProjectView.getInstance(element.project)?.isShowVisibilityIcons("ProjectPane") ?: false + val visibilityIconsEnabled = ProjectView.getInstance(element.project)?.isShowVisibilityIcons("ProjectPane") == true return when { visibilityIconsEnabled -> { @@ -62,6 +62,7 @@ class JavaIconProvider : IconProvider() { psiElement.hasModifierProperty(PsiModifier.PUBLIC) -> AllIcons.Nodes.Public psiElement.hasModifierProperty(PsiModifier.PRIVATE) -> AllIcons.Nodes.Private psiElement.hasModifierProperty(PsiModifier.PROTECTED) -> AllIcons.Nodes.Protected + PsiClassUtils.isPackagePrivate(psiElement) -> AllIcons.Nodes.PackageLocal else -> null } diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt index 1021340..d3e6ffa 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt @@ -29,4 +29,12 @@ object PsiClassUtils { return psiClass.superTypes.any { it.className == "Throwable" || it.className == "Exception" } || className.endsWith("Exception") } + + fun isPackagePrivate(psiClass: PsiClass): Boolean { + val modifierList = psiClass.modifierList + return modifierList != null && !modifierList.hasModifierProperty(PsiModifier.PUBLIC) && + !modifierList.hasModifierProperty(PsiModifier.PROTECTED) && + !modifierList.hasModifierProperty(PsiModifier.PRIVATE) + } + } From 57e21bc9f9971b1aaf03d45f68297706fc0319eb Mon Sep 17 00:00:00 2001 From: sgoudham Date: Sat, 21 Sep 2024 01:48:13 +0100 Subject: [PATCH 12/13] fix: correctly detect if class extends Exception/Throwable --- CHANGELOG.md | 1 + .../catppuccin/jetbrains_icons/util/PsiClassUtils.kt | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3077fb..93c54fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ - Visibility Icons for Java Files are not hidden anymore ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) - Static Classes for Java files now have the appropriate Static Mark ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) +- Accurately apply `Exception` icon on all classes extending `Exception` and `Throwable` ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) ### Security diff --git a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt index d3e6ffa..5dd625d 100644 --- a/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt +++ b/src/main/kotlin/com/github/catppuccin/jetbrains_icons/util/PsiClassUtils.kt @@ -1,6 +1,7 @@ package com.github.catppuccin.jetbrains_icons.util import com.intellij.psi.PsiClass +import com.intellij.psi.PsiClassType import com.intellij.psi.PsiModifier object PsiClassUtils { @@ -23,11 +24,8 @@ object PsiClassUtils { fun isException(psiClass: PsiClass): Boolean { val className = psiClass.name if (className.isNullOrEmpty()) return false - if (!psiClass.isValid) return false - - return psiClass.superTypes.any { it.className == "Throwable" || it.className == "Exception" } - || className.endsWith("Exception") + return extendsException(psiClass) } fun isPackagePrivate(psiClass: PsiClass): Boolean { @@ -37,4 +35,10 @@ object PsiClassUtils { !modifierList.hasModifierProperty(PsiModifier.PRIVATE) } + private fun extendsException(psiClass: PsiClass): Boolean { + return generateSequence(psiClass) { it.superClass } + .flatMap { it.superTypes.asSequence() } + .filterIsInstance() + .any { it.name in setOf("Exception", "Throwable") } + } } From 7ac7dcf7cc6fc207ca97dbba7468d6d9df494b8c Mon Sep 17 00:00:00 2001 From: sgoudham Date: Sat, 21 Sep 2024 01:52:41 +0100 Subject: [PATCH 13/13] chore: update CHANGELOG.md --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93c54fa..cce9e53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,14 +6,13 @@ ### Changed -- Load Java Support optionally ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) - ### Deprecated ### Removed ### Fixed +- Fix plugin defect warnings by optionally loading Java icons ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) - Visibility Icons for Java Files are not hidden anymore ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) - Static Classes for Java files now have the appropriate Static Mark ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116)) - Accurately apply `Exception` icon on all classes extending `Exception` and `Throwable` ([#116](https://github.com/catppuccin/jetbrains-icons/pull/116))