diff options
Diffstat (limited to 'Auxiliary/vim/extract-upper-case.pl')
-rwxr-xr-x | Auxiliary/vim/extract-upper-case.pl | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/Auxiliary/vim/extract-upper-case.pl b/Auxiliary/vim/extract-upper-case.pl index ea77cbb..9e3c439 100755 --- a/Auxiliary/vim/extract-upper-case.pl +++ b/Auxiliary/vim/extract-upper-case.pl @@ -29,8 +29,8 @@ push @modules, "ExternalProject"; # variables open(CMAKE, "$cmake --help-variable-list|") or die "could not run cmake"; while (<CMAKE>) { + next if /\</; # skip if containing < or > chomp; - next if /\</; # skip VARIABLES which contained <>-"templates" push @variables, $_; } close(CMAKE); @@ -70,11 +70,24 @@ my @generator_expr = extract_upper("$cmake --help-manual cmake-generator-express # properties open(CMAKE, "$cmake --help-property-list|"); while (<CMAKE>) { + next if /\</; # skip if containing < or > chomp; push @properties, $_; } close(CMAKE); +# transform all properties in a hash +my %properties = map { $_ => 1 } @properties; + +# version +open(CMAKE, "$cmake --version|"); +my $version = 'unknown'; +while (<CMAKE>) { + chomp; + $version = $_ if /cmake version/; +} +close(CMAKE); + # generate cmake.vim open(IN, "<cmake.vim.in") or die "could not read cmake.vim.in"; open(OUT, ">syntax/cmake.vim") or die "could not write to syntax/cmake.vim"; @@ -102,6 +115,8 @@ while(<IN>) print OUT " " x 12 , "\\ ", join(" ", sort keys %loop), "\n"; } elsif ($1 eq "DEPRECATED") { print OUT " " x 12 , "\\ ", join(" ", sort keys %deprecated), "\n"; + } elsif ($1 eq "PROPERTIES") { + print OUT " " x 12 , "\\ ", join(" ", sort keys %properties), "\n"; } elsif ($1 eq "KEYWORDS") { foreach my $k (sort keys %keywords) { print OUT "syn keyword cmakeKW$k contained\n"; @@ -111,6 +126,9 @@ while(<IN>) } } elsif ($1 eq "KEYWORDS_HIGHLIGHT") { print OUT join("\n", @keyword_hi), "\n"; + } elsif ($1 eq "VERSION") { + $_ =~ s/\@VERSION\@/$version/; + print OUT $_; } else { print "ERROR do not know how to replace $1\n"; } @@ -128,7 +146,6 @@ sub extract_upper open(KW, $input); while (<KW>) { - foreach my $w (m/\b([A-Z_]{2,})\b/g) { next if exists $variables{$w} or # skip if it is a variable |