mirror of
https://github.com/vim/vim.git
synced 2025-07-24 10:45:12 -04:00
patch 9.1.0876: filetype: openCL files are not recognized
Problem: filetype: openCL files are not recognized Solution: detect '*.cl' files as opencl or lisp filetype, include a opencl syntax and filetype plugin (Wu, Zhenyu) closes: #15825 Signed-off-by: Wu, Zhenyu <wuzhenyu@ustc.edu> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
a13bd294ab
commit
e2c27ca8ef
2
.github/MAINTAINERS
vendored
2
.github/MAINTAINERS
vendored
@ -225,6 +225,7 @@ runtime/ftplugin/nsis.vim @k-takata
|
|||||||
runtime/ftplugin/nu.vim @mrcjkb
|
runtime/ftplugin/nu.vim @mrcjkb
|
||||||
runtime/ftplugin/octave.vim @dkearns
|
runtime/ftplugin/octave.vim @dkearns
|
||||||
runtime/ftplugin/ondir.vim @jparise
|
runtime/ftplugin/ondir.vim @jparise
|
||||||
|
runtime/ftplugin/opencl.vim @Freed-Wu
|
||||||
runtime/ftplugin/openvpn.vim @ObserverOfTime
|
runtime/ftplugin/openvpn.vim @ObserverOfTime
|
||||||
runtime/ftplugin/pascal.vim @dkearns
|
runtime/ftplugin/pascal.vim @dkearns
|
||||||
runtime/ftplugin/pbtxt.vim @lakshayg
|
runtime/ftplugin/pbtxt.vim @lakshayg
|
||||||
@ -526,6 +527,7 @@ runtime/syntax/nix.vim @equill
|
|||||||
runtime/syntax/nroff.vim @jmarshall
|
runtime/syntax/nroff.vim @jmarshall
|
||||||
runtime/syntax/nsis.vim @k-takata
|
runtime/syntax/nsis.vim @k-takata
|
||||||
runtime/syntax/ondir.vim @jparise
|
runtime/syntax/ondir.vim @jparise
|
||||||
|
runtime/syntax/opencl.vim @Freed-Wu
|
||||||
runtime/syntax/openvpn.vim @ObserverOfTime
|
runtime/syntax/openvpn.vim @ObserverOfTime
|
||||||
runtime/syntax/pacmanlog.vim @rpigott
|
runtime/syntax/pacmanlog.vim @rpigott
|
||||||
runtime/syntax/pascal.vim @dkearns
|
runtime/syntax/pascal.vim @dkearns
|
||||||
|
8
runtime/autoload/dist/ft.vim
vendored
8
runtime/autoload/dist/ft.vim
vendored
@ -144,6 +144,14 @@ export def FTcfg()
|
|||||||
endif
|
endif
|
||||||
enddef
|
enddef
|
||||||
|
|
||||||
|
export def FTcl()
|
||||||
|
if join(getline(1, 4), '') =~ '/\*'
|
||||||
|
setf opencl
|
||||||
|
else
|
||||||
|
setf lisp
|
||||||
|
endif
|
||||||
|
enddef
|
||||||
|
|
||||||
export def FTcls()
|
export def FTcls()
|
||||||
if exists("g:filetype_cls")
|
if exists("g:filetype_cls")
|
||||||
exe "setf " .. g:filetype_cls
|
exe "setf " .. g:filetype_cls
|
||||||
|
@ -1365,14 +1365,17 @@ au BufNewFile,BufRead lilo.conf setf lilo
|
|||||||
" Lilypond
|
" Lilypond
|
||||||
au BufNewFile,BufRead *.ly,*.ily setf lilypond
|
au BufNewFile,BufRead *.ly,*.ily setf lilypond
|
||||||
|
|
||||||
" Lisp (*.el = ELisp, *.cl = Common Lisp)
|
" Lisp (*.el = ELisp)
|
||||||
" *.jl was removed, it's also used for Julia, better skip than guess wrong.
|
" *.jl was removed, it's also used for Julia, better skip than guess wrong.
|
||||||
if has("fname_case")
|
if has("fname_case")
|
||||||
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,*.L,.emacs,.sawfishrc,*.stsg,*/supertux2/config setf lisp
|
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.L,.emacs,.sawfishrc,*.stsg,*/supertux2/config setf lisp
|
||||||
else
|
else
|
||||||
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,*.cl,.emacs,.sawfishrc,*.stsg,*/supertux2/config setf lisp
|
au BufNewFile,BufRead *.lsp,*.lisp,*.asd,*.el,.emacs,.sawfishrc,*.stsg,*/supertux2/config setf lisp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" *.cl = Common Lisp or OpenCL
|
||||||
|
au BufNewFile,BufRead *.cl call dist#ft#FTcl()
|
||||||
|
|
||||||
" SBCL implementation of Common Lisp
|
" SBCL implementation of Common Lisp
|
||||||
au BufNewFile,BufRead sbclrc,.sbclrc setf lisp
|
au BufNewFile,BufRead sbclrc,.sbclrc setf lisp
|
||||||
|
|
||||||
|
12
runtime/ftplugin/opencl.vim
Normal file
12
runtime/ftplugin/opencl.vim
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
" Vim filetype plugin file
|
||||||
|
" Language: OpenCL
|
||||||
|
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||||
|
" Last Change: 2024 Nov 19
|
||||||
|
|
||||||
|
if exists("b:did_ftplugin") | finish | endif
|
||||||
|
let b:did_ftplugin = 1
|
||||||
|
|
||||||
|
setlocal comments=sO:*\ -,mO:*\ \ ,exO:*/,s1:/*,mb:*,ex:*/,:///,://
|
||||||
|
setlocal commentstring=/*\ %s\ */ define& include&
|
||||||
|
|
||||||
|
let b:undo_ftplugin = "setl commentstring< comments<"
|
13
runtime/syntax/opencl.vim
Normal file
13
runtime/syntax/opencl.vim
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
" Vim syntax file
|
||||||
|
" Language: OpenCL
|
||||||
|
" Last Change: 2024 Nov 19
|
||||||
|
" Maintainer: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
||||||
|
|
||||||
|
if exists("b:current_syntax")
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
" TODO: support openCL specific keywords
|
||||||
|
runtime! syntax/c.vim
|
||||||
|
|
||||||
|
let current_syntax = "opencl"
|
@ -425,7 +425,7 @@ def s:GetFilenameChecks(): dict<list<string>>
|
|||||||
limits: ['/etc/limits', '/etc/anylimits.conf', '/etc/anylimits.d/file.conf', '/etc/limits.conf', '/etc/limits.d/file.conf', '/etc/some-limits.conf', '/etc/some-limits.d/file.conf', 'any/etc/limits', 'any/etc/limits.conf', 'any/etc/limits.d/file.conf', 'any/etc/some-limits.conf', 'any/etc/some-limits.d/file.conf'],
|
limits: ['/etc/limits', '/etc/anylimits.conf', '/etc/anylimits.d/file.conf', '/etc/limits.conf', '/etc/limits.d/file.conf', '/etc/some-limits.conf', '/etc/some-limits.d/file.conf', 'any/etc/limits', 'any/etc/limits.conf', 'any/etc/limits.d/file.conf', 'any/etc/some-limits.conf', 'any/etc/some-limits.d/file.conf'],
|
||||||
liquidsoap: ['file.liq'],
|
liquidsoap: ['file.liq'],
|
||||||
liquid: ['file.liquid'],
|
liquid: ['file.liquid'],
|
||||||
lisp: ['file.lsp', 'file.lisp', 'file.asd', 'file.el', 'file.cl', '.emacs', '.sawfishrc', 'sbclrc', '.sbclrc', 'file.stsg', 'any/local/share/supertux2/config'],
|
lisp: ['file.lsp', 'file.lisp', 'file.asd', 'file.el', '.emacs', '.sawfishrc', 'sbclrc', '.sbclrc', 'file.stsg', 'any/local/share/supertux2/config'],
|
||||||
lite: ['file.lite', 'file.lt'],
|
lite: ['file.lite', 'file.lt'],
|
||||||
litestep: ['/LiteStep/any/file.rc', 'any/LiteStep/any/file.rc'],
|
litestep: ['/LiteStep/any/file.rc', 'any/LiteStep/any/file.rc'],
|
||||||
logcheck: ['/etc/logcheck/file.d-some/file', '/etc/logcheck/file.d/file', 'any/etc/logcheck/file.d-some/file', 'any/etc/logcheck/file.d/file'],
|
logcheck: ['/etc/logcheck/file.d-some/file', '/etc/logcheck/file.d/file', 'any/etc/logcheck/file.d-some/file', 'any/etc/logcheck/file.d/file'],
|
||||||
@ -1198,6 +1198,22 @@ func Test_cfg_file()
|
|||||||
filetype off
|
filetype off
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_cl_file()
|
||||||
|
filetype on
|
||||||
|
|
||||||
|
call writefile(['/*', ' * Xfile.cl', ' */', 'int f() {}'], 'Xfile.cl')
|
||||||
|
split Xfile.cl
|
||||||
|
call assert_equal('opencl', &filetype)
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
call writefile(['()'], 'Xfile.cl')
|
||||||
|
split Xfile.cl
|
||||||
|
call assert_equal('lisp', &filetype)
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
filetype off
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_d_file()
|
func Test_d_file()
|
||||||
filetype on
|
filetype on
|
||||||
|
|
||||||
|
@ -704,6 +704,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
876,
|
||||||
/**/
|
/**/
|
||||||
875,
|
875,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user