Skip to content

Commit 4971f6a

Browse files
committed
do a conversion on the other themes
1 parent e1be70b commit 4971f6a

File tree

2 files changed

+73
-43
lines changed

2 files changed

+73
-43
lines changed

perlSyntax/convertTheme.pl

Lines changed: 72 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,51 @@
22

33
use 5.014; # strict, //, s//r
44
use warnings;
5+
use autodie;
6+
57
$| = 1;
68
my @list = (
7-
{ name => "DEFAULT" , styleID => "0", fgColor => "FF0000", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
8-
{ name => "INSTRUCTION WORD" , styleID => "5", fgColor => "0000FF", bgColor => "FFFFFF", fontName => "", fontStyle => "1", fontSize => "", keywordClass => 'instre1', colorStyle => '0', },
9-
{ name => "NUMBER" , styleID => "4", fgColor => "FF0000", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
10-
{ name => "OPERATOR" , styleID => "10", fgColor => "000080", bgColor => "FFFFFF", fontName => "", fontStyle => "1", fontSize => "", colorStyle => '0', },
11-
{ name => "IDENTIFIER" , styleID => "11", fgColor => "004080", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
12-
{ name => "SCALAR" , styleID => "12", fgColor => "FF8000", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
13-
{ name => "ARRAY" , styleID => "13", fgColor => "CF34CF", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
14-
{ name => "HASH" , styleID => "14", fgColor => "8080C0", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
15-
{ name => "SYMBOL TABLE" , styleID => "15", fgColor => "FF0000", bgColor => "FFFFFF", fontName => "", fontStyle => "1", fontSize => "", colorStyle => '0', },
16-
{ name => "PROTOTYPE" , styleID => "40", fgColor => "000080", bgColor => "FFFFFF", fontName => "", fontStyle => "1", fontSize => "", colorStyle => '0', },
17-
{ name => "COMMENT LINE" , styleID => "2", fgColor => "008000", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
18-
{ name => "STRING SINGLEQUOTE" , styleID => "7", fgColor => "808080", bgColor => "FFFFFF", fontName => "", fontStyle => "2", fontSize => "", colorStyle => '0', },
19-
{ name => "STRING DOUBLEQUOTE" , styleID => "6", fgColor => "808080", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
20-
{ name => "STRING BACKTICKS" , styleID => "20", fgColor => "FFFF00", bgColor => "808080", fontName => "", fontStyle => "1", fontSize => "", colorStyle => '0', },
21-
{ name => "STRING Q" , styleID => "26", fgColor => "804080", bgColor => "FFFFFF", fontName => "", fontStyle => "2", fontSize => "", colorStyle => '0', },
22-
{ name => "STRING QQ" , styleID => "27", fgColor => "804080", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
23-
{ name => "STRING QX" , styleID => "28", fgColor => "8000FF", bgColor => "FFEEEC", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
24-
{ name => "STRING QR" , styleID => "29", fgColor => "8080FF", bgColor => "F8FEDE", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
25-
{ name => "STRING QW" , styleID => "30", fgColor => "CF34CF", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
26-
{ name => "REGEX MATCH" , styleID => "17", fgColor => "8080FF", bgColor => "F8FEDE", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
27-
{ name => "REGEX SUBSTITUTION" , styleID => "18", fgColor => "8080C0", bgColor => "FFEEEC", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
28-
{ name => "TRANSLATION" , styleID => "44", fgColor => "8080C0", bgColor => "FFEEEC", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
29-
{ name => "HEREDOC DELIMITER" , styleID => "22", fgColor => "550055", bgColor => "EEEEFF", fontName => "", fontStyle => "1", fontSize => "", colorStyle => '0', },
30-
{ name => "HEREDOC SINGLEQUOTE" , styleID => "23", fgColor => "7F007F", bgColor => "EEEEFF", fontName => "", fontStyle => "2", fontSize => "", colorStyle => '0', },
31-
{ name => "HEREDOC DOUBLEQUOTE" , styleID => "24", fgColor => "7F007F", bgColor => "EEEEFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
32-
{ name => "HEREDOC BACKTICK" , styleID => "25", fgColor => "8000FF", bgColor => "FFEEEC", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
33-
{ name => "VAR IN STRING" , styleID => "43", fgColor => "808080", bgColor => "FFFFFF", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
34-
{ name => "VAR IN REGEX" , styleID => "54", fgColor => "8080FF", bgColor => "F8FEDE", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
35-
{ name => "VAR IN REGEX SUBSTITUTION" , styleID => "55", fgColor => "8080C0", bgColor => "FFEEEC", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
36-
{ name => "VAR IN BACKTICKS" , styleID => "57", fgColor => "FFFF00", bgColor => "808080", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
37-
{ name => "VAR IN HEREDOC DOUBLEQUOTE" , styleID => "61", fgColor => "7F007F", bgColor => "EEEEFF", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
38-
{ name => "VAR IN HEREDOC BACKTICK" , styleID => "62", fgColor => "8000FF", bgColor => "FFEEEC", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
39-
{ name => "VAR IN STRING QQ" , styleID => "64", fgColor => "804080", bgColor => "FFFFFF", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
40-
{ name => "VAR IN STRING QX" , styleID => "65", fgColor => "8000FF", bgColor => "FFEEEC", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
41-
{ name => "VAR IN STRING QR" , styleID => "66", fgColor => "8080FF", bgColor => "F8FEDE", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
42-
{ name => "FORMAT IDENTIFIER" , styleID => "41", fgColor => "C000C0", bgColor => "FFFFFF", fontName => "", fontStyle => "2", fontSize => "", colorStyle => '0', },
43-
{ name => "FORMAT BODY" , styleID => "42", fgColor => "C000C0", bgColor => "FFF0FF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
44-
{ name => "DATA SECTION" , styleID => "21", fgColor => "808080", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
45-
{ name => "POD" , styleID => "3", fgColor => "000000", bgColor => "FFFFFF", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
46-
{ name => "POD VERBATIM" , styleID => "31", fgColor => "004000", bgColor => "EEFFEE", fontName => "", fontStyle => "0", fontSize => "", colorStyle => '0', },
47-
{ name => "SYNTAX ERROR" , styleID => "1", fgColor => "FF80C0", bgColor => "FFFFFF", fontName => "", fontStyle => "3", fontSize => "", colorStyle => '0', },
9+
{ name => "DEFAULT" , styleID => "0" },
10+
{ name => "INSTRUCTION WORD" , styleID => "5" },
11+
{ name => "NUMBER" , styleID => "4" },
12+
{ name => "OPERATOR" , styleID => "10" },
13+
{ name => "IDENTIFIER" , styleID => "11", fontName => "", fontStyle => "1", fontSize => "" },
14+
{ name => "SCALAR" , styleID => "12" },
15+
{ name => "ARRAY" , styleID => "13" },
16+
{ name => "HASH" , styleID => "14" },
17+
{ name => "SYMBOL TABLE" , styleID => "15" },
18+
{ name => "PROTOTYPE" , styleID => "40", fontName => "", fontStyle => "1", fontSize => "" },
19+
{ name => "COMMENT LINE" , styleID => "2" },
20+
{ name => "STRING SINGLEQUOTE" , styleID => "7" },
21+
{ name => "STRING DOUBLEQUOTE" , styleID => "6" },
22+
{ name => "STRING BACKTICKS" , styleID => "20" },
23+
{ name => "STRING Q" , styleID => "26", fontName => "", fontStyle => "2", fontSize => "" },
24+
{ name => "STRING QQ" , styleID => "27", fontName => "", fontStyle => "0", fontSize => "" },
25+
{ name => "STRING QX" , styleID => "28", fontName => "", fontStyle => "0", fontSize => "" },
26+
{ name => "STRING QR" , styleID => "29", fontName => "", fontStyle => "0", fontSize => "" },
27+
{ name => "STRING QW" , styleID => "30", fontName => "", fontStyle => "0", fontSize => "" },
28+
{ name => "REGEX MATCH" , styleID => "17" },
29+
{ name => "REGEX SUBSTITUTION" , styleID => "18" },
30+
{ name => "TRANSLATION" , styleID => "44", fontName => "", fontStyle => "0", fontSize => "" },
31+
{ name => "HEREDOC DELIMITER" , styleID => "22", fontName => "", fontStyle => "1", fontSize => "" },
32+
{ name => "HEREDOC SINGLEQUOTE" , styleID => "23", fontName => "", fontStyle => "2", fontSize => "" },
33+
{ name => "HEREDOC DOUBLEQUOTE" , styleID => "24", fontName => "", fontStyle => "0", fontSize => "" },
34+
{ name => "HEREDOC BACKTICK" , styleID => "25", fontName => "", fontStyle => "0", fontSize => "" },
35+
{ name => "VAR IN STRING" , styleID => "43", fontName => "", fontStyle => "3", fontSize => "" },
36+
{ name => "VAR IN REGEX" , styleID => "54", fontName => "", fontStyle => "3", fontSize => "" },
37+
{ name => "VAR IN REGEX SUBSTITUTION" , styleID => "55", fontName => "", fontStyle => "3", fontSize => "" },
38+
{ name => "VAR IN BACKTICKS" , styleID => "57", fontName => "", fontStyle => "3", fontSize => "" },
39+
{ name => "VAR IN HEREDOC DOUBLEQUOTE" , styleID => "61", fontName => "", fontStyle => "3", fontSize => "" },
40+
{ name => "VAR IN HEREDOC BACKTICK" , styleID => "62", fontName => "", fontStyle => "3", fontSize => "" },
41+
{ name => "VAR IN STRING QQ" , styleID => "64", fontName => "", fontStyle => "3", fontSize => "" },
42+
{ name => "VAR IN STRING QX" , styleID => "65", fontName => "", fontStyle => "3", fontSize => "" },
43+
{ name => "VAR IN STRING QR" , styleID => "66", fontName => "", fontStyle => "3", fontSize => "" },
44+
{ name => "FORMAT IDENTIFIER" , styleID => "41", fontName => "", fontStyle => "2", fontSize => "" },
45+
{ name => "FORMAT BODY" , styleID => "42", fontName => "", fontStyle => "0", fontSize => "" },
46+
{ name => "DATA SECTION" , styleID => "21" },
47+
{ name => "POD" , styleID => "3" },
48+
{ name => "POD VERBATIM" , styleID => "31", fontName => "", fontStyle => "0", fontSize => "" },
49+
{ name => "ERROR" , styleID => "1" },
4850
);
4951
my %row;
5052
for my $r ( 0 .. $#list ) {
@@ -57,6 +59,27 @@
5759
# print join(", ", map { sprintf '%02d', $row{$_} } sort { $row{$a} <=> $row{$b} } keys(%row)), "\n";
5860
# exit;
5961

62+
my %defaults = ();
63+
64+
sub set_defaults {
65+
my ($fname) = @_;
66+
my $rethref = {};
67+
open my $fh, '<', $fname;
68+
while(<$fh>) {
69+
next unless m{(?-s)<WidgetStyle.*?styleID="32".*?/>};
70+
print STDERR "For $fname, found $_";
71+
if( m{fgColor\h*=\h*"(\w+)"} ) { $rethref->{fgColor} = $1; };
72+
if( m{bgColor\h*=\h*"(\w+)"} ) { $rethref->{bgColor} = $1; };
73+
}
74+
return $rethref;
75+
}
76+
77+
if(@ARGV) {
78+
for my $fn (@ARGV) {
79+
$defaults{$fn} = set_defaults($fn);
80+
}
81+
}
82+
6083
while(<>) {
6184
state $within;
6285
state $group;
@@ -67,6 +90,13 @@
6790
}
6891
if( $within && m{</LexerType>} ) {
6992
for my $r (0 .. $#list ) {
93+
if(exists $defaults{$ARGV}) {
94+
for my $key (qw/fgColor bgColor/) {
95+
next if $list[$r]{styleID}<=21 and defined($list[$r]{$key});
96+
if(exists $defaults{$ARGV}{$key}) { $list[$r]{$key} = $defaults{$ARGV}{$key}; }
97+
}
98+
}
99+
70100
printf qq( %s ), '<WordsStyle';
71101
for my $key ( qw/name styleID fgColor bgColor fontName fontStyle fontSize colorStyle keywordClass/ ) {
72102
printf qq(%s="%s" ), $key, $list[$r]{$key} if exists $list[$r]{$key};
@@ -97,7 +127,7 @@
97127
$_ = ''; # don't print (yet) when $within...
98128
next if $r < 0; # remove 8=PUNCTUATION 9=PREPROCESSOR 19=LONGQUOTE
99129

100-
$list[$r]{name} = $name // $list[$r]{name};
130+
#$list[$r]{name} = $name // $list[$r]{name}; # use the new name no matter what
101131
$list[$r]{fgColor} = $fg // $list[$r]{fgColor};
102132
$list[$r]{bgColor} = $bg // $list[$r]{bgColor};
103133
$list[$r]{fontName} = $fn // $list[$r]{fontName};

perlSyntax/testNewScintiallaProperties.pl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
print for my %hash = ( key => 'value', another => 'string');
2222
print for my $re = qr/regex with $var embedded/i;
2323
print for "hello" =~ m/this $var here/;
24-
print for "hello" =~ s/this $var her/and $var there/r;
24+
print for "hello" =~ s/this $var here/and $var there/r;
2525
print for "hello" =~ y/one $var one/one $var one/;
2626
print my $x = ("5" x int(5)) . "string";
2727
if( -s $0 ) { print "-X are instruction words, even though they aren't in the list\n" }

0 commit comments

Comments
 (0)