vim-patch:9.1.0325: CMakeCache.txt files not recognized (#28359)

vim-patch:9.1.0325: filetype: CMakeCache.txt files not recognized

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: vim/vim#14384

62c09e032c

Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
Co-authored-by: bfrg <bfrg@users.noreply.github.com>
This commit is contained in:
zeertzjq 2024-04-16 09:33:16 +08:00 committed by GitHub
parent 537ba34953
commit 07661009c5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 62 additions and 0 deletions

View File

@ -1298,6 +1298,7 @@ local filename = {
['init.trans'] = 'clojure',
['.trans'] = 'clojure',
['CMakeLists.txt'] = 'cmake',
['CMakeCache.txt'] = 'cmakecache',
['.cling_history'] = 'cpp',
['.alias'] = detect.csh,
['.cshrc'] = detect.csh,

View File

@ -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

View File

@ -158,6 +158,7 @@ func s:GetFilenameChecks() abort
\ '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'],