summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorranjithshegde <ranjithshegde@gmail.com>2022-04-13 15:29:21 +0100
committerBram Moolenaar <Bram@vim.org>2022-04-13 15:29:21 +0100
commit8cac20ed42b7b7fc9c6b54e3055ca1047f50b8ca (patch)
treebd21709fd4bb8df7694ce06e12e50ac17ab7e690 /src
parentaae9762b2cbcae8dea454e1701d00ea0f614175e (diff)
downloadvim-git-8cac20ed42b7b7fc9c6b54e3055ca1047f50b8ca.tar.gz
patch 8.2.4746: supercollider filetype not recognizedv8.2.4746
Problem: Supercollider filetype not recognized. Solution: Match file extentions and check file contents to detect supercollider. (closes #10142)
Diffstat (limited to 'src')
-rw-r--r--src/testdir/test_filetype.vim52
-rw-r--r--src/version.c2
2 files changed, 52 insertions, 2 deletions
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index a609de784..34868d601 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -464,12 +464,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'],
@@ -517,6 +516,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'],
@@ -1497,6 +1497,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
diff --git a/src/version.c b/src/version.c
index 7a8f52f7a..e3ba0c89f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4746,
+/**/
4745,
/**/
4744,