| " 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: |