I second yanowitz: this is wicked cool, thank you very much; it would be even more awesome than it already is if we had a choice of language. Do you think you could find the time to include Javascript and sh?
I kept clicking on parts of the code hoping it'd automatically select the type of element I had clicked on so I could change its color. Looks like I'm the only one, though, judging from the other comments.
For those of you who don't want to leave Emacs to customize Emacs, you can just put the point near the face that you want to customize, type M-x customize-face, accept the default, and follow the instructions from there. This works in all Emacsen newer than about 18 or so.
I am talking about how to, given some code in an arbitrary language and you wanting to change the color of some construct, do that with built-in emacs mechanisms. I think going to a web page, pasting your code, tweaking, and then putting some random lisp back into emacs is a waste of effort when Emacs already has this functionality built in.
It's a nice tip, and it could be nice for just changing one or 2 colors, but for totally doing a theme from scratch, I think I'd prefer a color wheel to messing with color hexes.
You probably should have something to display hex codes/color name or something like that so that you can ensure that two colors for different elements are the same.
Maybe there's a way to do it that I missed, but it would be helpful if when I select a color from the palette, I could see the Hex/RGB value for the color and set it from that as well. That way when I want to set two elements to the same color, I wouldn't have to wait and change it in the config file (which defeats the whole purpose of this application).
There are several schemes to choose from (complimentary, contrasting, triadic, etc) and knobs to adjust. You get 5 colors to look at next to each other and 18 along the same lines that go together. The input is in HSV/RGB and every output color comes in hex.
It would be really cool if you indicated what parts of the file you're editing at the moment. Maybe like underlining all of them? I know you could just change it to some crazy color and see what changes, but then if you want it right back where it was, you can never get it perfectly back.
Also, I second the request for being able to paste in a config to base it off of (mostly so that if I make a config, then decide I love it except for 1 or 2 things but want to use your editor instead of messing with the color codes, I can use your editor to tweak it).
Visual Studio has a sidebar that's grey for untouched lines. On lines that you edit, this sidebar turns yellow, and it turns green when you save and red for errors.
Yeah, I thought about something like that (assuming I know what you mean), but since this is about parts of lines, not lines, I thought underlining would work better (especially since basically every line has keywords).
It's still a little difficult to indicate the minibuffer background, the frame border, etc, but I think those names are a little more obvious, and there's fewer of them.
Where were you when I was hand-coding my current Emacs theme??
Great work!
My only suggestion is that you could display the lisp code for the theme below the code window so I could both see it update in real time and be able to export it without clicking the button.
Surely you don't have to implement this because it was likely a free-time project and it is infinitely better than anything I've ever seen that tries to accomplish this, (because I haven't seen anything that tried to do this and when you divide by zero, well...) but you asked for reviews and that is my sole critique.
Could be an idea to have a sample of the current color beside the string.
So, beside keywords, there would be a box filled in with the current color, instead of clicking each checkbox it would have a snapshot of all of the colors. Handy to reference them instead of looking at the sample code.
This is really cool! I'd second, third, whatever, the call for an import. It would also be neat if it was pluggable so when someone writes an emacs extension with custom faces, they could write a little snippet file to plugin to this to make those faces available.
There is a nice File, Edit... menu that goes along with it.
Close your eyes and pretend the rest of the complexity doesn't exist and it will be no different than using Notepad, etc. When you want more, open your eyes a little.
I would strongly recommend against using aquamacs as it uses non-standard config locations which can be a giant headache. It writes saved configs into the ~/Library folder verses .emacs and it's very easy to create conflicting configs where .emacs is overridden. They may have fixed this, but that's how it behaved the last time I used it. This also seems to be the general consensus in #emacs on freenode. I'd recommend using Carbon Emacs on OS X instead. http://homepage.mac.com/zenitani/emacs-e.html
Nice to haves: 1. select your language sample (ruby, lisp, c++, etc.) 2. paste in an existing config and have it load that to start with
But regardless, great tool. Many thanks!