]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0325: filetype: CMakeCache.txt files not recognized v9.1.0325
authorWu, Zhenyu <wuzhenyu@ustc.edu>
Sun, 14 Apr 2024 18:34:22 +0000 (20:34 +0200)
committerChristian Brabandt <cb@256bit.org>
Sun, 14 Apr 2024 18:34:22 +0000 (20:34 +0200)
Problem:  filetype: CMakeCache.txt files not recognized
Solution: Detect 'CMakeCache.txt' files as cmakecache filetype,
          include basic syntax script for cmakecache
          (Wu, Zhenyu, @bfrg)

closes: #14384

Co-authored-by: bfrg <bfrg@users.noreply.github.com>
Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/filetype.vim
runtime/syntax/cmakecache.vim [new file with mode: 0644]
src/testdir/test_filetype.vim
src/version.c

index 9864e06b1ede91a75f67d3ae81154253f45e7202..8943536ec0b67090450273ef473f1844c9e6a291 100644 (file)
@@ -449,6 +449,9 @@ au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc            setf clojure
 " Cmake
 au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in                setf cmake
 
+" CmakeCache
+autocmd BufRead,BufNewFile CMakeCache.txt                      setf cmakecache
+
 " Cmusrc
 au BufNewFile,BufRead */.cmus/{autosave,rc,command-history,*.theme} setf cmusrc
 au BufNewFile,BufRead */cmus/{rc,*.theme}                      setf cmusrc
diff --git a/runtime/syntax/cmakecache.vim b/runtime/syntax/cmakecache.vim
new file mode 100644 (file)
index 0000000..f07c719
--- /dev/null
@@ -0,0 +1,60 @@
+" Vim syntax file
+" Language:     cmakecache - CMakeCache.txt files generated by CMake
+" Author:       bfrg <https://github.com/bfrg>
+" Upstream:      https://github.com/bfrg/vim-cmakecache-syntax
+" Last Change:  Nov 28, 2019
+" License:      Same as Vim itself (see :h license)
+
+if exists('b:current_syntax')
+    finish
+endif
+
+let s:cpo_save = &cpoptions
+set cpoptions&vim
+
+" Comments start with # or //
+syntax region CMakeCacheComment start="#\|//" end="$"
+
+" Match 'key' in key:type=value
+syntax match CMakeCacheKey "^\s*\w\+\(-ADVANCED\)\=:"me=e-1
+
+" Highlight 'str' in key:STRING=str (many thanks to Nickspoons in #vim!)
+syntax region CMakeCacheStringVar   matchgroup=CMakeCacheType start=":STRING="ms=s+1,rs=e-1 end="$" contains=CMakeCacheString keepend
+syntax region CMakeCacheString      start="="ms=s+1 end="$" contained
+
+" Highlight boolean 'value' in key:BOOL=value
+syntax region CMakeCacheBoolVar     matchgroup=CMakeCacheType start=":BOOL="ms=s+1,rs=e-1 end="$" contains=CMakeCacheBool keepend
+syntax region CMakeCacheBool        start="="ms=s+1 end="$" contained
+
+" Highlight 'path' in key:PATH=path
+syntax region CMakeCachePathVar     matchgroup=CMakeCacheType start=":PATH="ms=s+1,rs=e-1 end="$" contains=CMakeCachePath keepend
+syntax region CMakeCachePath        start="="ms=s+1 end="$" contained
+
+" Highlight 'file' in key:FILEPATH=file
+syntax region CMakeCacheFilePathVar matchgroup=CMakeCacheType start=":FILEPATH="ms=s+1,rs=e-1 end="$" contains=CMakeCacheFilePath keepend
+syntax region CMakeCacheFilePath    start="="ms=s+1 end="$" contained
+
+" Highlight 'value' in key:STATIC=value
+syntax region CMakeCacheStaticVar   matchgroup=CMakeCacheType start=":STATIC="ms=s+1,rs=e-1 end="$" contains=CMakeCacheStatic keepend
+syntax region CMakeCacheStatic      start="="ms=s+1 end="$" contained
+
+" Highlight 'value' in key:Internal=value
+syntax region CMakeCacheInternalVar matchgroup=CMakeCacheType start=":INTERNAL="ms=s+1,rs=e-1 end="$" contains=CMakeCacheInternal keepend
+syntax region CMakeCacheInternal    start="="ms=s+1 end="$" contained
+
+hi def link CMakeCacheComment   Comment
+hi def link CMakeCacheKey       Identifier
+hi def link CMakeCacheString    String
+hi def link CMakeCacheBool      Constant
+hi def link CMakeCachePath      Directory
+hi def link CMakeCacheFilePath  Normal
+hi def link CMakeCacheStatic    Normal
+hi def link CMakeCacheInternal  Normal
+
+" Highlight 'type' in key:type=value
+hi def link CMakeCacheType      Type
+
+let b:current_syntax = 'cmakecache'
+
+let &cpoptions = s:cpo_save
+unlet s:cpo_save
index 07aa6853ec9b5befb3ddabd9368f2cf2c23edd26..66eeb3534fa3ac2cea09eb15e70b0906a4eac7e3 100644 (file)
@@ -157,6 +157,7 @@ def s:GetFilenameChecks(): dict<list<string>>
     clean: ['file.dcl', 'file.icl'],
     clojure: ['file.clj', 'file.cljs', 'file.cljx', 'file.cljc', 'init.trans', 'any/etc/translate-shell', '.trans'],
     cmake: ['CMakeLists.txt', 'file.cmake', 'file.cmake.in'],
+    cmakecache: ['CMakeCache.txt'],
     cmod: ['file.cmod'],
     cmusrc: ['any/.cmus/autosave', 'any/.cmus/rc', 'any/.cmus/command-history', 'any/.cmus/file.theme', 'any/cmus/rc', 'any/cmus/file.theme', '/.cmus/autosave', '/.cmus/command-history', '/.cmus/file.theme', '/.cmus/rc', '/cmus/file.theme', '/cmus/rc'],
     cobol: ['file.cbl', 'file.cob', 'file.lib'],
index d8e4f2672b937d5d2d6a389a2faa575d6582307a..5addc136fd0454c0a7b5098bfb83c68af65f38f7 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    325,
 /**/
     324,
 /**/