26 |
27 |
I'll tell you a secret ...
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/support/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/binaryage/firerainbow/1cefdabc94422778afc07ca3122a052c307477ca/support/screenshot.png
--------------------------------------------------------------------------------
/themes/active4d.css:
--------------------------------------------------------------------------------
1 | /* Active4D, converted from TextMate theme (Active4D.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #FFFFFF;
6 | font-family: Monaco, Courier New;
7 | color: #000000;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #BAD6FD;
16 | }
17 |
18 | .js-string {
19 | color: #666666;
20 | }
21 |
22 | .js-atom {
23 | color: #A8017E;
24 | }
25 |
26 | .js-variable {
27 | color: #A535AE;
28 | }
29 |
30 | .js-variable {
31 | font-weight: bold;
32 | color: #0053FF;
33 | }
34 |
35 | .js-keyword {
36 | font-weight: bold;
37 | color: #006699;
38 | }
39 |
40 | .xml-tagname {
41 | color: #7A7A7A;
42 | }
43 |
44 | .xml-tagname {
45 | color: #016CFF;
46 | }
47 |
48 | .xml-attname {
49 | color: #963DFF;
50 | }
51 |
--------------------------------------------------------------------------------
/themes/all_hallows_eve.css:
--------------------------------------------------------------------------------
1 | /* All Hallows Eve by David Heinemeier Hansson, converted from TextMate theme (All Hallows Eve.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #000000;
6 | font-family: Monaco, Courier New;
7 | color: #FFFFFF;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #333300;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #73597E;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #9933CC;
20 | }
21 |
22 | .js-atom {
23 | color: #3387CC;
24 | }
25 |
26 | .js-keyword {
27 | color: #CC7833;
28 | }
29 |
30 | .js-string {
31 | color: #66CC33;
32 | }
33 |
34 | .js-regexp {
35 | color: #CCCC33;
36 | }
--------------------------------------------------------------------------------
/themes/amy.css:
--------------------------------------------------------------------------------
1 | /* Amy by William D. Neumann, converted from TextMate theme (Amy.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #200020;
6 | font-family: Monaco, Courier New;
7 | color: #D0D0FF;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #800000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #800000;
16 | }
17 |
18 | .js-string {
19 | color: #999999;
20 | }
21 |
22 | .js-variable {
23 | color: #707090;
24 | }
25 |
26 | .js-atom {
27 | color: #7090B0;
28 | }
29 |
30 | .js-variabledef {
31 | color: #008080;
32 | }
33 |
34 | .js-keyword {
35 | color: #A080FF;
36 | }
37 |
38 | .xml-tagname {
39 | color: #009090;
40 | }
41 |
42 | .panelNode-script {
43 | font-size: 11px;
44 | background-color: #200020;
45 | font-family: Monaco, Courier New;
46 | }
47 |
--------------------------------------------------------------------------------
/themes/blackboard.css:
--------------------------------------------------------------------------------
1 | /* Blackboard by Domenico Carbotta, converted from TextMate theme (Blackboard.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #0C1021;
6 | font-family: Monaco, Courier New;
7 | color: #F8F8F8;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #FFFFFF;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #253B76;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #AEAEAE;
20 | }
21 |
22 | .js-atom {
23 | color: #D8FA3C;
24 | }
25 |
26 | .js-keyword {
27 | color: #FBDE2D;
28 | }
29 |
30 | .js-string {
31 | color: #61CE3C;
32 | }
33 |
34 | .xml-tagname {
35 | color: #7F90AA;
36 | }
37 |
--------------------------------------------------------------------------------
/themes/brilliance_black.css:
--------------------------------------------------------------------------------
1 | /* Brilliance Black by Thomas Aylott, converted from TextMate theme (Brilliance Black.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #0D0D0D;
6 | font-family: Monaco, Courier New;
7 | color: #EEEEEE;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000080;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #0010B4;
16 | }
17 |
18 | .js-regexp {
19 | background-color: #438000;
20 | color: #FFF800;
21 | }
22 |
23 | .js-atom {
24 | color: #C6FF00;
25 | }
26 |
27 | .js-variable {
28 | color: #07FF00;
29 | }
30 |
31 | .js-variabledef {
32 | color: #31A6FF;
33 | }
34 |
35 | .xml-tagname {
36 | color: #333333;
37 | }
38 |
39 | .xml-tagname {
40 | color: #FFFFFF;
41 | }
42 |
43 | .xml-attname {
44 | color: #FFFFFF;
45 | }
46 |
47 | .xml-attname {
48 | color: #4F00FF;
49 | }
50 |
51 | .xml-attname {
52 | color: #7900FF;
53 | }
54 |
55 | .xml-attname {
56 | color: #F800FF;
57 | }
58 |
59 | .xml-attname {
60 | color: #FF0086;
61 | }
62 |
63 | .xml-attname {
64 | font-weight: bold;
65 | color: #FF7900;
66 | }
67 |
68 | .xml-attname {
69 | color: #C25A00;
70 | }
71 |
--------------------------------------------------------------------------------
/themes/brilliance_dull.css:
--------------------------------------------------------------------------------
1 | /* Brilliance Dull by Thomas Aylott, converted from TextMate theme (Brilliance Dull.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #050505;
6 | font-family: Monaco, Courier New;
7 | color: #CDCDCD;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000080;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #2E2EE6;
16 | }
17 |
18 | .js-regexp {
19 | background-color: #438000;
20 | color: #A6A458;
21 | }
22 |
23 | .js-atom {
24 | color: #95A658;
25 | }
26 |
27 | .js-variable {
28 | color: #59A559;
29 | }
30 |
31 | .js-variabledef {
32 | color: #5E6B6B;
33 | }
34 |
35 | .js-variabledef {
36 | color: #5780A6;
37 | }
38 |
39 | .js-keyword {
40 | color: #A459A5;
41 | }
42 |
43 | .xml-tagname {
44 | color: #333333;
45 | }
46 |
47 | .xml-attname {
48 | background-color: #800004;
49 | color: #A7595A;
50 | }
51 |
52 | .xml-tagname {
53 | color: #FFFFFF;
54 | }
55 |
56 | .xml-attname {
57 | color: #FFFFFF;
58 | }
59 |
60 | .xml-attname {
61 | color: #7C58A5;
62 | }
63 |
64 | .xml-attname {
65 | color: #A459A5;
66 | }
67 |
68 | .xml-attname {
69 | color: #A75980;
70 | }
71 |
72 | .xml-attname {
73 | font-weight: bold;
74 | color: #A77D58;
75 | }
76 |
77 | .js-comment, .xml-comment, .css-comment {
78 | color: #333333;
79 | }
80 |
--------------------------------------------------------------------------------
/themes/cobalt.css:
--------------------------------------------------------------------------------
1 | /* Cobalt by Jacob Rus, converted from TextMate theme (Cobalt.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #002240;
6 | font-family: Monaco, Courier New;
7 | color: #FFFFFF;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #B36539;
16 | }
17 |
18 | .js-atom {
19 | color: #FF628C;
20 | }
21 |
22 | .js-keyword {
23 | color: #FF9D00;
24 | }
25 |
26 | .js-comment, .xml-comment, .css-comment {
27 | color: #0088FF;
28 | }
29 |
30 | .js-variable {
31 | color: #CCCCCC;
32 | }
33 |
34 | .js-variabledef {
35 | color: #FF80E1;
36 | }
37 |
38 | .js-regexp {
39 | color: #80FFC2;
40 | }
41 |
42 | .xml-tagname {
43 | color: #9EFFFF;
44 | }
45 |
46 | .css-identifier {
47 | color: #9EFFFF;
48 | }
49 |
50 | .xml-attname {
51 | color: #FFB454;
52 | }
53 |
54 | .xml-attname {
55 | color: #5FE461;
56 | }
57 |
58 | .css-colorcode {
59 | color: #9DF39F;
60 | }
61 |
62 | .css-value {
63 | color: #F6F080;
64 | }
65 |
66 | .css-at {
67 | color: #F6AA11;
68 | }
69 |
--------------------------------------------------------------------------------
/themes/codemirror.css:
--------------------------------------------------------------------------------
1 | .panelNode-script {
2 | font-family: Courier New;
3 | font-size: 9pt;
4 | overflow: hidden;
5 | }
6 | .js-keyword {
7 | color: #770088;
8 | }
9 | .js-atom {
10 | color: #228811;
11 | }
12 | .js-variable {
13 | color: black;
14 | }
15 | .js-variabledef {
16 | color: #0000FF;
17 | }
18 | .js-localvariable {
19 | color: #004499;
20 | }
21 | .js-property {
22 | color: black;
23 | }
24 | .js-comment {
25 | color: #AA7700;
26 | }
27 | .js-string {
28 | color: #AA2222;
29 | }
30 |
--------------------------------------------------------------------------------
/themes/cowtown.css:
--------------------------------------------------------------------------------
1 | /* cowtown by psylux */
2 | .panelNode-script {
3 | background:#3F2B18 none repeat scroll 0 0;
4 | color:#7C4B00;
5 | font-family:consolas,Monospaced,Courier New;
6 | font-size:12px;
7 | overflow:hidden;
8 | }
9 | .js-keyword {
10 | color:#FF9D00;
11 | }
12 | .js-atom {
13 | color:#FFFF33;
14 | }
15 | .js-variable {
16 | color:#B0B9F2;
17 | }
18 | .js-variabledef {
19 | color:#FFFFFF;
20 | }
21 | .js-localvariable {
22 | color:#DDD87B;
23 | }
24 | .js-property {
25 | color:#44FFFF;
26 | }
27 | .js-comment {
28 | color:#9A4690;
29 | }
30 | .js-string {
31 | color:#7EDC0F;
32 | }
33 | .js-regexp {
34 | color:#FFA1AC;
35 | }
36 | .js-punctuation {
37 | color:#E1EFFF;
38 | }
39 | .js-operator {
40 | color:#FF6633;
41 | }
42 | .js-whitespace {
43 | color:#EEFFEE;
44 | }
45 |
--------------------------------------------------------------------------------
/themes/dawn.css:
--------------------------------------------------------------------------------
1 | /* Dawn by David Powers, converted from TextMate theme (Dawn.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #F9F9F9;
6 | font-family: Monaco, Courier New;
7 | color: #080808;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #2463B4;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #275FFF;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #5A525F;
20 | }
21 |
22 | .js-atom {
23 | font-weight: bold;
24 | color: #811F24;
25 | }
26 |
27 | .js-keyword {
28 | color: #794938;
29 | }
30 |
31 | .js-variable {
32 | color: #234A97;
33 | }
34 |
35 | .js-regexp {
36 | color: #CF5628;
37 | }
38 |
--------------------------------------------------------------------------------
/themes/eclipse.css:
--------------------------------------------------------------------------------
1 | .panelNode-script {
2 | font-family: Courier New;
3 | font-size: 9pt;
4 | overflow: hidden;
5 | }
6 | .js-keyword {
7 | color: #7F0055;
8 | }
9 | .js-atom {
10 | color: #7F0055;
11 | }
12 | .js-variable {
13 | color: black;
14 | }
15 | .js-variabledef {
16 | color: black;
17 | }
18 | .js-localvariable {
19 | color: black;
20 | }
21 | .js-property {
22 | color: black;
23 | }
24 | .js-comment {
25 | color: #3F5FBF;
26 | }
27 | .js-string {
28 | color: #8E00FF;
29 | }
30 |
--------------------------------------------------------------------------------
/themes/eiffel.css:
--------------------------------------------------------------------------------
1 | /* Eiffel by Ian Joyner, converted from TextMate theme (Eiffel.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #FFFFFF;
6 | font-family: Monaco, Courier New;
7 | color: #000000;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #C3DCFF;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #00B418;
20 | }
21 |
22 | .js-variable {
23 | color: #0206FF;
24 | }
25 |
26 | .js-keyword {
27 | font-weight: bold;
28 | color: #0100B6;
29 | }
30 |
31 | .js-atom {
32 | color: #CD0000;
33 | }
34 |
35 | .js-atom {
36 | color: #C5060B;
37 | }
38 |
39 | .js-variable {
40 | color: #585CF6;
41 | }
42 |
43 | .js-string {
44 | color: #D80800;
45 | }
46 |
47 | .js-operator {
48 | color: #687687;
49 | }
50 |
51 | .xml-tagname {
52 | color: #1C02FF;
53 | }
54 |
55 | .xml-tagname {
56 | font-weight: bold;
57 | }
58 |
--------------------------------------------------------------------------------
/themes/espresso_libre.css:
--------------------------------------------------------------------------------
1 | /* Espresso Libre by Chris Thomas, converted from TextMate theme (Espresso Libre.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #2A211C;
6 | font-family: Monaco, Courier New;
7 | color: #BDAE9D;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #3A312C;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #C3DCFF;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #0066FF;
20 | }
21 |
22 | .js-keyword {
23 | font-weight: bold;
24 | color: #43A8ED;
25 | }
26 |
27 | .js-atom {
28 | color: #44AA43;
29 | }
30 |
31 | .js-atom {
32 | font-weight: bold;
33 | color: #C5656B;
34 | }
35 |
36 | .js-variable {
37 | font-weight: bold;
38 | color: #585CF6;
39 | }
40 |
41 | .js-variabledef {
42 | color: #318495;
43 | }
44 |
45 | .js-string {
46 | color: #049B0A;
47 | }
48 |
49 | .js-operator {
50 | color: #687687;
51 | }
52 |
53 | .xml-processing {
54 | color: #8F7E65;
55 | }
56 |
57 | .xml-processing {
58 | color: #888888;
59 | }
60 |
61 | .xml-tagname {
62 | color: #43A8ED;
63 | }
64 |
65 | .xml-tagname {
66 | font-weight: bold;
67 | }
68 |
--------------------------------------------------------------------------------
/themes/idle.css:
--------------------------------------------------------------------------------
1 | /* IDLE by Domenico Carbotta, converted from TextMate theme (IDLE.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #FFFFFF;
6 | font-family: Monaco, Courier New;
7 | color: #000000;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #BAD6FD;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #919191;
20 | }
21 |
22 | .js-string {
23 | color: #00A33F;
24 | }
25 |
26 | .js-variable {
27 | color: #A535AE;
28 | }
29 |
30 | .js-keyword {
31 | color: #FF5600;
32 | }
33 |
--------------------------------------------------------------------------------
/themes/iplastic.css:
--------------------------------------------------------------------------------
1 | /* iPlastic by Jeroen van der Ham, converted from TextMate theme (iPlastic.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #EEEEEE;
6 | font-family: Monaco, Courier New;
7 | color: #000000;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #BAD6FD;
16 | }
17 |
18 | .js-string {
19 | color: #009933;
20 | }
21 |
22 | .js-atom {
23 | color: #0066FF;
24 | }
25 |
26 | .js-regexp {
27 | color: #FF0080;
28 | }
29 |
30 | .js-keyword {
31 | color: #0000FF;
32 | }
33 |
34 | .js-variable {
35 | color: #9700CC;
36 | }
37 |
38 | .js-comment, .xml-comment, .css-comment {
39 | color: #0066FF;
40 | }
41 |
42 | .xml-tagname {
43 | color: #0033CC;
44 | }
45 |
46 | .js-atom {
47 | color: #6782D3;
48 | }
49 |
50 | .xml-processing {
51 | color: #333333;
52 | }
53 |
54 | .xml-attname {
55 | color: #3366CC;
56 | }
57 |
58 | .xml-tagname {
59 | font-weight: bold;
60 | }
61 |
--------------------------------------------------------------------------------
/themes/ir_black.css:
--------------------------------------------------------------------------------
1 | /* IR_Black, converted from TextMate theme (IR_Black.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #141414;
6 | font-family: Monaco, Courier New;
7 | color: #EDEDED;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #FFFFFF;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #333333;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #7C7C7C;
20 | }
21 |
22 | .js-keyword {
23 | color: #96CBFE;
24 | }
25 |
26 | .js-atom {
27 | color: #99CC99;
28 | }
29 |
30 | .js-string {
31 | font-weight: bold;
32 | color: #A8FF60;
33 | }
34 |
35 | .js-atom {
36 | font-weight: bold;
37 | color: #FF73FD;
38 | }
39 |
40 | .js-variable {
41 | color: #C6C5FE;
42 | }
43 |
44 | .js-regexp {
45 | color: #E9C062;
46 | }
47 |
48 | .xml-tagname {
49 | font-weight: bold;
50 | color: #96CBFE;
51 | }
52 |
53 | .xml-attname {
54 | color: #96CBFE;
55 | }
56 |
57 | .xml-attname {
58 | color: #FFD7B1;
59 | }
60 |
61 | .xml-attname {
62 | color: #E18964;
63 | }
64 |
65 | .css-identifier {
66 | color: #96CBFE;
67 | }
68 |
69 | .xml-attname {
70 | color: #8F9D6A;
71 | }
72 |
73 | .xml-attname {
74 | color: #8B98AB;
75 | }
76 |
77 | .xml-attname {
78 | color: #62B1FE;
79 | }
80 |
81 | .css-colorcode {
82 | color: #EDEDED;
83 | }
84 |
85 | .css-value {
86 | color: #F9EE98;
87 | }
88 |
89 | .css-at {
90 | color: #8693A5;
91 | }
92 |
--------------------------------------------------------------------------------
/themes/lazy.css:
--------------------------------------------------------------------------------
1 | /* LAZY by Domenico Carbotta, converted from TextMate theme (LAZY.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #FFFFFF;
6 | font-family: Monaco, Courier New;
7 | color: #000000;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #EFFCA6;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #E3FC8D;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #8C868F;
20 | }
21 |
22 | .js-atom {
23 | color: #3B5BB5;
24 | }
25 |
26 | .js-keyword {
27 | color: #FF7800;
28 | }
29 |
30 | .js-string {
31 | color: #409B1C;
32 | }
33 |
34 | .xml-tagname {
35 | color: #3A4A64;
36 | }
37 |
--------------------------------------------------------------------------------
/themes/mac_classic.css:
--------------------------------------------------------------------------------
1 | /* Mac Classic by Chris Thomas, converted from TextMate theme (Mac Classic.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #FFFFFF;
6 | font-family: Monaco, Courier New;
7 | color: #000000;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #4D97FF;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #808080;
20 | }
21 |
22 | .js-keyword {
23 | color: #0000FF;
24 | }
25 |
26 | .js-atom {
27 | color: #0000CD;
28 | }
29 |
30 | .js-atom {
31 | color: #C5060B;
32 | }
33 |
34 | .js-variable {
35 | color: #585CF6;
36 | }
37 |
38 | .js-variabledef {
39 | color: #318495;
40 | }
41 |
42 | .js-string {
43 | color: #036A07;
44 | }
45 |
46 | .js-operator {
47 | color: #687687;
48 | }
49 |
50 | .xml-processing {
51 | color: #68685B;
52 | }
53 |
54 | .xml-processing {
55 | color: #888888;
56 | }
57 |
58 | .xml-tagname {
59 | color: #0000FF;
60 | }
61 |
62 | .xml-tagname {
63 | color: #0000FF;
64 | }
65 |
66 | .xml-attname {
67 | color: #9C0202;
68 | }
69 |
--------------------------------------------------------------------------------
/themes/magicwb_amiga.css:
--------------------------------------------------------------------------------
1 | /* MagicWB (Amiga) by Allan Odgaard, converted from TextMate theme (MagicWB (Amiga).tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #969696;
6 | font-family: Monaco, Courier New;
7 | color: #000000;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #B1B1B1;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #8D2E75;
20 | }
21 |
22 | .js-string {
23 | background-color: #FF0000;
24 | color: #FFFFFF;
25 | }
26 |
27 | .js-atom {
28 | color: #FFFFFF;
29 | }
30 |
31 | .js-variable {
32 | font-weight: bold;
33 | color: #FFA995;
34 | }
35 |
36 | .js-variabledef {
37 | color: #FFA995;
38 | }
39 |
40 | .js-keyword {
41 | font-weight: bold;
42 | }
43 |
44 | .xml-attname {
45 | color: #3A68A3;
46 | }
47 |
--------------------------------------------------------------------------------
/themes/pastels_on_dark.css:
--------------------------------------------------------------------------------
1 | /* Pastels on Dark by Mats Persson, converted from TextMate theme (Pastels on Dark.tmTheme) */
2 |
3 | /*
4 | CHANGELOG
5 |
6 | 1) 2010-06-18 cbalz Fixed issue where stopped line on breakpoint has background color that makes text almost invisible.
7 |
8 | */
9 |
10 | .panelNode-script {
11 | font-size: 11px;
12 | background-color: #211E1E;
13 | font-family: Monaco, Courier New;
14 | color: #DADADA;
15 | }
16 |
17 | .sourceRow.hovered {
18 | background-color: #353030;
19 | }
20 |
21 | .sourceRow[exeLine="true"] {
22 | background-color: #73597E;
23 | }
24 |
25 | .js-comment, .xml-comment, .css-comment {
26 | color: #555555;
27 | }
28 |
29 | .js-string {
30 | color: #AD9361;
31 | }
32 |
33 | .js-atom {
34 | color: #CCCCCC;
35 | }
36 |
37 | .js-keyword {
38 | color: #A1A1FF;
39 | }
40 |
41 | .js-regexp {
42 | color: #666666;
43 | }
44 |
45 | .js-variable {
46 | color: #C1C144;
47 | }
48 |
49 | .js-atom {
50 | color: #6782D3;
51 | }
52 |
53 | .js-variable {
54 | font-weight: bold;
55 | color: #DE8E30;
56 | }
57 |
58 | .xml-attname {
59 | color: #9B456F;
60 | }
61 |
62 | .xml-processing {
63 | color: #68685B;
64 | }
65 |
66 | .xml-processing {
67 | color: #888888;
68 | }
69 |
70 | .xml-attname {
71 | color: #9B456F;
72 | }
73 |
74 | .xml-attname {
75 | color: #EC9E00;
76 | }
77 |
78 | .xml-attname {
79 | color: #EDCA06;
80 | }
81 |
82 | .xml-attname {
83 | color: #2E759C;
84 | }
85 |
86 | .css-value {
87 | color: #9B2E4D;
88 | }
89 |
90 | .css-colorcode {
91 | color: #E1C96B;
92 | }
93 |
94 | .sourceRow[exe_line="true"] {
95 | outline: 1px solid #D9D9B6; margin-right: 1px; background-color: purple;
96 | }
97 |
--------------------------------------------------------------------------------
/themes/rainbow.css:
--------------------------------------------------------------------------------
1 | .panelNode-script {
2 | background-color: #FFFFFF;
3 | color: black;
4 | font-family: Monaco,Monospace,Courier New !important;
5 | font-size: 11px;
6 | }
7 | .sourceRow.hovered {
8 | background-color: #EEEEEE;
9 | }
10 | .sourceLine {
11 | background: #EEEEEE none no-repeat scroll 2px 0;
12 | border-bottom: 1px solid #EEEEEE;
13 | border-right: 1px solid #CCCCCC;
14 | color: #888888;
15 | }
16 | .sourceLine:hover {
17 | text-decoration: none;
18 | }
19 | .scriptTooltip {
20 | background: LightYellow none repeat scroll 0 0;
21 | border: 1px solid #CBE087;
22 | color: #000000;
23 | }
24 | .sourceRow[exeline="true"] {
25 | background-color: lightgoldenrodyellow;
26 | outline-color: #D9D9B6;
27 | outline-style: solid;
28 | outline-width: 1px;
29 | }
30 | .xml-text {
31 | color: black;
32 | }
33 | .whitespace {
34 | color: black;
35 | }
36 | .xml-punctuation {
37 | color: gray;
38 | }
39 | .xml-tagname {
40 | color: blue;
41 | }
42 | .xml-attname {
43 | color: darkred;
44 | }
45 | .xml-attribute {
46 | color: darkgreen;
47 | }
48 | .css-at {
49 | color: darkred;
50 | }
51 | .css-string {
52 | color: red;
53 | }
54 | .css-punctuation {
55 | color: midnightblue;
56 | }
57 | .js-keyword {
58 | color: blue;
59 | }
60 | .js-variable {
61 | color: black;
62 | }
63 | .js-operator {
64 | color: black;
65 | }
66 | .js-punctuation {
67 | color: darkBlue;
68 | }
69 | .js-variabledef {
70 | color: darkslategray;
71 | }
72 | .js-localvariable {
73 | color: darkslateBlue;
74 | }
75 | .js-property {
76 | color: teal;
77 | }
78 | .js-string {
79 | color: darkgreen;
80 | }
81 | .js-atom {
82 | color: saddleBrown;
83 | }
84 | .xml-comment {
85 | color: gray;
86 | }
87 | .css-identifier {
88 | color: midnightBlue;
89 | }
90 | .css-select-op {
91 | color: cadetblue;
92 | }
93 | .css-unit {
94 | color: orangered;
95 | }
96 | .css-value {
97 | color: black;
98 | }
99 | .css-colorcode {
100 | color: magenta;
101 | }
102 | .js-comment {
103 | color: gray;
104 | }
105 | .js-regexp {
106 | color: magenta;
107 | }
108 | .xml-entity {
109 | color: darkgoldenrod;
110 | }
111 | .xml-error {
112 | color: orangered;
113 | }
114 | .css-comment {
115 | color: gray;
116 | }
--------------------------------------------------------------------------------
/themes/slush_poppies.css:
--------------------------------------------------------------------------------
1 | /* Slush & Poppies by William D. Neumann, converted from TextMate theme (Slush & Poppies.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #F1F1F1;
6 | font-family: Monaco, Courier New;
7 | color: #000000;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #B0B0FF;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #406040;
20 | }
21 |
22 | .js-string {
23 | color: #C03030;
24 | }
25 |
26 | .js-atom {
27 | color: #0080A0;
28 | }
29 |
30 | .js-keyword {
31 | color: #2060A0;
32 | }
33 |
--------------------------------------------------------------------------------
/themes/spacecadet.css:
--------------------------------------------------------------------------------
1 | /* SpaceCadet by Alex Ross, converted from TextMate theme (SpaceCadet.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #0D0D0D;
6 | font-family: Monaco, Courier New;
7 | color: #DDE6CF;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #000000;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #40002F;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #473C45;
20 | }
21 |
22 | .js-string {
23 | color: #805978;
24 | }
25 |
26 | .js-atom {
27 | color: #A8885A;
28 | }
29 |
--------------------------------------------------------------------------------
/themes/sunburst.css:
--------------------------------------------------------------------------------
1 | /* Sunburst by Stanley Rost, converted from TextMate theme (Sunburst.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #000000;
6 | font-family: Monaco, Courier New;
7 | color: #F8F8F8;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #FFFFFF;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #DDF0FF;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #AEAEAE;
20 | }
21 |
22 | .js-atom {
23 | color: #3387CC;
24 | }
25 |
26 | .js-keyword {
27 | color: #E28964;
28 | }
29 |
30 | .js-string {
31 | color: #65B042;
32 | }
33 |
34 | .js-variable {
35 | color: #3E87E3;
36 | }
37 |
38 | .js-regexp {
39 | color: #E9C062;
40 | }
41 |
42 | .xml-tagname {
43 | color: #89BDFF;
44 | }
45 |
46 | .xml-attname {
47 | color: #E0C589;
48 | }
49 |
50 | .xml-attname {
51 | color: #E18964;
52 | }
53 |
54 | .css-identifier {
55 | color: #CDA869;
56 | }
57 |
58 | .xml-attname {
59 | color: #8F9D6A;
60 | }
61 |
62 | .xml-attname {
63 | color: #8B98AB;
64 | }
65 |
66 | .xml-attname {
67 | color: #9B703F;
68 | }
69 |
70 | .css-colorcode {
71 | color: #C5AF75;
72 | }
73 |
74 | .css-value {
75 | color: #F9EE98;
76 | }
77 |
78 | .css-at {
79 | color: #8693A5;
80 | }
81 |
--------------------------------------------------------------------------------
/themes/twilight.css:
--------------------------------------------------------------------------------
1 | /* Twilight by Michael Sheets, converted from TextMate theme (Twilight.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #141414;
6 | font-family: Monaco, Courier New;
7 | color: #F8F8F8;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #FFFFFF;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #DDF0FF;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #5F5A60;
20 | }
21 |
22 | .js-atom {
23 | color: #CF6A4C;
24 | }
25 |
26 | .js-keyword {
27 | color: #CDA869;
28 | }
29 |
30 | .js-string {
31 | color: #8F9D6A;
32 | }
33 |
34 | .js-variable {
35 | color: #7587A6;
36 | }
37 |
38 | .js-regexp {
39 | color: #E9C062;
40 | }
41 |
42 | .xml-processing {
43 | color: #494949;
44 | }
45 |
46 | .xml-tagname {
47 | color: #AC885B;
48 | }
49 |
50 | .xml-attname {
51 | color: #E0C589;
52 | }
53 |
54 | .css-identifier {
55 | color: #CDA869;
56 | }
57 |
58 | .xml-attname {
59 | color: #8F9D6A;
60 | }
61 |
62 | .xml-attname {
63 | color: #8B98AB;
64 | }
65 |
66 | .xml-attname {
67 | color: #9B703F;
68 | }
69 |
70 | .css-colorcode {
71 | color: #C5AF75;
72 | }
73 |
74 | .css-value {
75 | color: #F9EE98;
76 | }
77 |
78 | .css-at {
79 | color: #8693A5;
80 | }
81 |
--------------------------------------------------------------------------------
/themes/zenburnesque.css:
--------------------------------------------------------------------------------
1 | /* Zenburnesque by William D. Neumann, converted from TextMate theme (Zenburnesque.tmTheme) */
2 |
3 | .panelNode-script {
4 | font-size: 11px;
5 | background-color: #404040;
6 | font-family: Monaco, Courier New;
7 | color: #DEDEDE;
8 | }
9 |
10 | .sourceRow.hovered {
11 | background-color: #A08040;
12 | }
13 |
14 | .sourceRow[exeLine="true"] {
15 | background-color: #A0A0C0;
16 | }
17 |
18 | .js-comment, .xml-comment, .css-comment {
19 | color: #709070;
20 | }
21 |
22 | .js-string {
23 | color: #FF2020;
24 | }
25 |
26 | .js-atom {
27 | color: #22C0FF;
28 | }
29 |
30 | .js-keyword {
31 | color: #FFFFA0;
32 | }
33 |
--------------------------------------------------------------------------------
/utils/Rakefile:
--------------------------------------------------------------------------------
1 | begin
2 | require 'Plist'
3 | rescue LoadError
4 | raise 'You must "gem install plist" to get plist parser'
5 | end
6 |
7 | ROOT = File.expand_path('..')
8 | SRC = ROOT
9 | DST = File.join(ROOT, 'build')
10 | DST_THEMES = File.join(DST, 'themes')
11 | TMP = File.join(ROOT, 'tmp')
12 |
13 | THEMES_DIR = File.expand_path("~/Library/Application\\ Support/TextMate/Themes")
14 |
15 | # http://kpumuk.info/ruby-on-rails/colorizing-console-ruby-script-output/
16 | begin
17 | require 'Win32/Console/ANSI' if PLATFORM =~ /win32/
18 | rescue LoadError
19 | raise 'You must "gem install win32console" to use terminal colors on Windows'
20 | end
21 |
22 | def colorize(text, color_code)
23 | "#{color_code}#{text}\e[0m"
24 | end
25 |
26 | def red(text); colorize(text, "\e[31m"); end
27 | def green(text); colorize(text, "\e[32m"); end
28 | def yellow(text); colorize(text, "\e[33m"); end
29 | def blue(text); colorize(text, "\e[34m"); end
30 | def magenta(text); colorize(text, "\e[35m"); end
31 | def azure(text); colorize(text, "\e[36m"); end
32 | def white(text); colorize(text, "\e[37m"); end
33 | def black(text); colorize(text, "\e[30m"); end
34 |
35 | def file_color(text); yellow(text); end
36 | def dir_color(text); blue(text); end
37 | def cmd_color(text); azure(text); end
38 |
39 | def detect_selector_from_scope(scope)
40 | return ".panelNode-script" unless scope
41 | parts = scope.split(',')
42 | parts.each do |part|
43 | case part
44 | when "comment"
45 | return ".js-comment, .xml-comment, .css-comment"
46 | when "keyword"
47 | return ".js-keyword"
48 | when "variable", "constant.language"
49 | return ".js-variable"
50 | when "variable.language", "variable.other"
51 | return ".js-variabledef"
52 | when "string", "css.string"
53 | return ".js-string"
54 | when "string.regexp"
55 | return ".js-regexp"
56 | when "constant", "constant.numeric"
57 | return ".js-atom"
58 | when "keyword.operator.js"
59 | return ".js-operator"
60 | when "string.quoted.docinfo.doctype.DTD", "meta.tag.preprocessor.xml", "meta.tag.sgml.doctype", "meta.tag.sgml.doctype entity", "meta.tag.sgml.doctype string", "meta.tag.preprocessor.xml", "meta.tag.preprocessor.xml entity", "meta.tag.preprocessor.xml string"
61 | return ".xml-processing"
62 | when "entity.name.tag", "meta.tag", "declaration.tag"
63 | return ".xml-tagname"
64 | when /attribute-name/
65 | return ".xml-attname"
66 | when "???"
67 | return ".xml-text"
68 | when "???"
69 | return ".xml-entity"
70 | when "???"
71 | return ".xml-cdata"
72 | when /property-value.css/
73 | return ".css-value"
74 | when "meta.selector.css entity.name.tag"
75 | return ".css-identifier"
76 | when /property-name.css/
77 | return ".css-colorcode"
78 | when "???"
79 | return ".css-string"
80 | when "???"
81 | return ".css-unit"
82 | when "???"
83 | return ".css-important"
84 | when "???"
85 | return ".css-select-op"
86 | when "???"
87 | return ".css-punctuation"
88 | when "???"
89 | return ".css-compare"
90 | when /at-rule/
91 | return ".css-at"
92 | end
93 | end
94 |
95 | nil
96 | end
97 |
98 | def color(val)
99 | return "???" unless val =~ /#([0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])/
100 | "\##{$1}"
101 | end
102 |
103 | def font_style(val)
104 | return nil unless val=="italic"
105 | "italic"
106 | end
107 |
108 | def font_weight(val)
109 | return nil unless val=="bold"
110 | "bold"
111 | end
112 |
113 | KNOWN_ATTRIBUTES = {
114 | "foreground" => ["color", method(:color)],
115 | "background" => ["background-color", method(:color)],
116 | "fontStyle" => ["font-style", method(:font_style)],
117 | "fontStyle" => ["font-weight", method(:font_weight)],
118 | }
119 |
120 | def gen_rule(dict)
121 | scope = dict["scope"]
122 | selector = detect_selector_from_scope(scope)
123 | return "" unless selector
124 | settings = dict["settings"]
125 | return "" unless settings
126 |
127 | rule = {}
128 | KNOWN_ATTRIBUTES.each do |attr, spec|
129 | next unless settings[attr]
130 | spec = [spec] unless spec.is_a?(Array)
131 |
132 | val = settings[attr]
133 | val = spec[1].call(val) if spec[1]
134 | rule[spec[0]] = val if val
135 | end
136 |
137 | return "" unless rule.keys.size>0
138 |
139 | if (selector==".panelNode-script") then
140 | rule["font-family"] = "Monaco, Courier New"
141 | rule["font-size"] = "11px"
142 |
143 | additional = ""
144 | highlight = color(settings["lineHighlight"]) if settings["lineHighlight"]
145 | additional += ".sourceRow.hovered { background-color: #{highlight}; }\n\n" if highlight
146 | selection = color(settings["selection"]) if settings["selection"]
147 | additional += ".sourceRow[exeLine=\"true\"] { background-color: #{selection}; }\n\n" if selection
148 | end
149 |
150 | res = "#{selector} {\n"
151 | rule.each do |key, value|
152 | res += " #{key}: #{value};\n"
153 | end
154 | res += "}\n\n"
155 |
156 | res += additional if additional
157 | res
158 | end
159 |
160 | def gen_css(data, source)
161 | desc = "#{data["name"]}"
162 | desc += " by #{data["author"]}" if data["author"]
163 | desc += ", converted from TextMate theme (#{source})"
164 |
165 | res = "/* #{desc} */\n\n"
166 |
167 | data["settings"].each do |dict|
168 | res += gen_rule(dict)
169 | end
170 |
171 | {
172 | "css" => res,
173 | "name" => data["name"],
174 | "author" => data["author"],
175 | "description" => desc
176 | }
177 | end
178 |
179 | def my_mkdir(dir)
180 | puts "#{cmd_color('creating directory')} #{dir_color(dir)}"
181 | mkdir dir
182 | end
183 |
184 | def process(dir)
185 | files = Dir.glob(File.join(dir, "**", "*.tmTheme"))
186 | files.each do |filename|
187 | basename = File.basename(filename)
188 | puts " Converting #{file_color(basename)}"
189 | data = Plist::parse_xml(filename)
190 | preset = gen_css(data, basename)
191 | preset["basename"] = basename
192 | yield preset
193 | end
194 | end
195 |
196 | task :convert do
197 | my_mkdir(DST_THEMES) unless File.exist?(DST_THEMES)
198 | puts "Scanning #{dir_color(THEMES_DIR)} ..."
199 | process(THEMES_DIR) do |preset|
200 | res = File.join(DST_THEMES, preset["basename"] + ".css")
201 | File.open(res, "w") do |file|
202 | file.write preset["css"]
203 | end
204 | end
205 | end
206 |
207 | task :sql do
208 | puts "Generating sql ..."
209 |
210 | res = ""
211 | process(THEMES_DIR) do |preset|
212 | name = preset["name"].downcase.gsub(/[\(\)&]/, "").gsub(/[ \t]/, "_").gsub(/'/, "''")
213 | title = preset["name"].gsub(/'/, "''")
214 | desc = preset["description"].gsub(/'/, "''")
215 | code = preset["css"].gsub(/\n/, "\\r\\n").gsub(/'/, "''").gsub(/"/, """)
216 | res += "('#{name}', '#{title}', '#{desc}', '#{code}', '2008-06-14 18:19:36', '2008-06-14 18:24:04'),\n"
217 | end
218 |
219 | puts res
220 | end
221 |
222 | task :default => :convert
--------------------------------------------------------------------------------