Hi Ted! I've attached my style-table method (gz'd to avoid e-mail mangling the line-endings). It's one method on the class-side of SHTextStylerST80. After filing it in you can activate it with:
SHTextStylerST80 styleTable: SHTextStylerST80 blackOnWhiteStyleTable
The rationale are:
reserved words :: bold and black. "Solidity" to indicate an immutable part of the syntax. Class names, symbols and structure (blocks, parens, etc) :: Black but not bold because the names can vary at least during "development". :) instVars :: Gold because they are the "resources" a class has available to send messages to. message selectors :: Dark Green because they invoke behaviors. comments :: Light-Gray to be non-instrusive, but still easily read. literal constants :: Dark Red to stand out and also to discourage heavy use of constants in code. arguments :: Rust because they are rigid, they cannot be assigned. temp-vars :: Dark Cyan because they're pliable like.. clouds or water..
And, finally,
"bad" code :: magenta because its absolutely hideous, which strongly encourages me to take appropriate action to bring it down to a normal color. I typically never save a method with an unimplemented sender, so having the method name highlighted in majenta in a background window is a highly-visible reminder. It's brightness can sometimes be used to advantage to to "highlight" all occurrences of a variable in a method by temporarily removing one character from its declaration.
I use the "Auto Enclose" preference to avoid majenta when using structure (parents, brackets, etc.).
Cheers, Chris
On Sat, Feb 23, 2013 at 7:04 PM, Ted Kaehler Ted@vpri.org wrote:
Chris, I'd love to see your do-it to change the Shout colors to ones you find satisfying. A big problem is when you are in the middle of modifying a method. As you type, it does not make sense to Shout, and the next 20 lines turn bright red. That is annoying. I feel like saying, "I'm not done yet. Don't get on my case!". Perhaps if there are more than 2 lines in red after the insertion point, just turn the rest of the method black. That would keep things much calmer. The lack of any other colors would signal that something is not complete.
--Ted.
At 5:36 PM -0600 2/23/13, Chris Muller wrote:
Wow, I'm surprised -- the human eye discerns color contrast much more easily than patterns. While I don't care for the standard Shout colors, by changing them to be more intuitive and constrasting, particularly for longer methods, the colors _really_ enhance the readability. For example, I'm able to instantly see references to instVars with just a glance because they're gold (dark yellow); or references to self and super because they're bolded, which quickly tells me whether this is a "utility" method. Further, by making comments a light-gray, they are just barely visible, so they're not cluttering the code, but still easily readable if I decide to focus on them for a clarification. Kind of like simply changing eye-focus "reveals" different aspects of the code -- what a powerful "gesture"!..
-- Ted Kaehler "400 years of scientific enlightenment are being undone by TV shows on crop circles, ancient astronauts, and haunted buildings." http://www.vpri.org/html/team_bios/kaehler.html
squeak-dev@lists.squeakfoundation.org