mirror of
https://github.com/Kitware/CMake.git
synced 2026-04-28 01:49:23 -05:00
1cf6005af7
* upstream-vim-cmake-syntax: vim-cmake-syntax 2025-07-28 (3c8cd401)
140 lines
5.0 KiB
Plaintext
140 lines
5.0 KiB
Plaintext
" 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:
|