mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 09:26:30 +00:00
vim-patch:8.2.4746: supercollider filetype not recognized (#18102)
Problem: Supercollider filetype not recognized.
Solution: Match file extentions and check file contents to detect
supercollider. (closes vim/vim#10142)
8cac20ed42
This commit is contained in:
@@ -463,12 +463,11 @@ let s:filename_checks = {
|
||||
\ 'sass': ['file.sass'],
|
||||
\ 'sather': ['file.sa'],
|
||||
\ 'sbt': ['file.sbt'],
|
||||
\ 'scala': ['file.scala', 'file.sc'],
|
||||
\ 'scala': ['file.scala'],
|
||||
\ 'scheme': ['file.scm', 'file.ss', 'file.sld', 'file.rkt', 'file.rktd', 'file.rktl'],
|
||||
\ 'scilab': ['file.sci', 'file.sce'],
|
||||
\ 'screen': ['.screenrc', 'screenrc'],
|
||||
\ 'sexplib': ['file.sexp'],
|
||||
\ 'scdoc': ['file.scd'],
|
||||
\ 'scss': ['file.scss'],
|
||||
\ 'sd': ['file.sd'],
|
||||
\ 'sdc': ['file.sdc'],
|
||||
@@ -516,6 +515,7 @@ let s:filename_checks = {
|
||||
\ 'stata': ['file.ado', 'file.do', 'file.imata', 'file.mata'],
|
||||
\ 'stp': ['file.stp'],
|
||||
\ 'sudoers': ['any/etc/sudoers', 'sudoers.tmp', '/etc/sudoers', 'any/etc/sudoers.d/file'],
|
||||
\ 'supercollider': ['file.quark'],
|
||||
\ 'surface': ['file.sface'],
|
||||
\ 'svg': ['file.svg'],
|
||||
\ 'svn': ['svn-commitfile.tmp', 'svn-commit-file.tmp', 'svn-commit.tmp'],
|
||||
@@ -1470,6 +1470,54 @@ func Test_prg_file()
|
||||
filetype off
|
||||
endfunc
|
||||
|
||||
" Test dist#ft#FTsc()
|
||||
func Test_sc_file()
|
||||
filetype on
|
||||
|
||||
" SC file mehtods are defined 'Class : Method'
|
||||
call writefile(['SCNvimDocRenderer : SCDocHTMLRenderer {'], 'srcfile.sc')
|
||||
split srcfile.sc
|
||||
call assert_equal('supercollider', &filetype)
|
||||
bwipe!
|
||||
call delete('srcfile.sc')
|
||||
|
||||
" SC classes are defined with '+ Class {}'
|
||||
call writefile(['+ SCNvim {', '*methodArgs {|method|'], 'srcfile.sc')
|
||||
split srcfile.sc
|
||||
call assert_equal('supercollider', &filetype)
|
||||
bwipe!
|
||||
call delete('srcfile.sc')
|
||||
|
||||
" Some SC class files start with comment and define methods many lines later
|
||||
call writefile(['// Query', '//Method','^this {'], 'srcfile.sc')
|
||||
split srcfile.sc
|
||||
call assert_equal('supercollider', &filetype)
|
||||
bwipe!
|
||||
call delete('srcfile.sc')
|
||||
|
||||
" Some SC class files put comments between method declaration after class
|
||||
call writefile(['PingPong {', '//comment','*ar { arg'], 'srcfile.sc')
|
||||
split srcfile.sc
|
||||
call assert_equal('supercollider', &filetype)
|
||||
bwipe!
|
||||
call delete('srcfile.sc')
|
||||
|
||||
filetype off
|
||||
endfunc
|
||||
|
||||
" Test dist#ft#FTscd()
|
||||
func Test_scd_file()
|
||||
filetype on
|
||||
|
||||
call writefile(['ijq(1)'], 'srcfile.scd')
|
||||
split srcfile.scd
|
||||
call assert_equal('scdoc', &filetype)
|
||||
bwipe!
|
||||
call delete('srcfile.scd')
|
||||
|
||||
filetype off
|
||||
endfunc
|
||||
|
||||
func Test_src_file()
|
||||
filetype on
|
||||
|
||||
|
Reference in New Issue
Block a user