patch 9.0.1438: .fs files are falsely recognized as forth files

Problem:    .fs files are falsely recognized as forth files.
Solution:   Check 100 lines for something that looks like forth. (Johan
            Kotlinski, closes #12219, closes #11988)
This commit is contained in:
Johan Kotlinski
2023-04-02 20:29:38 +01:00
committed by Bram Moolenaar
parent 3cdd799951
commit 065088d554
3 changed files with 12 additions and 24 deletions

View File

@ -307,14 +307,16 @@ export def FTfs()
if exists("g:filetype_fs")
exe "setf " .. g:filetype_fs
else
var line = getline(nextnonblank(1))
# comments and colon definitions
if line =~ '^\s*\.\=( ' || line =~ '^\s*\\G\= ' || line =~ '^\\$'
\ || line =~ '^\s*: \S'
setf forth
else
setf fsharp
endif
var n = 1
while n < 100 && n <= line("$")
# Forth comments and colon definitions
if getline(n) =~ "^[:(\\\\] "
setf forth
return
endif
n += 1
endwhile
setf fsharp
endif
enddef

View File

@ -1212,27 +1212,11 @@ func Test_fs_file()
call assert_equal('forth', &filetype)
bwipe!
call writefile(['.( Forth displayed inline comment )'], 'Xfile.fs')
split Xfile.fs
call assert_equal('forth', &filetype)
bwipe!
call writefile(['\ Forth line comment'], 'Xfile.fs')
split Xfile.fs
call assert_equal('forth', &filetype)
bwipe!
" empty line comment - no space required
call writefile(['\'], 'Xfile.fs')
split Xfile.fs
call assert_equal('forth', &filetype)
bwipe!
call writefile(['\G Forth documentation comment '], 'Xfile.fs')
split Xfile.fs
call assert_equal('forth', &filetype)
bwipe!
call writefile([': squared ( n -- n^2 )', 'dup * ;'], 'Xfile.fs')
split Xfile.fs
call assert_equal('forth', &filetype)

View File

@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1438,
/**/
1437,
/**/