aobuchow / eclipse-spectrum-theme Goto Github PK
View Code? Open in Web Editor NEWEclipse plugin which adds the Spectrum theme.
Home Page: https://marketplace.eclipse.org/content/spectrum-dark-theme
License: Eclipse Public License 2.0
Eclipse plugin which adds the Spectrum theme.
Home Page: https://marketplace.eclipse.org/content/spectrum-dark-theme
License: Eclipse Public License 2.0
Hi,
the Javadoc View, and Tooltip/Hover is very hard to read.
For me it is Black font on Black background.
There already has been an issue where it was to light.
#13
Windows
Eclipse 2020-06
Plugin version 1.0.7.202006190441
Hello! 👋
I've seeing the following exceptions when using ansi-econsole with the theme:
java.lang.ExceptionInInitializerError
at java.base/java.lang.J9VMInternals.ensureError(J9VMInternals.java:193)
at java.base/java.lang.J9VMInternals.recordInitializationFailure(J9VMInternals.java:182)
at mnita.ansiconsole.participants.AnsiConsoleStyleListener.<init>(AnsiConsoleStyleListener.java:44)
at mnita.ansiconsole.participants.AnsiConsolePageParticipant.init(AnsiConsolePageParticipant.java:45)
at org.eclipse.ui.internal.console.ConsoleView$3.run(ConsoleView.java:343)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.ui.internal.console.ConsoleView.doCreatePage(ConsoleView.java:340)
at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:369)
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:696)
at org.eclipse.ui.internal.console.ConsoleView.lambda$0(ConsoleView.java:412)
at org.eclipse.ui.internal.console.ConsoleView$$Lambda$918/0000000009018220.run(Unknown Source)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4124)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3791)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1158)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1047)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:658)
at org.eclipse.ui.internal.Workbench$$Lambda$120/0000000000000000.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
Caused by: java.lang.IllegalArgumentException: Argument not valid
at org.eclipse.swt.SWT.error(SWT.java:4704)
at org.eclipse.swt.SWT.error(SWT.java:4638)
at org.eclipse.swt.SWT.error(SWT.java:4609)
at org.eclipse.swt.graphics.RGB.<init>(RGB.java:80)
at mnita.ansiconsole.preferences.AnsiConsolePreferenceUtils.colorFromStringRgb(AnsiConsolePreferenceUtils.java:72)
at mnita.ansiconsole.preferences.AnsiConsolePreferenceUtils.refresh(AnsiConsolePreferenceUtils.java:151)
at mnita.ansiconsole.preferences.AnsiConsolePreferenceUtils.<clinit>(AnsiConsolePreferenceUtils.java:44)
... 35 more
That plugin is unusuccessfully trying to parse one of the debug colors here:
https://github.com/mihnita/ansi-econsole/blob/e962dbf1fa36e7a7e55b3be83ef0b0a4ab487bf7/AnsiConsole/src/mnita/ansiconsole/preferences/AnsiConsolePreferenceUtils.java#L150
Looking at the theme's CSS style sheet, I noticed that there were spaces in some color values:
https://github.com/AObuchow/Eclipse-Modern-Dark-Theme/blob/b2bf890947dd3a517f214cd30f1efba589c0570b/com.aobuchow.themes.moderndark/css/preference_styles.css#L105
I'm guessing this is what is causing the problem. :)
Note: The product build is currently turned off on master branch because it takes much longer to build the entire repo.
So, maybe, this issue won't be that relevant in the future, anymore (e.g. in case we decide to remove the product altogether)
Here's the Problem
The product (built w/ mvn) won't start on Mac (Catalina) and Windows (10).
Here's what the log is saying:
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:81)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
at org.eclipse.equinox.launcher.Main.run(Main.java:1447)
As @vogella pointed out, we can use https://github.com/vogellacompany/tycho-example for testing. For updating the product config, I used the tasks example (i.e. some other example). Maybe, this one can help us at finding what the problem is.
Besides, this example has a projects/folders-structure we could use to clean-up the root folder of this Git repo... (just a thought - and maybe something for another issue). :)
I think it’s just about time to do the first release on the eclipse marketplace.
I believe a logo will be required, which will be for a separate issue.
A license needs to be added to the product as well as for the headers of each css file.
The most obvious choice of license is the EPL2, although I should look into if another eclipse license would be more suitable.
As discussed w/ @AObuchow, we want to have this fixed. :)
Although "Modern Dark" works as a name, it might be worth coming up with a better name. On twitter, an Eclipse contributor mentioned that the word "Modern" can quickly get out-of-sync with changes in UI trends.
@PyvesB suggested naming the theme "Eclipse Spectrum Theme" which sounds nice to me.
To quote his reasoning (in the context of the new logo ideas):
"The dark background and the colored lines reminds me of those color spectrum charts used in physics, chemistry and astronomy. Hence my suggestion: "Eclipse Spectrum Theme". :)"
Ideally, if the plugin is going to be renamed, it should occur before the marketplace release. I could always change the name after the 0.0.1 release, but it might confuse some users (I'm not sure how many downloads the plugin will get for the initial marketplace release, so it might not be a big deal)
All name ideas are welcome :)
Hello!
Today was a debugging session with a colleague! We noticed that the Variables view suffers from a few problems:
Apart from that, the rest of the debugging session went fine, though I don't think I'll convince my colleague to move away from NetBeans today. 😄
Currently the tabstyle css is not well organized. Most of the preferences in this file under .MPartStack should instead be under CTabFolder.
If you move parts around, you usually see a highlight which tells your where your Part will be moved and what area it will use.
On the editor area, those highlights are visible (because the editor area has a slightly lighter colour).
However...
As discussed w/ @AObuchow, we would like to
There are plenty of files that don’t need to be in the repo and should be removed.
The screenshots on the readme are outdated. For instance, they show the read line on inactive tabs which has been removed w/ 1.0.6.
Now that we have a Maven + Tycho build, investigation towards deploying the update site to GitHub should be done.
@PyvesB mentioned using a similar technique for his Ruby plugin. To quote him:
"Just as a heads up, I implemented a similar GitHub action for my Ruby plugin here: https://github.com/PyvesB/eclipse-solargraph
However, something recently changed with GitHub actions as the last two runs failed. Surprisingly, something seemed wrong with the cp command, but I haven't really had time to investigate further."
As mentioned by @ingomohr here, it'd be nice to mention to contributors who submit a PR that their fork will automatically create an updatesite if they are working on their forks master branch.
This could be nice for contributors who aren't familiar with Maven or Eclipse plugin development.
The Pull Request template would have to make special mention that the contributors name on GitHub must be used to obtain the correct updatesite, eg: https://raw.githubusercontent.com/[GitHub Username]/Eclipse-Modern-Dark-Theme/updatesite/updatesite/
It'd be nice to have changelogs automatically created based on the closed issues for a given release. I could feature this change log/release notes on the project's README as well as the marketplace listing.
A step further would be to automatically generate the Eclipse marketplace listing so that I can easily copy/paste it into the Eclipse marketplace site when a new release occurs, but this might be a bit overkill.
It seems such GitHub workflows already exist:
As discussed here, it'd be nice to use some badges in the repository's README.
@PyvesB gave some really good suggestions on which we could use:
"Yes, there are quite a few Eclipse Marketplace badges available, I recommend the downloads ones as the information is not directly available through the marketplace website. Favorites is a nice to have as well.
GitHub commit activity is indeed another good one...
Another idea: you could add a badge indicating the Prettier version used by the project for example (search for "package.json dependency version" in the Shields search bar)."
I've never added a badge to a repo before so I might need a bit of help from @PyvesB ;)
I've tried the theme out, it's a good start. I like the bits of red here and there. 👍
However, on my Windows machine at least, not all parts are being themed properly. For example in the project explorer:
I noticed you were importing platform:/plugin/org.eclipse.ui.themes/css/dark/e4-dark_preferencestyle.css
. Maybe you're missing out on some platform-specific overrides by doing so?
Thanks for looking into this!
This is based on a discussion w/ @AObuchow .
For now, we have a CI that builds, tests and deploys the updatesite for every branch to a dedicated build-branch.
Those branches can help for development, but they don't cover all we need to cover for a release.
It’d be a lot nicer to generate the p2 repo with maven, as is done for Wild Web Developer. This would allow automatic deployment of the newest version of the plugin through GitHub Actions
Now that the plugin has a logo, a "social preview" should be added to the repository using the logo.
The logo will probably have to be altered to be 1280×640px (recommended size)
There's some error reports I've been seeing on marketplace:
Listings:
Spectrum Dark Theme
Error Code:
4
Error Message:
Operation details
Installable Units Reported:
com.aobuchow.themes.spectrum.feature.feature.group,1.0.0.202006290354
Detailed Message:
Cannot complete the install because one or more required items could not be found. Software being installed: Spectrum Theme 1.0.0.202006290354 (com.aobuchow.themes.spectrum.feature.feature.group 1.0.0.202006290354) Missing requirement: Spectrum Theme 1.0.0.202006290354 (com.aobuchow.themes.spectrum 1.0.0.202006290354) requires 'bundle org.eclipse.e4.ui.css.swt.theme 0.0.0' but it could not be found Cannot satisfy dependency: From: Spectrum Theme 1.0.0.202006290354 (com.aobuchow.themes.spectrum.feature.feature.group 1.0.0.202006290354) To: com.aobuchow.themes.spectrum [1.0.0.202006290354]
It might be related to not specifying a version for org.eclipse.e4.ui.css.swt.theme? See: https://github.com/AObuchow/Eclipse-Spectrum-Theme/blob/master/com.aobuchow.themes.spectrum/META-INF/MANIFEST.MF#L9
As mentioned by @mbooth101, we should use a unified CBI license now that we have a tycho build being used for this plugin.
To quote Mat:
"If you adopt tycho build, consider using the unified CBI license: https://wiki.eclipse.org/CBI#CBI_license_bundle
This way you will always have the latest text of the license without needing to duplicate the license content a bunch of times in your repo.
Let me know if you need any hints how to implement it :-)"
It'd be nice to have some automatic CSS formatting running with GitHub Actions when pushing to master.
I haven't looked much into the topic, but I found these CSS formatters that could be useful:
As mentioned in #52 (comment) & #46 (comment), it'd be nice to be able to save & load user-defined color schemes.
The user could have a list of saved color schemes to switch between in the preference page (depends on #52).
However I'm not sure yet what file type & format should be used when a color scheme is exported. I was thinking perhaps JSON due to its simplicity or CSS. An advantage of using CSS is that if hex codes are used to encode the color scheme's colors, their color preview will be shown in the Generic Editor.
As discussed here, it'd be nice to have some CI for pull requests.
Now that I'm enabling the modification of the themes colors, a usability issue can arise if there isn't enough contrast between the font color and the background color.
In theory, the font color could be set to dark or light depending on how close it's background color is to black/white.
If this works well, it might be worth using in upstream Eclipse.
Hello again!
I spotted a small issue with some progress bars on macOS:
As you can see, there's a not-quite-centred white rectangle around the progress bar. This only seems to happen for progress bars within dialogues, there is no issue with the ones in the Progress View for example.
As usual, let me know if you need any more information!
As mentioned in #46, it'd be nice to have a preference page for this plugin.
The user could store various color schemes they've come up with and switch between them. Additionally, this would allow adding logic to calculate the theme's colors relative to the user's choice of accent/background color.
Hello hello!
Java code coverage colors are quite light and make the code hard to read:
Code coverage is provided by the EclEmma plugin, shipped with most default Eclipse distributions.
In the default dark theme, the colors look much better. EclEmma contributes the following styles to said Dark theme:
https://github.com/eclipse/eclemma/blob/master/org.eclipse.eclemma.ui/css/dark.css
Let me know what you think!
Hello, hello!
In the Package Explorer on my macOS machine, I noticed that Git projects that have changes appear with a slightly darker font colour. See below:
Is this intentional? If it is, I would have expected the two colours to be inverted, in other words the projects with changes to have the lighter colour, so that they stick out more and indicate to the user that there are uncommitted changes. That's only my personal opinion though, I'm not too fussed as this is only a minor detail. 😉
Let me know if you need any more information!
On Twitter, @davidsalter asked if I could do a write-up about how this plugin was made.
To quote him:
"I was thinking from a development point of view. For example, how did you create the project, what code do you need to write to change the theme etc. I’d certainly be interested in the technical details."
Some of the contents of this write-up could include:
I believe for the Eclipse marketplace, a plugin logo/icon is required.
This bug is to discuss logo ideas & prototypes.
Some ideas:
Maybe it’d be nice to make a dialog pop up when the user installs the plugin for the first time. The dialog would give the user the option to switch to Spectrum theme by clicking a single button.
This might be especially nice for users new to the plugin, or users who install the plugin but forget to swap themes.
A requirement would be that the dialog is only shown once, when the plugin is originally installed.
The theme label in the plugin.xml reads “Modern Dark Theme”.
It should be changed to “Modern Dark” as this label appears in the theme selection combo of the Eclipse appearance preference page.
Hello again! 👋
Python source code is very hard to read. See the following screenshot:
I'm guessing Pydev handles its own colour preferences. Obviously it's probably not manageable to handle every single third-party plugin, but in this case Pydev is the 5th most popular plugin on the markteplace, so may be worth adding support for it. 😉
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.