summaryrefslogtreecommitdiffstats
path: root/Auxiliary/vim/extract-upper-case.pl
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2020-10-28 15:25:35 (GMT)
committerBrad King <brad.king@kitware.com>2020-10-28 15:30:26 (GMT)
commitaebdd9ff2cba50f8ace3cb1784dd04582019cc40 (patch)
tree82f9b0e03df4372b83819eb76d4ff4f7e1308772 /Auxiliary/vim/extract-upper-case.pl
parentdab947fec00175736b304693c1647a6992ae5544 (diff)
parent7b72d3055fbfa3e35abc7ead869c9197d5d51215 (diff)
downloadCMake-aebdd9ff2cba50f8ace3cb1784dd04582019cc40.zip
CMake-aebdd9ff2cba50f8ace3cb1784dd04582019cc40.tar.gz
CMake-aebdd9ff2cba50f8ace3cb1784dd04582019cc40.tar.bz2
Merge branch 'upstream-vim-cmake-syntax' into update-vim-syntax
* upstream-vim-cmake-syntax: vim-cmake-syntax 2020-10-28 (bcc3a97a)
Diffstat (limited to 'Auxiliary/vim/extract-upper-case.pl')
-rwxr-xr-xAuxiliary/vim/extract-upper-case.pl24
1 files changed, 24 insertions, 0 deletions
diff --git a/Auxiliary/vim/extract-upper-case.pl b/Auxiliary/vim/extract-upper-case.pl
index 204b496..1179199 100755
--- a/Auxiliary/vim/extract-upper-case.pl
+++ b/Auxiliary/vim/extract-upper-case.pl
@@ -3,6 +3,8 @@
use strict;
use warnings;
use POSIX qw(strftime);
+use JSON;
+use File::Basename;
#my $cmake = "/home/pboettch/devel/upstream/cmake/build/bin/cmake";
my $cmake = "cmake";
@@ -96,6 +98,28 @@ close(CMAKE);
# transform all properties in a hash
my %properties = map { $_ => 1 } @properties;
+# read in manually written files
+my $modules_dir = dirname(__FILE__) . "/modules";
+opendir(DIR, $modules_dir) || die "can't opendir $modules_dir: $!";
+my @json_files = grep { /\.json$/ && -f "$modules_dir/$_" } readdir(DIR);
+closedir DIR;
+
+foreach my $file (@json_files) {
+ local $/; # Enable 'slurp' mode
+ open my $fh, "<", $modules_dir."/".$file;
+ my $json = <$fh>;
+ close $fh;
+
+ my $mod = decode_json($json);
+ foreach my $var (@{$mod->{variables}}) {
+ $variables{$var} = 1;
+ }
+
+ while (my ($cmd, $keywords) = each %{$mod->{commands}}) {
+ $keywords{$cmd} = [ sort @{$keywords} ];
+ }
+}
+
# version
open(CMAKE, "$cmake --version|");
my $version = 'unknown';