[TxMt] The Growing Importance of Themes

Thomas Aylott (subtleGradient) oblivious at subtlegradient.com
Tue Feb 13 15:21:28 UTC 2007


On Feb 13, 2007, at 5:06 AM, Michael Sheets wrote:
> On Feb 12, 2007, at 2:05 PM, David Powers wrote:
>> I almost think that themes (after a certain set of core elements)  
>> need
>> to be specialized to be good.  Dawn is highly motivated by the fact
>> that I code largely in OCaml (for instance), and it uglies up HTML
>> something fierce.  Maybe the right solution is a core theme with
>> overlays that are activated based on the current base scope - so you
>> would have Dawn base that included an HTML, OCaml, ruby, etc overlay.
>
> I'm not quite following how this can work. If you overlay for  
> instance an OCaml specific theme on top of Twilight wouldn't it  
> make parts of it look rather odd? For instance variables in  
> Twilight are blue, if they are suddenly green in Ocaml I don't  
> really see how this is a good thing.
>
> --
> On Feb 12, 2007, at 6:22 PM, subtleGradient / Thomas Aylott wrote:
>> There's another excellent idea.
>> The ability to have separate themes per file or per window.
>> I'd like to add onto that the ability to specify a separate theme  
>> per scope.
> I can see the themes per scope being a good thing, but only the  
> root scope. I can see someone wanting for instance their text based  
> languages in a bright theme while leaving their coding in a dark  
> theme. Different themes in one window though just seem like an  
> unnecessary complexity.
>
>> Then each language would look it's absolute best and still be able  
>> to have a unified style.
> How can mushing together different themes in one window ever look  
> unified?

This is assuming that you'd be able to use some sort of theme  
tweaking thing like in shapeshifter.

An HTML document gets one theme
embedded javascript gets another
embedded css gets another
embedded ruby / php / asp /etc gets another
Then you could apply a theme tweak to each of these themes to massage  
them into harmony

Currently, every theme is applied to every scope in the document.
Which means that every theme must look good in every language.
Which means that creating themes is work.
Which means that "deep" themes that cover more than a single language  
either covers them poorly or not at all.

If you could apply a theme per scope instead of just per window.…
You could create a really specialized theme for a language.
You wouldn't have to make that theme work in every other language.
Rare languages would actually look good.
etc…

Don't get me wrong, i think all this isn't necessary ideal.
I'm all for massaging the current scope system to make languages line  
up a lot better.
But!
Languages like html, css & yaml,etc... are kindof specialized.
CSS doesn't have most of the scopes that programming languages use.
HTML uses a lot of the same scopes as programming languages, but  
looks way ugly if you actually use them without modification.
etc…
It makes good sense to me to just focus on a theme for a language you  
know well and ignore the rest.
It's way better than creating a single theme that is just a whole  
bunch of language specific themes stapled together.

If I could do that, I'd split Brilliance Black up into a dozen or so  
language specific themes,
all inheriting from a main theme.
Then I'd just have to add a new language specific theme for some new  
language instead of having to add it to that single massive theme.

thomas Aylott — subtleGradient — CrazyEgg — sixteenColors
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macromates.com/textmate/attachments/20070213/4555ca65/attachment.html>


More information about the textmate mailing list