9

我试图通过 CSS 样式表简单地更新 Eclipse Juno 4.2 的外观。我看过一些教程,还有一个 stackoverflow 问题:

我已经安装了CSS 间谍工具,但这只能让我进行临时更改。叹。我已经进入了org.eclipse.platform_4.2.0.v201206081400插件文件夹,并使用了plugin.xml.,但是我在那里所做的任何更改都没有任何影响(即使在重新启动之后)。

如何创建一个新主题并将其应用而不创建、编译和安装整个 Eclipse 插件项目到我的本地环境?或者,更好的是,我可以只修改现有主题吗?

4

2 回答 2

15

这是我如何让它工作的。

使用插件

我已经下载了此处描述的Eclipse UI 主题插件(直接链接到存档)。但是我没有将其解压缩到目录中,而是将其解压缩到. 我还更改了它的权限以允许每个人修改它的文件。dropinsplugins

此时你有:

插件/com.github.eclipsecolortheme.themes_1.0.0.201207121019/
├── com
│ └── github
│ └── eclipsecolortheme
│ └── 主题
│ └── Activator.class
├── META-INF
│ └── MANIFEST.MF
├── plugin.xml
└── 主题
    └── 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
│ └── ...
├── 图片
│ ├── gtkGrey.png
│ ├── gtkHandleDark.png
│ ├── gtkHandle.png
│ ├── gtkTSFrameDark.png
│ ├── gtkTSFrame.png
│ └── ...
├── META-INF
│ ├── eclipse.inf
│ ├── ECLIPSE_.RSA
│ ├── ECLIPSE_.SF
│ └── MANIFEST.MF
├── 平台.jar
├── plugin.properties
├── plugin.xml
└── ...

使用选项重新启动 Eclipse 后,-clean您将在所有主题列表中看到一个新创建的项目: 新注册的主题

UPD。1

对于我的安装,似乎对 CSS 的更改适用于 Eclipse 重新启动(File -> Restart,或者只是退出并手动启动它)。

我注意到的唯一奇怪的行为是~/.e4css目录中的 CSS 文件(如果有的话)会覆盖插件目录中的 CSS 文件。我不确定它来自哪里,但我可以安全地从中删除任何文件。我也不知道这个目录是否存在于非 Linux 系统上,但如果存在,我猜它应该位于用户主目录中的某个位置,或者可能位于Documents.

UPD。2

我刚刚尝试从头开始添加一个新主题,并注意到上面的 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确实有诀窍。

于 2012-08-10T20:29:01.537 回答
3

Launch eclipse with -clean option from command line after you have made changes in css files. Changes are not reflected otherwise. (Alternatively have a look at http://eclipsecolorthemes.org/)

于 2012-08-10T10:38:56.763 回答