blob: 8e73e329e02333ae975a7c8f42440b042bdec281 [file] [log] [blame]
Bram Moolenaarc1e37902006-04-18 21:55:01 +00001" Vim syntax file
Bram Moolenaar945e2db2010-06-05 17:43:32 +02002" Program: CMake - Cross-Platform Makefile Generator
3" Module: $RCSfile: cmake-syntax.vim,v $
Bram Moolenaarc1e37902006-04-18 21:55:01 +00004" Language: CMake
Bram Moolenaar256972a2015-12-29 19:10:25 +01005" Maintainer: Dimitri Merejkowsky <d.merej@gmail.com>
6" Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com>
Bram Moolenaar60cce2f2015-10-13 23:21:27 +02007" Author: Andy Cedilnik <andy.cedilnik@kitware.com>
Bram Moolenaar256972a2015-12-29 19:10:25 +01008" Last Change: 2015 Dec 17
Bram Moolenaar945e2db2010-06-05 17:43:32 +02009" Version: $Revision: 1.10 $
Bram Moolenaarc1e37902006-04-18 21:55:01 +000010"
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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020015" quit when a syntax file was already loaded
16if exists("b:current_syntax")
Bram Moolenaarc1e37902006-04-18 21:55:01 +000017 finish
18endif
Bram Moolenaar9a7224b2012-04-30 15:56:52 +020019let s:keepcpo= &cpo
20set cpo&vim
Bram Moolenaarc1e37902006-04-18 21:55:01 +000021
22syn case ignore
Bram Moolenaar945e2db2010-06-05 17:43:32 +020023syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained
Bram Moolenaarc8734422012-06-01 22:38:45 +020024syn region cmakeComment start="#" end="$" contains=@Spell,cmakeTodo
Bram Moolenaar945e2db2010-06-05 17:43:32 +020025syn region cmakeRegistry start=/\[/ end=/]/
26 \ contained oneline contains=CONTAINED,cmakeTodo,cmakeEscaped
27syn region cmakeVariableValue start=/\${/ end=/}/
28 \ contained oneline contains=CONTAINED,cmakeTodo
29syn region cmakeEnvironment start=/\$ENV{/ end=/}/
30 \ contained oneline contains=CONTAINED,cmakeTodo
Bram Moolenaarca635012015-09-25 20:34:21 +020031syn region cmakeString start=/"/ end=/"/
Bram Moolenaar945e2db2010-06-05 17:43:32 +020032 \ contains=CONTAINED,cmakeTodo,cmakeOperators
Bram Moolenaarca635012015-09-25 20:34:21 +020033syn region cmakeArguments start=/(/ end=/)/
Bram Moolenaar945e2db2010-06-05 17:43:32 +020034 \ contains=ALLBUT,cmakeArguments,cmakeTodo
Bram Moolenaarc1e37902006-04-18 21:55:01 +000035syn keyword cmakeSystemVariables
Bram Moolenaar945e2db2010-06-05 17:43:32 +020036 \ WIN32 UNIX APPLE CYGWIN BORLAND MINGW MSVC MSVC_IDE MSVC60 MSVC70 MSVC71 MSVC80 MSVC90
Bram Moolenaarc1e37902006-04-18 21:55:01 +000037syn keyword cmakeOperators
Bram Moolenaar945e2db2010-06-05 17:43:32 +020038 \ 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
39 \ contained
Bram Moolenaarc1e37902006-04-18 21:55:01 +000040syn 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
Bram Moolenaar945e2db2010-06-05 17:43:32 +020041 \ nextgroup=cmakeArguments
Bram Moolenaarc1e37902006-04-18 21:55:01 +000042
Bram Moolenaar945e2db2010-06-05 17:43:32 +020043" The keywords are generated as: cmake --help-command-list | tr "\n" " "
Bram Moolenaarca635012015-09-25 20:34:21 +020044syn keyword cmakeStatement
Bram Moolenaar945e2db2010-06-05 17:43:32 +020045 \ 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
46 \ nextgroup=cmakeArguments
Bram Moolenaarca635012015-09-25 20:34:21 +020047syn keyword cmakeTodo
48 \ TODO FIXME XXX
Bram Moolenaar945e2db2010-06-05 17:43:32 +020049 \ contained
Bram Moolenaarc1e37902006-04-18 21:55:01 +000050
51" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020052" Only when an item doesn't have highlighting yet
53command -nargs=+ HiLink hi def link <args>
Bram Moolenaarc1e37902006-04-18 21:55:01 +000054
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020055HiLink cmakeStatement Statement
56HiLink cmakeComment Comment
57HiLink cmakeString String
58HiLink cmakeVariableValue Type
59HiLink cmakeRegistry Underlined
60HiLink cmakeArguments Identifier
61HiLink cmakeArgument Constant
62HiLink cmakeEnvironment Special
63HiLink cmakeOperators Operator
64HiLink cmakeMacro PreProc
65HiLink cmakeError Error
66HiLink cmakeTodo TODO
67HiLink cmakeEscaped Special
Bram Moolenaarc1e37902006-04-18 21:55:01 +000068
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020069delcommand HiLink
Bram Moolenaarc1e37902006-04-18 21:55:01 +000070
71let b:current_syntax = "cmake"
72
Bram Moolenaar9a7224b2012-04-30 15:56:52 +020073let &cpo = s:keepcpo
74unlet s:keepcpo
75
Bram Moolenaarc1e37902006-04-18 21:55:01 +000076"EOF"