Solarized dark (beta) -- color scheme for ESTK CS5

Documentation, Reference material and Tutorials for Photoshop Scripting

Moderators: Tom, Kukurykus

SzopeN

Solarized dark (beta) -- color scheme for ESTK CS5

Post by SzopeN »



It may work in other versions. Tested on CS5 EN, Windows 7.

Setting custom colors in ESTK isn't obvious... I have to modify ESTK source code. Fortunately it is allowed by the license

Step 0: close ESTK (Adobe ExtendScript Toolkit CS5);
Step 1: change user preferences in %APPDATA%\Adobe\ExtendScript Toolkit\3.5\, where %APPDATA% is usually C:\Users\MY_PROFILE_NAME\AppData\Roaming\. Substitute whole <js /> section with the following code:
Code: Select all      <js>
         <braces style="10"/>
         <comment>
           <block>//~</block>
           <box>
             <start>/*</start>
             <end>*/</end>
             <middle>*</middle>
           </box>
           <stream>
             <start>/*</start>
             <end>*/</end>
           </stream>
         </comment>
         <menu>JavaScript</menu>
         <fileExts>*.jsx;*.js;*.jsxinc</fileExts>
         <defFileExt>jsx</defFileExt>
         <fileFilter>JavaScript</fileFilter>
         <lexer>js</lexer>
         <keywords index="0">abstract boolean break byte case catch char class const continue debugger default delete do double else enum export extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof var void volatile while with</keywords>
         <keywords index="1">Infinity NaN Array Boolean Date Error Function Math Number Object RegExp String Reflection ReflectionInfo Dictionary File Folder Socket</keywords>
         <wordChars>abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_$</wordChars>
         <style title="White space" index="0" fore="Solarized_base0" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="Comment: /* */" index="1" color="codeCommentBox" font="codeCommentBox" name="Consolas" size="10" fore="Solarized_base01" back="Solarized_base03"/>
         <style title="Comment: //" index="2" color="codeCommentLine" font="codeCommentLine" name="Consolas" size="10" fore="Solarized_base01" back="Solarized_base03"/>
         <style title="Doc comment: /** or /*!" index="3" fore="Solarized_base01" font="codeCommentDoc" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="Numbers" index="4" color="Numbers" name="Consolas" size="10" fore="Solarized_magenta" back="Solarized_base03"/>
         <style title="Keywords" index="5" bold="true" color="Keywords" name="Consolas" size="10" fore="Solarized_green" back="Solarized_base03"/>
         <style title="Double quoted string" index="6" color="string" name="Consolas" size="10" fore="Solarized_cyan" back="Solarized_base03"/>
         <style title="Single quoted string" index="7" fore="Solarized_cyan" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="Tripple Double quoted string" index="20" color="string" name="Consolas" size="10" fore="Solarized_blue" back="Solarized_base03"/>
         <style title="Tripple Single quoted string" index="21" fore="Solarized_blue" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="UUIDs (only in IDL)" index="8" fore="Solarized_base0" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="Preprocessor" index="9" color="preproc" name="Consolas" size="10" fore="Solarized_magenta" back="Solarized_base03"/>
         <style title="Operators" index="10" bold="true" color="operator" name="Consolas" size="10" fore="Solarized_base0" back="Solarized_base03"/>
         <style title="Identifiers" index="11" name="Consolas" size="10" fore="Solarized_base00" back="Solarized_base03"/>
         <style title="Open string at end of line" index="12" back="Solarized_magenta" eolfilled="true" font="monospace" fore="Solarized_base03" name="Consolas" size="10"/>
         <style title="Verbatim strings for C#" index="13" back="Solarized_base03" eolfilled="true" font="monospace" fore="Solarized_base0" name="Consolas" size="10"/>
         <style title="Doc comment: /// or //!" index="15" fore="Solarized_base01" font="codeCommentBox" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="Keywords 2" index="16" fore="Solarized_yellow" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="Doc keywords" index="17" font="codeCommentBox" fore="Solarized_base0" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="Doc keyword errors" index="18" font="codeCommentBox" fore="Solarized_red" name="Consolas" size="10" back="Solarized_base03"/>
         <style title="Other" index="32" font="base" name="Consolas" size="10" fore="Solarized_base0" back="Solarized_base03"/>
         <style title="Line number" index="33" back="Solarized_base02" font="base" name="Consolas" size="10" fore="Solarized_base0"/>
         <style title="Brace highlight" index="34" bold="true" fore="Crimson" name="Consolas" size="10" back="Aquamarine"/>
         <style title="Brace incomplete highlight" index="35" bold="true" fore="Bisque" name="Consolas" size="10" back="Azure"/>
         <style title="Control characters" index="36" name="Consolas" size="10" fore="Solarized_blue" back="Solarized_base03"/>
         <style title="Indentation guides" index="37" back="Solarized_base03" fore="Solarized_base2" name="Consolas" size="10"/>
         <selection>0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25</selection>
       </js>


Step 2: modify files in c:\Program Files (x86)\Adobe\Adobe Utilities - CS5\ExtendScript Toolkit CS5\Required\ (admin privileges needed!) according to the following diff:
Code: Select alldiff -r 78a61631c538 -r 6ff98226f6c6 00globals.jsx
--- a/00globals.jsx     Fri Sep 09 20:25:14 2011 +0200
+++ b/00globals.jsx     Fri Sep 09 20:48:38 2011 +0200
@@ -121,6 +121,22 @@
 // A list of predefined HTML colors.

 const colors = {
+       Solarized_base03        : 0x002b36,
+       Solarized_base02        : 0x073642,
+       Solarized_base01        : 0x586e75,
+       Solarized_base00        : 0x657b83,
+       Solarized_base0         : 0x839496,
+       Solarized_base1         : 0x93a1a1,
+       Solarized_base2         : 0xeee8d5,
+       Solarized_base3         : 0xfdf6e3,
+       Solarized_yellow        : 0xb58900,
+       Solarized_orange        : 0xcb4b16,
+       Solarized_red           : 0xdc322f,
+       Solarized_magenta       : 0xd33682,
+       Solarized_violet        : 0x6c71c4,
+       Solarized_blue          : 0x268bd2,
+       Solarized_cyan          : 0x2aa198,
+       Solarized_green         : 0x859900,
        AliceBlue                       : 0xF0F8FF,
        AntiqueWhite            : 0xFAEBD7,
        Aqua                            : 0x00FFFF,
diff -r 78a61631c538 -r 6ff98226f6c6 86preferences.jsx
--- a/86preferences.jsx Fri Sep 09 20:25:14 2011 +0200
+++ b/86preferences.jsx Fri Sep 09 20:48:38 2011 +0200
@@ -35,9 +35,17 @@
        if (!colorIcons)
        {
                colorIcons = {};
-
-               for (var i in colors)
-                       colorIcons = ScriptUI.newImage ("#" + i);
+               for (var i in colors) {
+                       try {
+                               colorIcons = ScriptUI.newImage ("#" + i);
+                       } catch (e) {
+                               if (e.number == 48) { // IOError: File or folder does not exist
+                                               colorIcons = ScriptUI.newImage ("#Black");
+                               } else {
+                                       throw e;
+                               }
+                       }
+               }
        }

        /////////////////////////////////////////////////////////////////////////
diff -r 78a61631c538 -r 6ff98226f6c6 93fontPrefs.jsx
--- a/93fontPrefs.jsx   Fri Sep 09 20:25:14 2011 +0200
+++ b/93fontPrefs.jsx   Fri Sep 09 20:48:38 2011 +0200
@@ -312,7 +312,9 @@

                for (var i in colors)
                {
-                       var item = listBox.add ( "item", " " + localize( "$$$/ESToolkit/Colors/" + i ) );
+                       var colorDescription = localize( "$$$/ESToolkit/Colors/" + i );
+                       if (colorDescription === "") colorDescription = i;
+                       var item = listBox.add ( "item", " " + colorDescription );
                        item.icon = colorIcons ;
                }
        }


More details on my blog: http://sepczuk.com/techblog/en/?p=148