我试图通过CSS样式表简单地更新Eclipse Juno 4.2的外观.我看过几个教程,还有一个stackoverflow问题:
我已经安装了CSS间谍工具,但这只能让我进行临时更改.叹.我已经进入了org.eclipse.platform_4.2.0.v201206081400插件文件夹,并且使用了plugin.xml,但是我所做的任何更改都没有任何效果(即使重新启动后).
如何创建新主题并应用它而不创建,编译和安装整个eclipse插件项目到我的本地环境?或者,更好的是,我可以修改现有主题吗?
Eld*_*mov 15
以下是我如何使用它.
我已经下载了这里描述的Eclipse UI主题插件(直接链接到存档).但我没有把它提取到目录中,而是将其提取出来.我还更改了其权限,允许每个人修改其文件.dropinsplugins
此时你有:
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>
Run Code Online (Sandbox Code Playgroud)
可以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>
Run Code Online (Sandbox Code Playgroud)
可以将新的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)
...
Run Code Online (Sandbox Code Playgroud)
而且似乎我说错了只是重新启动Eclipse以注册新主题就足够了.但是,eclipse -clean诀窍.