[Cmake] (X)Emacs mode
Andy Cedilnik
andy . cedilnik at kitware . com
29 Apr 2003 12:17:02 -0400
--=-y0SSEq+QQhOLS8pzJlmO
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Hi Peter,
I don't want to complain too much, but I already posted indent and
syntax files for vim.
Here they are. If you want we can merge them.
Andy
On Tue, 2003-04-29 at 11:50, Peter Vanroose wrote:
> And here is a CMake syntax file for use with vim.
>
> Usage: place in your $VIMRUNTIME/syntax directory and add the following
> line to your syntax.vim :
> au BufNewFile,BufRead CMakeLists.txt so $VIM/syntax/cmake.vim
>
>
> -- Peter Vanroose.
--=-y0SSEq+QQhOLS8pzJlmO
Content-Disposition: attachment; filename=cmake.indent.vim
Content-Type: text/plain; name=cmake.indent.vim; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
" Vim indent file
" Language: CMake (ft=cmake)
" Author: Andy Cedilnik <andy . cedilnik at kitware . com>
" URL: http://www . cmake . org
" Last Change: Sun Mar 23 15:41:55 EST 2003
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
setlocal indentexpr=CMakeGetIndent(v:lnum)
" Only define the function once.
if exists("*CMakeGetIndent")
finish
endif
fun! CMakeGetIndent(lnum)
let this_line = getline(a:lnum)
" Find a non-blank line above the current line.
let lnum = a:lnum
let lnum = prevnonblank(lnum - 1)
let previous_line = getline(lnum)
" Hit the start of the file, use zero indent.
if lnum == 0
return 0
endif
let ind = indent(lnum)
" Add
if previous_line =~? '^\s#'
let ind = ind
else
if previous_line =~? '^\s*\(IF\|ELSE\|FOREACH\|MACRO\)\s*('
let ind = ind + &sw
endif
if previous_line =~? '([^)]*\(#.*\)\=$'
let ind = ind + &sw
endif
endif
" Subtract
if this_line =~? '^\s#'
let ind = ind
else
if this_line =~? '^\s*\(ENDIF\|ELSE\|ENDFOREACH\|ENDMACRO\)\s*('
let ind = ind - &sw
endif
if previous_line =~? '^[^(]*)\s*\(#.*\)\=$'
let ind = ind - &sw
endif
endif
return ind
endfun
--=-y0SSEq+QQhOLS8pzJlmO
Content-Disposition: attachment; filename=cmake.syntax.vim
Content-Type: text/plain; name=cmake.syntax.vim; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
" Vim syntax file
" Language: CMake
" Maintainer: Andy Cedilnik <andy . cedilnik at kitware . com>
" Last Change: Fri Mar 21 22:33:55 EST 2003
" For version 5.x: Clear all syntax items
" For version 6.x: Quit when a syntax file was already loaded
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
syn case match
syn match cmakeComment /#.*$/
syn region cmakeRegistry start=3D/\[/ end=3D/\]/ skip=3D/\\[\[\]]/
\ contained
syn match cmakeArgument /[^()"]+/
\ contained
syn match cmakeVariableValue /\${[^}]*}/
\ contained oneline
syn match cmakeEnvironment /\$ENV{.*}/
\ contained=20
syn keyword cmakeSystemVariables WIN32 UNIX APPLE
syn keyword cmakeOperators MATCHES AND OR EXISTS CACHE STRING BOOL PROGRAM =
NAMES INTERNAL PATHS DOC PATH NOT NAME NAME_WE FALSE TRUE ON OFF
" \ contained
syn region cmakeString start=3D/"/ end=3D/"/ skip=3D/\\"/
\ contains=3DcmakeVariableValue,cmakeRegistry keepend oneline
syn region cmakeArguments start=3D/\s*(/ end=3D/)/
\ contains=3DcmakeEnvironment,cmakeRegistry,cmakeVariableValue,c=
makeString,cmakeArgument,cmakeOperators keepend
syn keyword cmakeDeprecated ABSTRACT_FILES BUILD_NAME SOURCE_FILES SOURCE_F=
ILES_REMOVE VTK_MAKE_INSTANTIATOR VTK_WRAP_JAVA VTK_WRAP_PYTHON VTK_WRAP_TC=
L WRAP_EXCLUDE_FILES
\ nextgroup=3DcmakeArgument
syn keyword cmakeStatement=20
\ ADD_CUSTOM_COMMAND ADD_CUSTOM_TARGET ADD_DEFINITIONS ADD_DEPEN=
DENCIES ADD_EXECUTABLE ADD_LIBRARY ADD_TEST AUX_SOURCE_DIRECTORY BUILD_COMM=
AND CMAKE_MINIMUM_REQUIRED CONFIGURE_FILE CREATE_TEST_SOURCELIST ENABLE_TES=
TING FOREACH ENDFOREACH IF ELSE ENDIF EXPORT_LIBRARY_DEPENDENCIES FIND_FILE=
FIND_LIBRARY FIND_PACKAGE FIND_PATH FIND_PROGRAM FLTK_WRAP_UI GET_CMAKE_PR=
OPERTY GET_FILENAME_COMPONENT GET_SOURCE_FILE_PROPERTY GET_TARGET_PROPERTY =
INCLUDE INCLUDE_DIRECTORIES INCLUDE_EXTERNAL_MSPROJECT INCLUDE_REGULAR_EXPR=
ESSION INSTALL_FILES INSTALL_PROGRAMS INSTALL_TARGETS ITK_WRAP_TCL LINK_DIR=
ECTORIES LINK_LIBRARIES LOAD_CACHE LOAD_COMMAND MACRO ENDMACRO MAKE_DIRECTO=
RY MARK_AS_ADVANCED MESSAGE OPTION OUTPUT_REQUIRED_FILES PROJECT QT_WRAP_CP=
P QT_WRAP_UI SEPARATE_ARGUMENTS REMOVE SET SET_SOURCE_FILES_PROPERTIES SET_=
TARGET_PROPERTIES SITE_NAME SOURCE_GROUP STRING SUBDIRS SUBDIR_DEPENDS TARG=
ET_LINK_LIBRARIES TRY_COMPILE TRY_RUN USE_MANGLED_MESA UTILITY_SOURCE VARIA=
BLE_REQUIRES WRITE_FILE
\ nextgroup=3DcmakeArgumnts
syn match cmakeMacro /[A-Z_]+/ nextgroup=3DcmakeArgumnts
" Define the default highlighting.
" For version 5.7 and earlier: only when not done already
" For version 5.8 and later: only when an item doesn't have highlighting ye=
t
if version >=3D 508 || !exists("did_cmake_syntax_inits")
if version < 508
let did_cmake_syntax_inits =3D 1
command -nargs=3D+ HiLink hi link <args>
else
command -nargs=3D+ HiLink hi def link <args>
endif
HiLink cmakeStatement Statement
HiLink cmakeComment Comment
HiLink cmakeString String
HiLink cmakeVariableValue Type
HiLink cmakeRegistry Underlined
HiLink cmakeArguments Identifier
HiLink cmakeArgument Constant
HiLink cmakeEnvironment Special
HiLink cmakeOperators Operator
HiLink cmakeMacro PreProc
delcommand HiLink
endif
let b:current_syntax =3D "cmake"
"EOF"
--=-y0SSEq+QQhOLS8pzJlmO--