cmake.vim.in 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. " Vim syntax file
  2. " Program: CMake - Cross-Platform Makefile Generator
  3. " Version: @VERSION@
  4. " Language: CMake
  5. " Author: Andy Cedilnik <[email protected]>,
  6. " Nicholas Hutchinson <[email protected]>,
  7. " Patrick Boettcher <[email protected]>
  8. " Maintainer: Dimitri Merejkowsky <[email protected]>
  9. " Former Maintainer: Karthik Krishnan <[email protected]>
  10. " Last Change: @DATE@
  11. "
  12. " License: The CMake license applies to this file. See
  13. " https://cmake.org/licensing
  14. " This implies that distribution with Vim is allowed
  15. if exists('b:current_syntax')
  16. finish
  17. endif
  18. let s:keepcpo= &cpoptions
  19. set cpoptions&vim
  20. syn cluster cmakeControl contains=
  21. \ cmakeIf,
  22. \ cmakeElse,
  23. \ cmakeForeach,
  24. \ cmakeWhile,
  25. \ cmakeBlock,
  26. \ cmakeFunction,
  27. \ cmakeMacro
  28. syn region cmakeBracketArgument start="\[\z(=*\)\[" end="\]\z1\]" fold contains=cmakeTodo,@Spell
  29. syn region cmakeComment start="#\(\[=*\[\)\@!" end="$" contains=cmakeTodo,@Spell
  30. syn region cmakeBracketComment start="#\[\z(=*\)\[" end="\]\z1\]" fold contains=cmakeTodo,@Spell
  31. syn match cmakeEscaped /\(\\\\\|\\"\|\\n\|\\t\)/ contained
  32. syn region cmakeRegistry start="\[" end="]" contained oneline contains=cmakeTodo,cmakeEscaped
  33. syn region cmakeGeneratorExpression start="$<" end=">" contained oneline contains=cmakeVariableValue,cmakeProperty,cmakeGeneratorExpressions,cmakeTodo
  34. syn region cmakeString start='"' end='"' contained contains=cmakeTodo,cmakeVariableValue,cmakeEscaped,@Spell
  35. syn region cmakeVariableValue start="${" end="}" contained oneline contains=cmakeVariable,cmakeTodo,cmakeVariableValue
  36. syn region cmakeEnvironment start="$ENV{" end="}" contained oneline contains=cmakeTodo
  37. syn region cmakeArguments start="(" end=")" contains=ALLBUT,@cmakeControl,cmakeGeneratorExpressions,cmakeCommand,cmakeCommandDeprecated,cmakeCommandManuallyAdded,cmakeArguments,cmakeTodo,@Spell fold
  38. syn region cmakeIf matchgroup=cmakeKeyword start=/^\s*\<if\>/ end=/^\s*\<endif\>/ transparent fold contains=@cmakeControl,cmakeArguments
  39. syn match cmakeElse /^\s*\<else\(if\)\?\>/ contained contains=NONE
  40. syn region cmakeForeach matchgroup=cmakeKeyword start=/^\s*\<foreach\>/ end=/^\s*\<endforeach\>/ transparent fold contains=@cmakeControl,cmakeArguments
  41. syn region cmakeWhile matchgroup=cmakeKeyword start=/^\s*\<while\>/ end=/^\s*\<endwhile\>/ transparent fold contains=@cmakeControl,cmakeArguments
  42. syn region cmakeFunction matchgroup=cmakeKeyword start=/^\s*\<function\>/ end=/^\s*\<endfunction\>/ transparent fold contains=@cmakeControl,cmakeArguments
  43. syn region cmakeBlock matchgroup=cmakeKeyword start=/^\s*\<block\>/ end=/^\s*\<endblock\>/ transparent fold contains=@cmakeControl,cmakeArguments
  44. syn region cmakeMacro matchgroup=cmakeKeyword start=/^\s*\<macro\>/ end=/^\s*\<endmacro\>/ transparent fold contains=@cmakeControl,cmakeArguments
  45. syn case match
  46. syn keyword cmakeProperty contained
  47. @PROPERTIES@
  48. syn keyword cmakeVariable contained
  49. @VARIABLE_LIST@
  50. syn keyword cmakeModule contained
  51. @MODULES@
  52. @KEYWORDS@
  53. syn keyword cmakeGeneratorExpressions contained
  54. @GENERATOR_EXPRESSIONS@
  55. syn case ignore
  56. syn keyword cmakeCommand
  57. @COMMAND_LIST@
  58. \ nextgroup=cmakeArguments
  59. syn keyword cmakeCommandDeprecated
  60. @DEPRECATED@
  61. \ nextgroup=cmakeArguments
  62. syn case match
  63. syn keyword cmakeTodo
  64. \ TODO FIXME XXX
  65. \ contained
  66. hi def link cmakeBracketArgument String
  67. hi def link cmakeBracketComment Comment
  68. hi def link cmakeCommand Function
  69. hi def link cmakeCommandDeprecated WarningMsg
  70. hi def link cmakeComment Comment
  71. hi def link cmakeElse Conditional
  72. hi def link cmakeEnvironment Special
  73. hi def link cmakeEscaped Special
  74. hi def link cmakeGeneratorExpression WarningMsg
  75. hi def link cmakeGeneratorExpressions Constant
  76. hi def link cmakeKeyword Conditional
  77. hi def link cmakeModule Include
  78. hi def link cmakeProperty Constant
  79. hi def link cmakeRegistry Underlined
  80. hi def link cmakeString String
  81. hi def link cmakeTodo TODO
  82. hi def link cmakeVariableValue Type
  83. hi def link cmakeVariable Identifier
  84. @KEYWORDS_HIGHLIGHT@
  85. " Manually added - difficult to parse out of documentation
  86. syn case ignore
  87. syn keyword cmakeCommandManuallyAdded
  88. \ configure_package_config_file write_basic_package_version_file
  89. \ nextgroup=cmakeArguments
  90. syn case match
  91. syn keyword cmakeKWconfigure_package_config_file contained
  92. \ INSTALL_DESTINATION PATH_VARS NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO INSTALL_PREFIX
  93. syn keyword cmakeKWconfigure_package_config_file_constants contained
  94. \ AnyNewerVersion SameMajorVersion SameMinorVersion ExactVersion
  95. syn keyword cmakeKWwrite_basic_package_version_file contained
  96. \ VERSION COMPATIBILITY
  97. hi def link cmakeCommandManuallyAdded Function
  98. hi def link cmakeKWconfigure_package_config_file ModeMsg
  99. hi def link cmakeKWwrite_basic_package_version_file ModeMsg
  100. hi def link cmakeKWconfigure_package_config_file_constants Constant
  101. let b:current_syntax = 'cmake'
  102. let &cpoptions = s:keepcpo
  103. unlet s:keepcpo
  104. " vim: set nowrap: