Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Auto-Updating #1

Open
Arcitec opened this issue Nov 27, 2019 · 0 comments
Open

Auto-Updating #1

Arcitec opened this issue Nov 27, 2019 · 0 comments

Comments

@Arcitec
Copy link

Arcitec commented Nov 27, 2019

It's funny. Today I spent ten hours searching for a light theme for VSCode. I went through the top 50 light themes sorted by amount of downloads, and looked at their development activity and language support... And... They. Are. All. Shit. Almost all (even the popular ones) died 2-3 years ago and get no updates. And almost none of them have comprehensive coverage for programming languages. Only the dark themes have good development ethics.

Out of all dark themes, Dracula is my favorite. They have an active community. Excellent syntax coverage for all programming languages. And their colors have a cohesive pattern which is easy to read and really gives a clear overview of what the code is doing.

So, after completely giving up on Light themes (they are literally all shit; not a single theme has high-quality language syntax highlighting), I started looking into how Dracula was built.

I saw its dracula.yaml file which defines a dozen colors, and then simply uses those color tokens for various language highlights. So I realized how easy it would be to just clone Dracula, edit the dozen colors, and voila a light theme would be built.

Then I found your repo where you have done something brilliant: Using chroma.js to automatically generate new colors with optimized contrast vs the light backgrounds. This preserves the Dracula identity colors while making them dark enough to work on a light background. That's super clever. Great job!

But this makes me think about a glaring issue with your solution: It is already half a year out of date and missing the latest syntax fixes in Dracula. I have an idea for a workaround.

  1. Create a git submodule which pulls directly from the official repo.

  2. Make an update.js script which runs a git pull on the submodule, and then reads its latest dracula.yaml. (Alternatively skip step 1, and make step 2 read the latest official file from "raw" github URLs.)

  3. Transform the yaml file programmatically (adding the BGLighter etc tags and whatever other minor changes you did).

  4. Write the transformed yaml to this repo.

  5. Automatically set this project's version to be identical to the latest Dracula version number.

In other words, a single command to update to the latest Dracula core and transform it to the light variants.

This would let you stay up to date with just a single command and would hopefully make it more fun and easy for you to release new theme versions.

I also have some feedback about your theme in general:

  1. The "Dracula minified" tagline is gibberish. It makes me think of JS minifying and I thought you had made a bunch of changes in the theme, removed JS code from the theme and ran it all through a minifier, and that you would therefore (due to all the custom work) never stay in sync with upstream. So initially your tagline made me avoid your theme because it gave me bad vibes. Now, after a closer look, I saw that minified and the ".min" name had nothing to do with ".min" minifying. Would be better if you clearly state that it is an exact clone of Dracula with flat backgrounds, light backgrounds, and programmatically adjusted colors for perfect contrast.

  2. If this theme is going to thrive, it needs to have better guarantees of updating mentioned in the README. And having an auto-update script as suggested would make such a solution easy to maintain.

All in all, your work is excellent and lets people enjoy Dracula's perfect language syntax support and great colors, but with light backgrounds.

You have thereby created the only Light theme worth having. If only the auto-update issue can be solved, it would be a super easily maintained and long-lived one rather than yet another dead Light theme. Hmm. ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant