summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Kipp <ckipp@pm.me>2022-12-14 16:42:15 +0000
committerBram Moolenaar <Bram@vim.org>2022-12-14 16:42:15 +0000
commit70ef3f546b6ef83e463e91b7e388d9c68ad58894 (patch)
treeb17dfe24750d8452e34b4483de767d780007ae2b
parenteb53350c02f620305e931ffd2ac611cc2b1a0ce9 (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.vim7
-rw-r--r--src/testdir/test_filetype.vim7
-rw-r--r--src/version.c2
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,