Demo/Testing: use IntelliJ Theme Laf classes (from package com.formdev.flatlaf.intellijthemes) in Demo and Testing apps instead of directly loading .theme.json (preparation for #824)

This commit is contained in:
Karl Tauber
2025-02-25 15:50:30 +01:00
parent 68b8769d0d
commit d26eb2674f
9 changed files with 133 additions and 129 deletions

View File

@@ -28,7 +28,6 @@ import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.FlatLightLaf; import com.formdev.flatlaf.FlatLightLaf;
import com.formdev.flatlaf.FlatPropertiesLaf; import com.formdev.flatlaf.FlatPropertiesLaf;
import com.formdev.flatlaf.IntelliJTheme; import com.formdev.flatlaf.IntelliJTheme;
import com.formdev.flatlaf.demo.intellijthemes.IJThemesPanel;
import com.formdev.flatlaf.util.LoggingFacade; import com.formdev.flatlaf.util.LoggingFacade;
import com.formdev.flatlaf.util.StringUtils; import com.formdev.flatlaf.util.StringUtils;
import com.formdev.flatlaf.util.SystemInfo; import com.formdev.flatlaf.util.SystemInfo;
@@ -38,15 +37,10 @@ import com.formdev.flatlaf.util.SystemInfo;
*/ */
public class DemoPrefs public class DemoPrefs
{ {
public static final String KEY_LAF = "laf"; public static final String KEY_LAF_CLASS_NAME = "lafClassName";
public static final String KEY_LAF_THEME = "lafTheme"; public static final String KEY_LAF_THEME_FILE = "lafThemeFile";
public static final String KEY_SYSTEM_SCALE_FACTOR = "systemScaleFactor"; public static final String KEY_SYSTEM_SCALE_FACTOR = "systemScaleFactor";
public static final String RESOURCE_PREFIX = "res:";
public static final String FILE_PREFIX = "file:";
public static final String THEME_UI_KEY = "__FlatLaf.demo.theme";
private static Preferences state; private static Preferences state;
public static Preferences getState() { public static Preferences getState() {
@@ -63,29 +57,21 @@ public class DemoPrefs
if( args.length > 0 ) if( args.length > 0 )
UIManager.setLookAndFeel( args[0] ); UIManager.setLookAndFeel( args[0] );
else { else {
String lafClassName = state.get( KEY_LAF, FlatLightLaf.class.getName() ); String lafClassName = state.get( KEY_LAF_CLASS_NAME, FlatLightLaf.class.getName() );
if( IntelliJTheme.ThemeLaf.class.getName().equals( lafClassName ) ) { if( FlatPropertiesLaf.class.getName().equals( lafClassName ) ||
String theme = state.get( KEY_LAF_THEME, "" ); IntelliJTheme.ThemeLaf.class.getName().equals( lafClassName ) )
if( theme.startsWith( RESOURCE_PREFIX ) ) {
IntelliJTheme.setup( IJThemesPanel.class.getResourceAsStream( IJThemesPanel.THEMES_PACKAGE + theme.substring( RESOURCE_PREFIX.length() ) ) ); String themeFileName = state.get( KEY_LAF_THEME_FILE, "" );
else if( theme.startsWith( FILE_PREFIX ) ) if( !themeFileName.isEmpty() ) {
FlatLaf.setup( IntelliJTheme.createLaf( new FileInputStream( theme.substring( FILE_PREFIX.length() ) ) ) ); File themeFile = new File( themeFileName );
else
FlatLightLaf.setup();
if( !theme.isEmpty() ) if( themeFileName.endsWith( ".properties" ) ) {
UIManager.getLookAndFeelDefaults().put( THEME_UI_KEY, theme ); String themeName = StringUtils.removeTrailing( themeFile.getName(), ".properties" );
} else if( FlatPropertiesLaf.class.getName().equals( lafClassName ) ) { FlatLaf.setup( new FlatPropertiesLaf( themeName, themeFile ) );
String theme = state.get( KEY_LAF_THEME, "" ); } else
if( theme.startsWith( FILE_PREFIX ) ) { FlatLaf.setup( IntelliJTheme.createLaf( new FileInputStream( themeFile ) ) );
File themeFile = new File( theme.substring( FILE_PREFIX.length() ) );
String themeName = StringUtils.removeTrailing( themeFile.getName(), ".properties" );
FlatLaf.setup( new FlatPropertiesLaf( themeName, themeFile ) );
} else } else
FlatLightLaf.setup(); FlatLightLaf.setup();
if( !theme.isEmpty() )
UIManager.getLookAndFeelDefaults().put( THEME_UI_KEY, theme );
} else } else
UIManager.setLookAndFeel( lafClassName ); UIManager.setLookAndFeel( lafClassName );
} }
@@ -99,7 +85,7 @@ public class DemoPrefs
// remember active look and feel // remember active look and feel
UIManager.addPropertyChangeListener( e -> { UIManager.addPropertyChangeListener( e -> {
if( "lookAndFeel".equals( e.getPropertyName() ) ) if( "lookAndFeel".equals( e.getPropertyName() ) )
state.put( KEY_LAF, UIManager.getLookAndFeel().getClass().getName() ); state.put( KEY_LAF_CLASS_NAME, UIManager.getLookAndFeel().getClass().getName() );
} ); } );
} }

View File

@@ -58,6 +58,7 @@ class IJThemesManager
String name = value.get( "name" ); String name = value.get( "name" );
boolean discontinued = Boolean.parseBoolean( value.get( "discontinued" ) ); boolean discontinued = Boolean.parseBoolean( value.get( "discontinued" ) );
boolean dark = Boolean.parseBoolean( value.get( "dark" ) ); boolean dark = Boolean.parseBoolean( value.get( "dark" ) );
String lafClassName = value.get( "lafClassName" );
String license = value.get( "license" ); String license = value.get( "license" );
String licenseFile = value.get( "licenseFile" ); String licenseFile = value.get( "licenseFile" );
String pluginUrl = value.get( "pluginUrl" ); String pluginUrl = value.get( "pluginUrl" );
@@ -65,7 +66,7 @@ class IJThemesManager
String sourceCodePath = value.get( "sourceCodePath" ); String sourceCodePath = value.get( "sourceCodePath" );
bundledThemes.add( new IJThemeInfo( name, resourceName, discontinued, dark, bundledThemes.add( new IJThemeInfo( name, resourceName, discontinued, dark,
license, licenseFile, pluginUrl, sourceCodeUrl, sourceCodePath, null, null ) ); license, licenseFile, pluginUrl, sourceCodeUrl, sourceCodePath, null, lafClassName ) );
} }
} }

View File

@@ -33,8 +33,6 @@ import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
import java.net.URL; import java.net.URL;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
@@ -59,7 +57,6 @@ import com.formdev.flatlaf.extras.FlatSVGIcon;
import com.formdev.flatlaf.themes.*; import com.formdev.flatlaf.themes.*;
import com.formdev.flatlaf.ui.FlatListUI; import com.formdev.flatlaf.ui.FlatListUI;
import com.formdev.flatlaf.util.LoggingFacade; import com.formdev.flatlaf.util.LoggingFacade;
import com.formdev.flatlaf.util.StringUtils;
import net.miginfocom.swing.*; import net.miginfocom.swing.*;
/** /**
@@ -82,14 +79,13 @@ public class IJThemesPanel
}; };
private Window window; private Window window;
private File lastDirectory;
private boolean isAdjustingThemesList; private boolean isAdjustingThemesList;
private long lastLafChangeTime = System.currentTimeMillis(); private long lastLafChangeTime = System.currentTimeMillis();
public IJThemesPanel() { public IJThemesPanel() {
initComponents(); initComponents();
saveButton.setEnabled( false ); pluginButton.setEnabled( false );
sourceCodeButton.setEnabled( false ); sourceCodeButton.setEnabled( false );
// create renderer // create renderer
@@ -144,7 +140,7 @@ public class IJThemesPanel
private String buildToolTip( IJThemeInfo ti ) { private String buildToolTip( IJThemeInfo ti ) {
if( ti.themeFile != null ) if( ti.themeFile != null )
return ti.themeFile.getPath(); return ti.themeFile.getPath();
if( ti.resourceName == null ) if( ti.license == null )
return ti.name; return ti.name;
return "Name: " + ti.name return "Name: " + ti.name
@@ -238,7 +234,6 @@ public class IJThemesPanel
for( int i = 0; i < themes.size(); i++ ) { for( int i = 0; i < themes.size(); i++ ) {
IJThemeInfo theme = themes.get( i ); IJThemeInfo theme = themes.get( i );
if( oldSel.name.equals( theme.name ) && if( oldSel.name.equals( theme.name ) &&
Objects.equals( oldSel.resourceName, theme.resourceName ) &&
Objects.equals( oldSel.themeFile, theme.themeFile ) && Objects.equals( oldSel.themeFile, theme.themeFile ) &&
Objects.equals( oldSel.lafClassName, theme.lafClassName ) ) Objects.equals( oldSel.lafClassName, theme.lafClassName ) )
{ {
@@ -274,9 +269,8 @@ public class IJThemesPanel
private void themesListValueChanged( ListSelectionEvent e ) { private void themesListValueChanged( ListSelectionEvent e ) {
IJThemeInfo themeInfo = themesList.getSelectedValue(); IJThemeInfo themeInfo = themesList.getSelectedValue();
boolean bundledTheme = (themeInfo != null && themeInfo.resourceName != null); pluginButton.setEnabled( themeInfo != null && themeInfo.pluginUrl != null );
saveButton.setEnabled( bundledTheme ); sourceCodeButton.setEnabled( themeInfo != null && themeInfo.sourceCodePath != null );
sourceCodeButton.setEnabled( bundledTheme );
if( e.getValueIsAdjusting() || isAdjustingThemesList ) if( e.getValueIsAdjusting() || isAdjustingThemesList )
return; return;
@@ -307,21 +301,21 @@ public class IJThemesPanel
FlatAnimatedLafChange.showSnapshot(); FlatAnimatedLafChange.showSnapshot();
try { try {
if( themeInfo.themeFile.getName().endsWith( ".properties" ) ) { if( themeInfo.themeFile.getName().endsWith( ".properties" ) )
FlatLaf.setup( new FlatPropertiesLaf( themeInfo.name, themeInfo.themeFile ) ); FlatLaf.setup( new FlatPropertiesLaf( themeInfo.name, themeInfo.themeFile ) );
} else else
FlatLaf.setup( IntelliJTheme.createLaf( new FileInputStream( themeInfo.themeFile ) ) ); FlatLaf.setup( IntelliJTheme.createLaf( new FileInputStream( themeInfo.themeFile ) ) );
DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME, DemoPrefs.FILE_PREFIX + themeInfo.themeFile ); DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME_FILE, themeInfo.themeFile.getAbsolutePath() );
} catch( Exception ex ) { } catch( Exception ex ) {
LoggingFacade.INSTANCE.logSevere( null, ex ); LoggingFacade.INSTANCE.logSevere( null, ex );
showInformationDialog( "Failed to load '" + themeInfo.themeFile + "'.", ex ); showInformationDialog( "Failed to load '" + themeInfo.themeFile + "'.", ex );
} }
} else { } else {
FlatAnimatedLafChange.showSnapshot(); JOptionPane.showMessageDialog( SwingUtilities.windowForComponent( this ),
"Missing lafClassName for '" + themeInfo.name + "'",
IntelliJTheme.setup( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.resourceName ) ); "FlatLaf", JOptionPane.INFORMATION_MESSAGE );
DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME, DemoPrefs.RESOURCE_PREFIX + themeInfo.resourceName ); return;
} }
// update all components // update all components
@@ -329,56 +323,31 @@ public class IJThemesPanel
FlatAnimatedLafChange.hideSnapshotWithAnimation(); FlatAnimatedLafChange.hideSnapshotWithAnimation();
} }
private void saveTheme() { private void browsePlugin() {
IJThemeInfo themeInfo = themesList.getSelectedValue(); IJThemeInfo themeInfo = themesList.getSelectedValue();
if( themeInfo == null || themeInfo.resourceName == null ) if( themeInfo == null || themeInfo.pluginUrl == null )
return; return;
JFileChooser fileChooser = new JFileChooser(); browse( themeInfo.pluginUrl );
fileChooser.setSelectedFile( new File( lastDirectory, themeInfo.resourceName ) );
if( fileChooser.showSaveDialog( SwingUtilities.windowForComponent( this ) ) != JFileChooser.APPROVE_OPTION )
return;
File file = fileChooser.getSelectedFile();
lastDirectory = file.getParentFile();
// save theme
try {
Files.copy( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.resourceName ),
file.toPath(), StandardCopyOption.REPLACE_EXISTING );
} catch( IOException ex ) {
showInformationDialog( "Failed to save theme to '" + file + "'.", ex );
return;
}
// save license
if( themeInfo.licenseFile != null ) {
try {
File licenseFile = new File( file.getParentFile(),
StringUtils.removeTrailing( file.getName(), ".theme.json" ) +
themeInfo.licenseFile.substring( themeInfo.licenseFile.indexOf( '.' ) ) );
Files.copy( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.licenseFile ),
licenseFile.toPath(), StandardCopyOption.REPLACE_EXISTING );
} catch( IOException ex ) {
showInformationDialog( "Failed to save theme license to '" + file + "'.", ex );
return;
}
}
} }
private void browseSourceCode() { private void browseSourceCode() {
IJThemeInfo themeInfo = themesList.getSelectedValue(); IJThemeInfo themeInfo = themesList.getSelectedValue();
if( themeInfo == null || themeInfo.resourceName == null ) if( themeInfo == null || themeInfo.sourceCodeUrl == null )
return; return;
String themeUrl = themeInfo.sourceCodeUrl; String themeUrl = themeInfo.sourceCodeUrl;
if( themeInfo.sourceCodePath != null ) if( themeInfo.sourceCodePath != null )
themeUrl += '/' + themeInfo.sourceCodePath; themeUrl += '/' + themeInfo.sourceCodePath;
themeUrl = themeUrl.replace( " ", "%20" ); browse( themeUrl );
}
private void browse( String url ) {
url = url.replace( " ", "%20" );
try { try {
Desktop.getDesktop().browse( new URI( themeUrl ) ); Desktop.getDesktop().browse( new URI( url ) );
} catch( IOException | URISyntaxException ex ) { } catch( IOException | URISyntaxException ex ) {
showInformationDialog( "Failed to browse '" + themeUrl + "'.", ex ); showInformationDialog( "Failed to browse '" + url + "'.", ex );
} }
} }
@@ -414,7 +383,10 @@ public class IJThemesPanel
private void lafChanged( PropertyChangeEvent e ) { private void lafChanged( PropertyChangeEvent e ) {
if( "lookAndFeel".equals( e.getPropertyName() ) ) { if( "lookAndFeel".equals( e.getPropertyName() ) ) {
selectedCurrentLookAndFeel(); // use invokeLater() because KEY_LAF_THEME_FILE is updated after this event
EventQueue.invokeLater( () -> {
selectedCurrentLookAndFeel();
} );
lastLafChangeTime = System.currentTimeMillis(); lastLafChangeTime = System.currentTimeMillis();
} }
} }
@@ -430,19 +402,19 @@ public class IJThemesPanel
if( laf instanceof FlatLaf ) { if( laf instanceof FlatLaf ) {
List<Class<?>> lafClasses = new ArrayList<>(); List<Class<?>> lafClasses = new ArrayList<>();
// same as in UIDefaultsLoader.getLafClassesForDefaultsLoading()
for( Class<?> lafClass = laf.getClass();
FlatLaf.class.isAssignableFrom( lafClass );
lafClass = lafClass.getSuperclass() )
{
lafClasses.add( 0, lafClass );
}
// same as in IntelliJTheme.ThemeLaf.getLafClassesForDefaultsLoading()
if( laf instanceof IntelliJTheme.ThemeLaf ) { if( laf instanceof IntelliJTheme.ThemeLaf ) {
boolean dark = ((FlatLaf)laf).isDark(); boolean dark = ((FlatLaf)laf).isDark();
lafClasses.add( FlatLaf.class ); lafClasses.add( 1, dark ? FlatDarkLaf.class : FlatLightLaf.class );
lafClasses.add( dark ? FlatDarkLaf.class : FlatLightLaf.class ); lafClasses.add( 2, dark ? FlatDarculaLaf.class : FlatIntelliJLaf.class );
lafClasses.add( dark ? FlatDarculaLaf.class : FlatIntelliJLaf.class );
lafClasses.add( IntelliJTheme.ThemeLaf.class );
} else {
for( Class<?> lafClass = laf.getClass();
FlatLaf.class.isAssignableFrom( lafClass );
lafClass = lafClass.getSuperclass() )
{
lafClasses.add( 0, lafClass );
}
} }
boolean reload = false; boolean reload = false;
@@ -469,23 +441,19 @@ public class IJThemesPanel
} }
private void selectedCurrentLookAndFeel() { private void selectedCurrentLookAndFeel() {
LookAndFeel lookAndFeel = UIManager.getLookAndFeel();
String theme = UIManager.getLookAndFeelDefaults().getString( DemoPrefs.THEME_UI_KEY );
if( theme == null && (lookAndFeel instanceof IntelliJTheme.ThemeLaf || lookAndFeel instanceof FlatPropertiesLaf) )
return;
Predicate<IJThemeInfo> test; Predicate<IJThemeInfo> test;
if( theme != null && theme.startsWith( DemoPrefs.RESOURCE_PREFIX ) ) { String lafClassName = UIManager.getLookAndFeel().getClass().getName();
String resourceName = theme.substring( DemoPrefs.RESOURCE_PREFIX.length() ); if( FlatPropertiesLaf.class.getName().equals( lafClassName ) ||
test = ti -> Objects.equals( ti.resourceName, resourceName ); IntelliJTheme.ThemeLaf.class.getName().equals( lafClassName ) )
} else if( theme != null && theme.startsWith( DemoPrefs.FILE_PREFIX ) ) { {
File themeFile = new File( theme.substring( DemoPrefs.FILE_PREFIX.length() ) ); String themeFileName = DemoPrefs.getState().get( DemoPrefs.KEY_LAF_THEME_FILE, "" );
if( themeFileName == null )
return;
File themeFile = new File( themeFileName );
test = ti -> Objects.equals( ti.themeFile, themeFile ); test = ti -> Objects.equals( ti.themeFile, themeFile );
} else { } else
String lafClassName = lookAndFeel.getClass().getName();
test = ti -> Objects.equals( ti.lafClassName, lafClassName ); test = ti -> Objects.equals( ti.lafClassName, lafClassName );
}
int newSel = -1; int newSel = -1;
for( int i = 0; i < themes.size(); i++ ) { for( int i = 0; i < themes.size(); i++ ) {
@@ -512,7 +480,7 @@ public class IJThemesPanel
// JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents // JFormDesigner - Component initialization - DO NOT MODIFY //GEN-BEGIN:initComponents
JLabel themesLabel = new JLabel(); JLabel themesLabel = new JLabel();
toolBar = new JToolBar(); toolBar = new JToolBar();
saveButton = new JButton(); pluginButton = new JButton();
sourceCodeButton = new JButton(); sourceCodeButton = new JButton();
filterComboBox = new JComboBox<>(); filterComboBox = new JComboBox<>();
themesScrollPane = new JScrollPane(); themesScrollPane = new JScrollPane();
@@ -535,11 +503,11 @@ public class IJThemesPanel
{ {
toolBar.setFloatable(false); toolBar.setFloatable(false);
//---- saveButton ---- //---- pluginButton ----
saveButton.setToolTipText("Save .theme.json of selected IntelliJ theme to file."); pluginButton.setToolTipText("Opens the IntelliJ plugin page of selected IntelliJ theme in the browser.");
saveButton.setIcon(new FlatSVGIcon("com/formdev/flatlaf/demo/icons/download.svg")); pluginButton.setIcon(new FlatSVGIcon("com/formdev/flatlaf/demo/icons/plugin.svg"));
saveButton.addActionListener(e -> saveTheme()); pluginButton.addActionListener(e -> browsePlugin());
toolBar.add(saveButton); toolBar.add(pluginButton);
//---- sourceCodeButton ---- //---- sourceCodeButton ----
sourceCodeButton.setToolTipText("Opens the source code repository of selected IntelliJ theme in the browser."); sourceCodeButton.setToolTipText("Opens the source code repository of selected IntelliJ theme in the browser.");
@@ -574,7 +542,7 @@ public class IJThemesPanel
// JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables // JFormDesigner - Variables declaration - DO NOT MODIFY //GEN-BEGIN:variables
private JToolBar toolBar; private JToolBar toolBar;
private JButton saveButton; private JButton pluginButton;
private JButton sourceCodeButton; private JButton sourceCodeButton;
private JComboBox<String> filterComboBox; private JComboBox<String> filterComboBox;
private JScrollPane themesScrollPane; private JScrollPane themesScrollPane;

View File

@@ -1,4 +1,4 @@
JFDML JFormDesigner: "8.1.0.0.283" Java: "19.0.2" encoding: "UTF-8" JFDML JFormDesigner: "8.3" encoding: "UTF-8"
new FormModel { new FormModel {
contentType: "form/swing" contentType: "form/swing"
@@ -22,10 +22,10 @@ new FormModel {
name: "toolBar" name: "toolBar"
"floatable": false "floatable": false
add( new FormComponent( "javax.swing.JButton" ) { add( new FormComponent( "javax.swing.JButton" ) {
name: "saveButton" name: "pluginButton"
"toolTipText": "Save .theme.json of selected IntelliJ theme to file." "toolTipText": "Opens the IntelliJ plugin page of selected IntelliJ theme in the browser."
"icon": new com.jformdesigner.model.SwingIcon( 0, "/com/formdev/flatlaf/demo/icons/download.svg" ) "icon": new com.jformdesigner.model.SwingIcon( 0, "/com/formdev/flatlaf/demo/icons/plugin.svg" )
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "saveTheme", false ) ) addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "browsePlugin", false ) )
} ) } )
add( new FormComponent( "javax.swing.JButton" ) { add( new FormComponent( "javax.swing.JButton" ) {
name: "sourceCodeButton" name: "sourceCodeButton"

View File

@@ -1,7 +0,0 @@
<!-- Copyright 2000-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. -->
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<g fill="none" fill-rule="evenodd">
<polygon fill="#6E6E6E" points="9 7 12 7 8 11 4 7 7 7 7 2 9 2" transform="matrix(-1 0 0 1 16 0)"/>
<rect width="12" height="2" x="2" y="12" fill="#6E6E6E"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 448 B

View File

@@ -0,0 +1,4 @@
<!-- Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 4H7C5.34315 4 4 5.34315 4 7V9C4 10.6569 5.34315 12 7 12H11V11V10V6V5V4ZM12 5V4C12 3.44772 11.5523 3 11 3H7C5.13616 3 3.57006 4.27477 3.12602 6H1C0.447715 6 0 6.44772 0 7V9C0 9.55228 0.447715 10 1 10H3.12602C3.57006 11.7252 5.13616 13 7 13H11C11.5523 13 12 12.5523 12 12V11H15.5C15.7761 11 16 10.7761 16 10.5C16 10.2239 15.7761 10 15.5 10H12V6H15.5C15.7761 6 16 5.77614 16 5.5C16 5.22386 15.7761 5 15.5 5H12ZM3 7V9H1V7L3 7Z" fill="#6C707E"/>
</svg>

After

Width:  |  Height:  |  Size: 724 B

View File

@@ -0,0 +1,4 @@
<!-- Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. -->
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 4H7C5.34315 4 4 5.34315 4 7V9C4 10.6569 5.34315 12 7 12H11V11V10V6V5V4ZM12 5V4C12 3.44772 11.5523 3 11 3H7C5.13616 3 3.57006 4.27477 3.12602 6H1C0.447715 6 0 6.44772 0 7V9C0 9.55228 0.447715 10 1 10H3.12602C3.57006 11.7252 5.13616 13 7 13H11C11.5523 13 12 12.5523 12 12V11H15.5C15.7761 11 16 10.7761 16 10.5C16 10.2239 15.7761 10 15.5 10H12V6H15.5C15.7761 6 16 5.77614 16 5.5C16 5.22386 15.7761 5 15.5 5H12ZM3 7V9H1V7L3 7Z" fill="#CED0D6"/>
</svg>

After

Width:  |  Height:  |  Size: 724 B

View File

@@ -1,6 +1,7 @@
{ {
"arc-theme.theme.json": { "arc-theme.theme.json": {
"name": "Arc", "name": "Arc",
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatArcIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "arc-themes.LICENSE.txt", "licenseFile": "arc-themes.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12451-arc-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12451-arc-theme",
@@ -9,6 +10,7 @@
}, },
"arc-theme-orange.theme.json": { "arc-theme-orange.theme.json": {
"name": "Arc - Orange", "name": "Arc - Orange",
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatArcOrangeIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "arc-themes.LICENSE.txt", "licenseFile": "arc-themes.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12451-arc-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12451-arc-theme",
@@ -18,6 +20,7 @@
"arc_theme_dark.theme.json": { "arc_theme_dark.theme.json": {
"name": "Arc Dark", "name": "Arc Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatArcDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "arc-themes.LICENSE.txt", "licenseFile": "arc-themes.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/15175-arc-theme-dark", "pluginUrl": "https://plugins.jetbrains.com/plugin/15175-arc-theme-dark",
@@ -27,6 +30,7 @@
"arc_theme_dark_orange.theme.json": { "arc_theme_dark_orange.theme.json": {
"name": "Arc Dark - Orange", "name": "Arc Dark - Orange",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatArcDarkOrangeIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "arc-themes.LICENSE.txt", "licenseFile": "arc-themes.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/15175-arc-theme-dark", "pluginUrl": "https://plugins.jetbrains.com/plugin/15175-arc-theme-dark",
@@ -36,6 +40,7 @@
"Carbon.theme.json": { "Carbon.theme.json": {
"name": "Carbon", "name": "Carbon",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatCarbonIJTheme",
"license": "Apache License 2.0", "license": "Apache License 2.0",
"licenseFile": "arc-themes.LICENSE.txt", "licenseFile": "arc-themes.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12280-carbon", "pluginUrl": "https://plugins.jetbrains.com/plugin/12280-carbon",
@@ -45,6 +50,7 @@
"Cobalt_2.theme.json": { "Cobalt_2.theme.json": {
"name": "Cobalt 2", "name": "Cobalt 2",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatCobalt2IJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Cobalt_2.LICENSE.txt", "licenseFile": "Cobalt_2.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/10745-cobalt-2", "pluginUrl": "https://plugins.jetbrains.com/plugin/10745-cobalt-2",
@@ -54,6 +60,7 @@
"Cyan.theme.json": { "Cyan.theme.json": {
"name": "Cyan light", "name": "Cyan light",
"license": "MIT", "license": "MIT",
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatCyanLightIJTheme",
"licenseFile": "Cyan.LICENSE.txt", "licenseFile": "Cyan.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12102-cyan-light-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12102-cyan-light-theme",
"sourceCodeUrl": "https://github.com/OlyaB/CyanTheme", "sourceCodeUrl": "https://github.com/OlyaB/CyanTheme",
@@ -62,6 +69,7 @@
"DarkFlatTheme.theme.json": { "DarkFlatTheme.theme.json": {
"name": "Dark Flat", "name": "Dark Flat",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatDarkFlatIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "DarkFlatTheme.LICENSE.txt", "licenseFile": "DarkFlatTheme.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12165-dark-flat-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12165-dark-flat-theme",
@@ -71,6 +79,7 @@
"DarkPurple.theme.json": { "DarkPurple.theme.json": {
"name": "Dark purple", "name": "Dark purple",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatDarkPurpleIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "DarkPurple.LICENSE.txt", "licenseFile": "DarkPurple.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12100-dark-purple-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12100-dark-purple-theme",
@@ -80,6 +89,7 @@
"Dracula.theme.json": { "Dracula.theme.json": {
"name": "Dracula", "name": "Dracula",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatDraculaIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Dracula.LICENSE.txt", "licenseFile": "Dracula.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12275-dracula-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12275-dracula-theme",
@@ -89,6 +99,7 @@
"Gradianto_dark_fuchsia.theme.json": { "Gradianto_dark_fuchsia.theme.json": {
"name": "Gradianto Dark Fuchsia", "name": "Gradianto Dark Fuchsia",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatGradiantoDarkFuchsiaIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Gradianto.LICENSE.txt", "licenseFile": "Gradianto.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12334-gradianto", "pluginUrl": "https://plugins.jetbrains.com/plugin/12334-gradianto",
@@ -98,6 +109,7 @@
"Gradianto_deep_ocean.theme.json": { "Gradianto_deep_ocean.theme.json": {
"name": "Gradianto Deep Ocean", "name": "Gradianto Deep Ocean",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatGradiantoDeepOceanIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Gradianto.LICENSE.txt", "licenseFile": "Gradianto.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12334-gradianto", "pluginUrl": "https://plugins.jetbrains.com/plugin/12334-gradianto",
@@ -107,6 +119,7 @@
"Gradianto_midnight_blue.theme.json": { "Gradianto_midnight_blue.theme.json": {
"name": "Gradianto Midnight Blue", "name": "Gradianto Midnight Blue",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatGradiantoMidnightBlueIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Gradianto.LICENSE.txt", "licenseFile": "Gradianto.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12334-gradianto", "pluginUrl": "https://plugins.jetbrains.com/plugin/12334-gradianto",
@@ -116,6 +129,7 @@
"Gradianto_Nature_Green.theme.json": { "Gradianto_Nature_Green.theme.json": {
"name": "Gradianto Nature Green", "name": "Gradianto Nature Green",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatGradiantoNatureGreenIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Gradianto.LICENSE.txt", "licenseFile": "Gradianto.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12334-gradianto", "pluginUrl": "https://plugins.jetbrains.com/plugin/12334-gradianto",
@@ -125,6 +139,7 @@
"Gray.theme.json": { "Gray.theme.json": {
"name": "Gray", "name": "Gray",
"license": "MIT", "license": "MIT",
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatGrayIJTheme",
"licenseFile": "Gray.LICENSE.txt", "licenseFile": "Gray.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12103-gray-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12103-gray-theme",
"sourceCodeUrl": "https://github.com/OlyaB/GreyTheme", "sourceCodeUrl": "https://github.com/OlyaB/GreyTheme",
@@ -133,6 +148,7 @@
"gruvbox_dark_hard.theme.json": { "gruvbox_dark_hard.theme.json": {
"name": "Gruvbox Dark Hard", "name": "Gruvbox Dark Hard",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkHardIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "gruvbox_theme.LICENSE.txt", "licenseFile": "gruvbox_theme.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12310-gruvbox-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12310-gruvbox-theme",
@@ -142,6 +158,7 @@
"gruvbox_dark_medium.theme.json": { "gruvbox_dark_medium.theme.json": {
"name": "Gruvbox Dark Medium", "name": "Gruvbox Dark Medium",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkMediumIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "gruvbox_theme.LICENSE.txt", "licenseFile": "gruvbox_theme.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12310-gruvbox-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12310-gruvbox-theme",
@@ -151,6 +168,7 @@
"gruvbox_dark_soft.theme.json": { "gruvbox_dark_soft.theme.json": {
"name": "Gruvbox Dark Soft", "name": "Gruvbox Dark Soft",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkSoftIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "gruvbox_theme.LICENSE.txt", "licenseFile": "gruvbox_theme.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12310-gruvbox-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12310-gruvbox-theme",
@@ -160,6 +178,7 @@
"HiberbeeDark.theme.json": { "HiberbeeDark.theme.json": {
"name": "Hiberbee Dark", "name": "Hiberbee Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatHiberbeeDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Hiberbee.LICENSE.txt", "licenseFile": "Hiberbee.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12118-hiberbee-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12118-hiberbee-theme",
@@ -169,6 +188,7 @@
"HighContrast.theme.json": { "HighContrast.theme.json": {
"name": "High Contrast", "name": "High Contrast",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatHighContrastIJTheme",
"license": "Apache License 2.0", "license": "Apache License 2.0",
"licenseFile": "HighContrast.LICENSE.txt", "licenseFile": "HighContrast.LICENSE.txt",
"sourceCodeUrl": "https://github.com/JetBrains/intellij-community", "sourceCodeUrl": "https://github.com/JetBrains/intellij-community",
@@ -177,6 +197,7 @@
"LightFlatTheme.theme.json": { "LightFlatTheme.theme.json": {
"name": "Light Flat", "name": "Light Flat",
"license": "MIT", "license": "MIT",
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatLightFlatIJTheme",
"licenseFile": "LightFlatTheme.LICENSE.txt", "licenseFile": "LightFlatTheme.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12169-light-flat-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12169-light-flat-theme",
"sourceCodeUrl": "https://github.com/nerzhulart/LightFlatTheme", "sourceCodeUrl": "https://github.com/nerzhulart/LightFlatTheme",
@@ -185,6 +206,7 @@
"MaterialTheme.theme.json": { "MaterialTheme.theme.json": {
"name": "Material Design Dark", "name": "Material Design Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatMaterialDesignDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "MaterialTheme.LICENSE.txt", "licenseFile": "MaterialTheme.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12134-material-design-dark-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12134-material-design-dark-theme",
@@ -194,6 +216,7 @@
"Monocai.theme.json": { "Monocai.theme.json": {
"name": "Monocai", "name": "Monocai",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatMonocaiIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Monocai.LICENSE.txt", "licenseFile": "Monocai.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12163-monocai-color-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12163-monocai-color-theme",
@@ -204,6 +227,7 @@
"name": "Monokai Pro", "name": "Monokai Pro",
"discontinued": true, "discontinued": true,
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatMonokaiProIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Monokai_Pro.LICENSE.txt", "licenseFile": "Monokai_Pro.LICENSE.txt",
"sourceCodeUrl": "https://github.com/subtheme-dev/monokai-pro" "sourceCodeUrl": "https://github.com/subtheme-dev/monokai-pro"
@@ -211,6 +235,7 @@
"nord.theme.json": { "nord.theme.json": {
"name": "Nord", "name": "Nord",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatNordIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "nord.LICENSE.txt", "licenseFile": "nord.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/10321-nord", "pluginUrl": "https://plugins.jetbrains.com/plugin/10321-nord",
@@ -220,6 +245,7 @@
"one_dark.theme.json": { "one_dark.theme.json": {
"name": "One Dark", "name": "One Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatOneDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "one_dark.LICENSE.txt", "licenseFile": "one_dark.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/11938-one-dark-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/11938-one-dark-theme",
@@ -230,6 +256,7 @@
"name": "Solarized Dark", "name": "Solarized Dark",
"discontinued": true, "discontinued": true,
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatSolarizedDarkIJTheme",
"license": "The Unlicense", "license": "The Unlicense",
"licenseFile": "Solarized.LICENSE.txt", "licenseFile": "Solarized.LICENSE.txt",
"sourceCodeUrl": "https://github.com/4lex4/intellij-platform-solarized", "sourceCodeUrl": "https://github.com/4lex4/intellij-platform-solarized",
@@ -238,6 +265,7 @@
"SolarizedLight.theme.json": { "SolarizedLight.theme.json": {
"name": "Solarized Light", "name": "Solarized Light",
"discontinued": true, "discontinued": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatSolarizedLightIJTheme",
"license": "The Unlicense", "license": "The Unlicense",
"licenseFile": "Solarized.LICENSE.txt", "licenseFile": "Solarized.LICENSE.txt",
"sourceCodeUrl": "https://github.com/4lex4/intellij-platform-solarized", "sourceCodeUrl": "https://github.com/4lex4/intellij-platform-solarized",
@@ -246,6 +274,7 @@
"Spacegray.theme.json": { "Spacegray.theme.json": {
"name": "Spacegray", "name": "Spacegray",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatSpacegrayIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Spacegray.LICENSE.txt", "licenseFile": "Spacegray.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12122-spacegray-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12122-spacegray-theme",
@@ -255,6 +284,7 @@
"vuesion_theme.theme.json": { "vuesion_theme.theme.json": {
"name": "Vuesion", "name": "Vuesion",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatVuesionIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "vuesion_theme.LICENSE.txt", "licenseFile": "vuesion_theme.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/12226-vuesion-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/12226-vuesion-theme",
@@ -264,6 +294,7 @@
"Xcode-Dark.theme.json": { "Xcode-Dark.theme.json": {
"name": "Xcode-Dark", "name": "Xcode-Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.FlatXcodeDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "Xcode-Dark.LICENSE.txt", "licenseFile": "Xcode-Dark.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/13106-xcode-dark-theme", "pluginUrl": "https://plugins.jetbrains.com/plugin/13106-xcode-dark-theme",
@@ -274,6 +305,7 @@
"material-theme-ui-lite/Arc Dark.theme.json": { "material-theme-ui-lite/Arc Dark.theme.json": {
"name": "Material Theme UI Lite / Arc Dark", "name": "Material Theme UI Lite / Arc Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -283,6 +315,7 @@
"material-theme-ui-lite/Atom One Dark.theme.json": { "material-theme-ui-lite/Atom One Dark.theme.json": {
"name": "Material Theme UI Lite / Atom One Dark", "name": "Material Theme UI Lite / Atom One Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -291,6 +324,7 @@
}, },
"material-theme-ui-lite/Atom One Light.theme.json": { "material-theme-ui-lite/Atom One Light.theme.json": {
"name": "Material Theme UI Lite / Atom One Light", "name": "Material Theme UI Lite / Atom One Light",
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneLightIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -300,6 +334,7 @@
"material-theme-ui-lite/Dracula.theme.json": { "material-theme-ui-lite/Dracula.theme.json": {
"name": "Material Theme UI Lite / Dracula", "name": "Material Theme UI Lite / Dracula",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatDraculaIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -308,6 +343,7 @@
}, },
"material-theme-ui-lite/GitHub.theme.json": { "material-theme-ui-lite/GitHub.theme.json": {
"name": "Material Theme UI Lite / GitHub", "name": "Material Theme UI Lite / GitHub",
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatGitHubIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -317,6 +353,7 @@
"material-theme-ui-lite/GitHub Dark.theme.json": { "material-theme-ui-lite/GitHub Dark.theme.json": {
"name": "Material Theme UI Lite / GitHub Dark", "name": "Material Theme UI Lite / GitHub Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatGitHubDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -325,6 +362,7 @@
}, },
"material-theme-ui-lite/Light Owl.theme.json": { "material-theme-ui-lite/Light Owl.theme.json": {
"name": "Material Theme UI Lite / Light Owl", "name": "Material Theme UI Lite / Light Owl",
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatLightOwlIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -334,6 +372,7 @@
"material-theme-ui-lite/Material Darker.theme.json": { "material-theme-ui-lite/Material Darker.theme.json": {
"name": "Material Theme UI Lite / Material Darker", "name": "Material Theme UI Lite / Material Darker",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDarkerIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -343,6 +382,7 @@
"material-theme-ui-lite/Material Deep Ocean.theme.json": { "material-theme-ui-lite/Material Deep Ocean.theme.json": {
"name": "Material Theme UI Lite / Material Deep Ocean", "name": "Material Theme UI Lite / Material Deep Ocean",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDeepOceanIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -351,6 +391,7 @@
}, },
"material-theme-ui-lite/Material Lighter.theme.json": { "material-theme-ui-lite/Material Lighter.theme.json": {
"name": "Material Theme UI Lite / Material Lighter", "name": "Material Theme UI Lite / Material Lighter",
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialLighterIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -360,6 +401,7 @@
"material-theme-ui-lite/Material Oceanic.theme.json": { "material-theme-ui-lite/Material Oceanic.theme.json": {
"name": "Material Theme UI Lite / Material Oceanic", "name": "Material Theme UI Lite / Material Oceanic",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -369,6 +411,7 @@
"material-theme-ui-lite/Material Palenight.theme.json": { "material-theme-ui-lite/Material Palenight.theme.json": {
"name": "Material Theme UI Lite / Material Palenight", "name": "Material Theme UI Lite / Material Palenight",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialPalenightIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -378,6 +421,7 @@
"material-theme-ui-lite/Monokai Pro.theme.json": { "material-theme-ui-lite/Monokai Pro.theme.json": {
"name": "Material Theme UI Lite / Monokai Pro", "name": "Material Theme UI Lite / Monokai Pro",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMonokaiProIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -387,6 +431,7 @@
"material-theme-ui-lite/Moonlight.theme.json": { "material-theme-ui-lite/Moonlight.theme.json": {
"name": "Material Theme UI Lite / Moonlight", "name": "Material Theme UI Lite / Moonlight",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMoonlightIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -396,6 +441,7 @@
"material-theme-ui-lite/Night Owl.theme.json": { "material-theme-ui-lite/Night Owl.theme.json": {
"name": "Material Theme UI Lite / Night Owl", "name": "Material Theme UI Lite / Night Owl",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatNightOwlIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -405,6 +451,7 @@
"material-theme-ui-lite/Solarized Dark.theme.json": { "material-theme-ui-lite/Solarized Dark.theme.json": {
"name": "Material Theme UI Lite / Solarized Dark", "name": "Material Theme UI Lite / Solarized Dark",
"dark": true, "dark": true,
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedDarkIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",
@@ -413,6 +460,7 @@
}, },
"material-theme-ui-lite/Solarized Light.theme.json": { "material-theme-ui-lite/Solarized Light.theme.json": {
"name": "Material Theme UI Lite / Solarized Light", "name": "Material Theme UI Lite / Solarized Light",
"lafClassName": "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedLightIJTheme",
"license": "MIT", "license": "MIT",
"licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt", "licenseFile": "material-theme-ui-lite/Material Theme UI Lite.LICENSE.txt",
"pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui", "pluginUrl": "https://plugins.jetbrains.com/plugin/8006-material-theme-ui",

View File

@@ -576,7 +576,7 @@ public class FlatTestFrame
UIManager.put( "defaultFont", null ); UIManager.put( "defaultFont", null );
LookAndFeel lookAndFeel = UIManager.getLookAndFeel(); LookAndFeel lookAndFeel = UIManager.getLookAndFeel();
IntelliJTheme theme = (lookAndFeel instanceof IntelliJTheme.ThemeLaf) IntelliJTheme theme = (lookAndFeel.getClass() == IntelliJTheme.ThemeLaf.class)
? ((IntelliJTheme.ThemeLaf)lookAndFeel).getTheme() ? ((IntelliJTheme.ThemeLaf)lookAndFeel).getTheme()
: null; : null;
String nameForProperties = null; String nameForProperties = null;