Browse Source

Merge topic 'update-vim-syntax'

b410dd5a05 Merge branch 'upstream-vim-cmake-syntax' into update-vim-syntax
06434fc274 vim-cmake-syntax 2019-05-29 (c42ede9f)

Acked-by: Kitware Robot <[email protected]>
Merge-request: !3394
Brad King 6 years ago
parent
commit
c0b560f664
3 changed files with 725 additions and 11 deletions
  1. 2 2
      Auxiliary/vim/cmake.vim.in
  2. 17 1
      Auxiliary/vim/extract-upper-case.pl
  3. 706 8
      Auxiliary/vim/syntax/cmake.vim

+ 2 - 2
Auxiliary/vim/cmake.vim.in

@@ -31,11 +31,11 @@ syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contain
 
 
 syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped
 syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped
 
 
-syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo
+syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo,cmakeVariableValue
 
 
 syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo
 syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo
 
 
-syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo
+syn region cmakeArguments start="(" end=")" contains=ALLBUT,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandConditional,cmakeCommandRepeat,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo
 
 
 syn case match
 syn case match
 
 

+ 17 - 1
Auxiliary/vim/extract-upper-case.pl

@@ -13,6 +13,9 @@ my @properties;
 my @modules;
 my @modules;
 my %keywords; # command => keyword-list
 my %keywords; # command => keyword-list
 
 
+# find cmake/Modules/ | sed -rn 's/.*CMakeDetermine(.+)Compiler.cmake/\1/p' | sort
+my @languages = qw(ASM ASM_MASM ASM_NASM C CSharp CUDA CXX Fortran Java RC Swift);
+
 # unwanted upper-cases
 # unwanted upper-cases
 my %unwanted = map { $_ => 1 } qw(VS CXX IDE NOTFOUND NO_ DFOO DBAR NEW);
 my %unwanted = map { $_ => 1 } qw(VS CXX IDE NOTFOUND NO_ DFOO DBAR NEW);
 	# cannot remove ALL - exists for add_custom_command
 	# cannot remove ALL - exists for add_custom_command
@@ -30,8 +33,21 @@ push @modules, "ExternalProject";
 # variables
 # variables
 open(CMAKE, "$cmake --help-variable-list|") or die "could not run cmake";
 open(CMAKE, "$cmake --help-variable-list|") or die "could not run cmake";
 while (<CMAKE>) {
 while (<CMAKE>) {
-	next if /\</; # skip if containing < or >
 	chomp;
 	chomp;
+
+	if (/<(.*?)>/) {
+		if ($1 eq 'LANG') {
+			foreach my $lang (@languages) {
+			(my $V = $_) =~ s/<.*>/$lang/;
+				push @variables, $V;
+			}
+
+			next
+		} else {
+			next; # skip if containing < or >
+		}
+	}
+
 	push @variables, $_;
 	push @variables, $_;
 }
 }
 close(CMAKE);
 close(CMAKE);

File diff suppressed because it is too large
+ 706 - 8
Auxiliary/vim/syntax/cmake.vim


Some files were not shown because too many files changed in this diff