返回 Skill 列表
extension
分类: 开发与工程无需 API Key

jetbrains-theme-investigation

通过搜索源代码来研究JetBrains IntelliJ平台的主题属性。当用户询问关于UI主题、图标颜色、标签间距、组件样式,或者需要找出哪些属性是可主题化的而哪些是硬编码在基于IntelliJ的IDE中时使用。

person作者: jakexiaohubgithub

JetBrains Theme Investigation

Investigate theme properties in the IntelliJ Platform source code to determine what is themeable via JSON vs hardcoded in source.

Prerequisites

IntelliJ Platform source code must be available at:

../../JetBrains/intellij-community

(Relative to current project directory)

If not cloned yet:

cd ~/Projects/github.com/JetBrains
git clone https://github.com/JetBrains/intellij-community

Quick Investigation Workflow

  1. Search theme metadata first (what properties exist):

    grep -i "PropertyName" ../../JetBrains/intellij-community/platform/platform-resources/src/themes/metadata/*.json
    
  2. Check reference themes (how properties are used):

    grep -r "PropertyName" ../../JetBrains/intellij-community/platform/platform-resources/src/themes/ --include="*.json"
    
  3. Search JBUI.java for programmatic color access:

    grep -A3 "namedColor.*PropertyName" ../../JetBrains/intellij-community/platform/util/ui/src/com/intellij/util/ui/JBUI.java
    
  4. Search source for hardcoded values if not found above:

    grep -rn "propertyName\|PROPERTY_NAME" ../../JetBrains/intellij-community/platform/platform-*/src --include="*.kt" --include="*.java"
    

Key Directories

| Path | Content | |-------------------------------------------------------|------------------------------------------------------------------------------------------| | platform/platform-resources/src/themes/metadata/ | Available theme properties (IntelliJPlatform.themeMetadata.json, JDK.themeMetadata.json) | | platform/platform-resources/src/themes/ | Reference themes (expUI, islands, darcula, HighContrast) | | platform/util/ui/src/com/intellij/util/ui/JBUI.java | CurrentTheme methods mapping to JSON keys | | platform/icons/src/ | SVG icons (check colors used) |

Detailed References

For specific subsystems, see:

Determining if Themeable

| Found In | Result | |--------------------------------------|--------------------------------------| | Theme metadata JSON | Themeable via JSON | | JBUI.java with namedColor/getInt | Themeable via JSON | | Source code with hardcoded values | NOT themeable (requires code change) |