Design Goals
------------------------------
- Start with as much styling information done up front
- support color themes, from which all languages can use
- support 100% of the Scintilla Styling system
- The user should be able to use their ScintillaNET styles on all
ScintillaNET-based software without additional configuration.


File Format
------------------------------
Choices:
XML -- nicely machine readable, standardized, possible to hand-edit.
CSS -- standardized, less simple to read, and alot less rigid. Harder to parse, and alot of unneeded crap.
SCITE's property file -- too much non-Scintilla stuff in there. Also, hard as hell to get the kind of inheritance I'm looking for.

End User Support
------------------------------
ScintillaNET styling should be accessible from any application:

Example: I create a SQL tool, and setup my colors for SQL. Any other ScintillaNET tool should pick up the same colors for SQL. -- giving me the comfort of what I like.

This should be accomplished by Creating the user's color store in their profile directory, similar to ScITE's sciteuser.properties file.


I've got a script which generates language config code for about 60 languages right now, and maps them all back to a set of common styles. Each style can be overloaded at any point in the chain, ie:

I can specify the default Comment color as green , and still change the language specific comment color for C# to be blue. I can change the default font for everything, and still change it for just comments, or just c# comments.

The code I wrote to read the styles was aggressive and greedy, (loading in all the styles), so I'm going to change that to be more as-needed, and load the files only as required. Also, I'll put in bidirectional serialization so that users NEVER need to touch the config files.

This does, however leave application settings in the app developer's hands. Building a bidirectional .config file isn't hard, and I'll probably put a sample of that in too.

Last edited Aug 17, 2006 at 9:00 PM by gserack, version 2

Comments

No comments yet.