diff options
author | Chris Kipp <ckipp@pm.me> | 2022-12-14 16:42:15 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-12-14 16:42:15 +0000 |
commit | 70ef3f546b6ef83e463e91b7e388d9c68ad58894 (patch) | |
tree | b17dfe24750d8452e34b4483de767d780007ae2b | |
parent | eb53350c02f620305e931ffd2ac611cc2b1a0ce9 (diff) |
patch 9.0.1057: conflict between supercollider and scala filetype detectionv9.0.1057
Problem: Conflict between supercollider and scala filetype detection.
Solution: Do not check for "Class : Method", it can appear in both
filetypes. (Chris Kipp, closes #11699)
-rw-r--r-- | runtime/autoload/dist/ft.vim | 7 | ||||
-rw-r--r-- | src/testdir/test_filetype.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 7 insertions, 9 deletions
diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim index e6f18617cd..6a3c5e14d6 100644 --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -810,10 +810,13 @@ export def SQL() enddef # This function checks the first 25 lines of file extension "sc" to resolve -# detection between scala and SuperCollider +# detection between scala and SuperCollider. +# NOTE: We don't check for 'Class : Method', as this can easily be confused +# with valid Scala like `val x : Int = 3`. So we instead only rely on +# checks that can't be confused. export def FTsc() for lnum in range(1, min([line("$"), 25])) - if getline(lnum) =~# '[A-Za-z0-9]*\s:\s[A-Za-z0-9]\|var\s<\|classvar\s<\|\^this.*\||\w*|\|+\s\w*\s{\|\*ar\s' + if getline(lnum) =~# 'var\s<\|classvar\s<\|\^this.*\||\w\+|\|+\s\w*\s{\|\*ar\s' setf supercollider return endif diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 63b2b81877..1cc3c29655 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -1533,13 +1533,6 @@ endfunc func Test_sc_file() filetype on - " SC file methods 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 diff --git a/src/version.c b/src/version.c index be7048a327..4f92cc6dcf 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1057, +/**/ 1056, /**/ 1055, |