1" Vim syntax file 2" Program: CMake - Cross-Platform Makefile Generator 3" Module: $RCSfile: cmake-syntax.vim,v $ 4" Language: CMake 5" Maintainer: Karthik Krishnan <[email protected]> 6" Former Maintainer: Dimitri Merejkowsky <[email protected]> 7" Author: Andy Cedilnik <[email protected]> 8" Last Change: 2015 Sep 29 9" Version: $Revision: 1.10 $ 10" 11" Licence: The CMake license applies to this file. See 12" http://www.cmake.org/HTML/Copyright.html 13" This implies that distribution with Vim is allowed 14 15" For version 5.x: Clear all syntax items 16" For version 6.x: Quit when a syntax file was already loaded 17if version < 600 18 syntax clear 19elseif exists("b:current_syntax") 20 finish 21endif 22let s:keepcpo= &cpo 23set cpo&vim 24 25syn case ignore 26syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained 27syn region cmakeComment start="#" end="$" contains=@Spell,cmakeTodo 28syn region cmakeRegistry start=/\[/ end=/]/ 29 \ contained oneline contains=CONTAINED,cmakeTodo,cmakeEscaped 30syn region cmakeVariableValue start=/\${/ end=/}/ 31 \ contained oneline contains=CONTAINED,cmakeTodo 32syn region cmakeEnvironment start=/\$ENV{/ end=/}/ 33 \ contained oneline contains=CONTAINED,cmakeTodo 34syn region cmakeString start=/"/ end=/"/ 35 \ contains=CONTAINED,cmakeTodo,cmakeOperators 36syn region cmakeArguments start=/(/ end=/)/ 37 \ contains=ALLBUT,cmakeArguments,cmakeTodo 38syn keyword cmakeSystemVariables 39 \ WIN32 UNIX APPLE CYGWIN BORLAND MINGW MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 MSVC90 40syn keyword cmakeOperators 41 \ ABSOLUTE AND BOOL CACHE COMMAND DEFINED DOC EQUAL EXISTS EXT FALSE GREATER INTERNAL LESS MATCHES NAME NAMES NAME_WE NOT OFF ON OR PATH PATHS PROGRAM STREQUAL STRGREATER STRING STRLESS TRUE 42 \ contained 43syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_FILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WRAP_EXCLUDE_FILES 44 \ nextgroup=cmakeArguments 45 46" The keywords are generated as: cmake --help-command-list | tr "\n" " " 47syn keyword cmakeStatement 48 \ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPENDENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_SUBDIRECTORY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMMAND BUILD_NAME CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ELSE ELSEIF ENABLE_LANGUAGE ENABLE_TESTING ENDFOREACH ENDFUNCTION ENDIF ENDMACRO ENDWHILE EXEC_PROGRAM EXECUTE_PROCESS EXPORT_LIBRARY_DEPENDENCIES FILE FIND_FILE FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI FOREACH FUNCTION GET_CMAKE_PROPERTY GET_DIRECTORY_PROPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY GET_TEST_PROPERTY IF INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPRESSION INSTALL INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS LINK_DIRECTORIES LINK_LIBRARIES LIST LOAD_CACHE LOAD_COMMAND MACRO MAKE_DIRECTORY MARK_AS_ADVANCED MATH MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CPP QT_WRAP_UI REMOVE REMOVE_DEFINITIONS SEPARATE_ARGUMENTS SET SET_DIRECTORY_PROPERTIES SET_SOURCE_FILES_PROPERTIES SET_TARGET_PROPERTIES SET_TESTS_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIR_DEPENDS SUBDIRS TARGET_LINK_LIBRARIES TRY_COMPILE TRY_RUN UNSET USE_MANGLED_MESA UTILITY_SOURCE VARIABLE_REQUIRES VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TCL WHILE WRITE_FILE 49 \ nextgroup=cmakeArguments 50syn keyword cmakeTodo 51 \ TODO FIXME XXX 52 \ contained 53 54" Define the default highlighting. 55" For version 5.7 and earlier: only when not done already 56" For version 5.8 and later: only when an item doesn't have highlighting yet 57if version >= 508 || !exists("did_cmake_syntax_inits") 58 if version < 508 59 let did_cmake_syntax_inits = 1 60 command -nargs=+ HiLink hi link <args> 61 else 62 command -nargs=+ HiLink hi def link <args> 63 endif 64 65 HiLink cmakeStatement Statement 66 HiLink cmakeComment Comment 67 HiLink cmakeString String 68 HiLink cmakeVariableValue Type 69 HiLink cmakeRegistry Underlined 70 HiLink cmakeArguments Identifier 71 HiLink cmakeArgument Constant 72 HiLink cmakeEnvironment Special 73 HiLink cmakeOperators Operator 74 HiLink cmakeMacro PreProc 75 HiLink cmakeError Error 76 HiLink cmakeTodo TODO 77 HiLink cmakeEscaped Special 78 79 delcommand HiLink 80endif 81 82let b:current_syntax = "cmake" 83 84let &cpo = s:keepcpo 85unlet s:keepcpo 86 87"EOF" 88