我试图通过CSS样式表简单地更新Eclipse Juno 4.2的外观。我看过几个教程,还有一个stackoverflow问题:
我已经安装了CSS spy tool,但这只能让我进行临时更改。叹。我已进入org.eclipse.platform_4.2.0.v201206081400
插件文件夹,并使用plugin.xml
进行了修改,但我所做的任何更改都没有任何效果(即使重启后)。
如何创建新主题并应用它而不创建,编译和安装整个eclipse插件项目到我的本地环境?或者,更好的是,我可以修改现有的主题吗?
答案 0 :(得分:15)
以下是我如何使用它。
我已按照here(direct link所述将 Eclipse UI主题插件下载到存档中。但是我没有将其提取到dropins
目录中,而是将其提取到plugins
中。此外,我更改了其权限,允许每个人修改其文件。
此时你有:
plugins/com.github.eclipsecolortheme.themes_1.0.0.201207121019/ ├── com │ └── github │ └── eclipsecolortheme │ └── themes │ └── Activator.class ├── META-INF │ └── MANIFEST.MF ├── plugin.xml └── themes └── css └── juno.css
juno.css
文件就是你想要的。启动Eclipse后,此主题将在 Appearance - >下提供。 Dark Juno 。
在查看plugin.xml
后,我知道如何在不使用任何插件的情况下创建新主题。
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
<extension
point="org.eclipse.e4.ui.css.swt.theme">
<theme
basestylesheeturi="themes/css/juno.css"
id="com.github.eclipsecolortheme.themes.darkjuno"
label="Dark Juno">
</theme>
</extension>
</plugin>
可以将org.eclipse.e4.ui.css.swt.theme
扩展点添加到现有插件,例如org.eclipse.platform_4.2.0.v201206081400
。此外,其plugin.xml
已经具有此扩展点,您唯一需要做的就是添加适当的theme
。请注意,它必须具有唯一的id
。
<theme
basestylesheeturi="css/my_theme.css"
id="org.eclipse.e4.ui.css.theme.my_theme"
label="My Theme Name">
</theme>
可以将新的CSS文件放入css
目录,该目录已包含默认的主题集。
org.eclipse.platform_4.2.0.v201206081400/ ├── ... ├── css │ ├── e4_basestyle.css │ ├── e4_classic_win7.css │ ├── e4_classic_winxp.css │ ├── e4_default.css │ ├── e4_default_gtk.css │ └── ... ├── images │ ├── gtkGrey.png │ ├── gtkHandleDark.png │ ├── gtkHandle.png │ ├── gtkTSFrameDark.png │ ├── gtkTSFrame.png │ └── ... ├── META-INF │ ├── eclipse.inf │ ├── ECLIPSE_.RSA │ ├── ECLIPSE_.SF │ └── MANIFEST.MF ├── platform.jar ├── plugin.properties ├── plugin.xml └── ...
使用-clean
选项重启Eclipse后,您将在所有主题列表中看到新创建的项目:
对于我的安装,似乎对Eclipse的更改适用于Eclipse重新启动(文件 - >重新启动,或者只是手动退出并启动它)。
我注意到的唯一奇怪的行为是来自~/.e4css
目录(如果存在)的CSS文件覆盖了插件目录中的CSS文件。我不知道它来自哪里,但我可以安全地从中删除任何文件。我也不知道这个目录甚至存在于非Linux系统上,但如果确实如此,我想它应该位于用户主目录的某个位置,或者可能位于Documents
。
我只是尝试从头开始添加一个新主题,并注意到上面的XML中存在一个小错误。为了正确注册新主题,必须具有唯一的id
属性。否则你会收到一个错误:
java.lang.IllegalArgumentException: A theme with the id 'org.eclipse.e4.ui.css.theme.e4_default' is already registered
at org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngine.registerTheme(ThemeEngine.java:186)
...
似乎我说错了只是重新启动Eclipse以注册一个新主题就足够了。但是,eclipse -clean
可以解决问题。
答案 1 :(得分:3)
在css文件中进行更改后,从命令行启动带有-clean选项的eclipse。否则不会反映变化。 (或者看看http://eclipsecolorthemes.org/)