| " Vim syntax file | |
| " Program: CMake - Cross-Platform Makefile Generator | |
| " Version: @VERSION@ | |
| " Language: CMake | |
| " Author: Andy Cedilnik <andy.cedilnik@kitware.com>, | |
| " Nicholas Hutchinson <nshutchinson@gmail.com>, | |
| " Patrick Boettcher <patrick.boettcher@posteo.de> | |
| " Maintainer: Dimitri Merejkowsky <d.merej@gmail.com> | |
| " Former Maintainer: Karthik Krishnan <karthik.krishnan@kitware.com> | |
| " Last Change: @DATE@ | |
| " | |
| " License: The CMake license applies to this file. See | |
| " https://cmake.org/licensing | |
| " This implies that distribution with Vim is allowed | |
| if exists('b:current_syntax') | |
| finish | |
| endif | |
| let s:keepcpo= &cpoptions | |
| set cpoptions&vim | |
| syn cluster cmakeControl contains= | |
| \ cmakeIf, | |
| \ cmakeElse, | |
| \ cmakeForeach, | |
| \ cmakeWhile, | |
| \ cmakeBlock, | |
| \ cmakeFunction, | |
| \ cmakeMacro | |
| syn region cmakeBracketArgument start="\[\z(=*\)\[" end="\]\z1\]" fold contains=cmakeTodo,@Spell | |
| syn region cmakeComment start="#\(\[=*\[\)\@!" end="$" contains=cmakeTodo,@Spell | |
| syn region cmakeBracketComment start="#\[\z(=*\)\[" end="\]\z1\]" fold contains=cmakeTodo,@Spell | |
| syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained | |
| syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped | |
| syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo | |
| syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped,@Spell | |
| syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo,cmakeVariableValue | |
| syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo | |
| syn region cmakeArguments start="(" end=")" contains=ALLBUT,@cmakeControl,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo,@Spell fold | |
| syn region cmakeIf matchgroup=cmakeKeyword start=/^\s*\<if\>/ end=/^\s*\<endif\>/ transparent fold contains=@cmakeControl,cmakeArguments | |
| syn match cmakeElse /^\s*\<else\(if\)\?\>/ contained contains=NONE | |
| syn region cmakeForeach matchgroup=cmakeKeyword start=/^\s*\<foreach\>/ end=/^\s*\<endforeach\>/ transparent fold contains=@cmakeControl,cmakeArguments | |
| syn region cmakeWhile matchgroup=cmakeKeyword start=/^\s*\<while\>/ end=/^\s*\<endwhile\>/ transparent fold contains=@cmakeControl,cmakeArguments | |
| syn region cmakeFunction matchgroup=cmakeKeyword start=/^\s*\<function\>/ end=/^\s*\<endfunction\>/ transparent fold contains=@cmakeControl,cmakeArguments | |
| syn region cmakeBlock matchgroup=cmakeKeyword start=/^\s*\<block\>/ end=/^\s*\<endblock\>/ transparent fold contains=@cmakeControl,cmakeArguments | |
| syn region cmakeMacro matchgroup=cmakeKeyword start=/^\s*\<macro\>/ end=/^\s*\<endmacro\>/ transparent fold contains=@cmakeControl,cmakeArguments | |
| syn case match | |
| syn keyword cmakeProperty contained | |
| @PROPERTIES@ | |
| syn keyword cmakeVariable contained | |
| @VARIABLE_LIST@ | |
| syn keyword cmakeModule contained | |
| @MODULES@ | |
| @KEYWORDS@ | |
| syn keyword cmakeGeneratorExpressions contained | |
| @GENERATOR_EXPRESSIONS@ | |
| syn case ignore | |
| syn keyword cmakeCommand | |
| @COMMAND_LIST@ | |
| \ nextgroup=cmakeArguments | |
| syn keyword cmakeCommandDeprecated | |
| @DEPRECATED@ | |
| \ nextgroup=cmakeArguments | |
| syn case match | |
| syn keyword cmakeTodo | |
| \ TODO FIXME XXX | |
| \ contained | |
| hi def link cmakeBracketArgument String | |
| hi def link cmakeBracketComment Comment | |
| hi def link cmakeCommand Function | |
| hi def link cmakeCommandDeprecated WarningMsg | |
| hi def link cmakeComment Comment | |
| hi def link cmakeElse Conditional | |
| hi def link cmakeEnvironment Special | |
| hi def link cmakeEscaped Special | |
| hi def link cmakeGeneratorExpression WarningMsg | |
| hi def link cmakeGeneratorExpressions Constant | |
| hi def link cmakeKeyword Conditional | |
| hi def link cmakeModule Include | |
| hi def link cmakeProperty Constant | |
| hi def link cmakeRegistry Underlined | |
| hi def link cmakeString String | |
| hi def link cmakeTodo TODO | |
| hi def link cmakeVariableValue Type | |
| hi def link cmakeVariable Identifier | |
| @KEYWORDS_HIGHLIGHT@ | |
| " Manually added - difficult to parse out of documentation | |
| syn case ignore | |
| syn keyword cmakeCommandManuallyAdded | |
| \ configure_package_config_file write_basic_package_version_file | |
| \ nextgroup=cmakeArguments | |
| syn case match | |
| syn keyword cmakeKWconfigure_package_config_file contained | |
| \ INSTALL_DESTINATION PATH_VARS NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO INSTALL_PREFIX | |
| syn keyword cmakeKWconfigure_package_config_file_constants contained | |
| \ AnyNewerVersion SameMajorVersion SameMinorVersion ExactVersion | |
| syn keyword cmakeKWwrite_basic_package_version_file contained | |
| \ VERSION COMPATIBILITY | |
| hi def link cmakeCommandManuallyAdded Function | |
| hi def link cmakeKWconfigure_package_config_file ModeMsg | |
| hi def link cmakeKWwrite_basic_package_version_file ModeMsg | |
| hi def link cmakeKWconfigure_package_config_file_constants Constant | |
| let b:current_syntax = 'cmake' | |
| let &cpoptions = s:keepcpo | |
| unlet s:keepcpo | |
| " vim: set nowrap: |