changeset 32214:a4dafbd8b7d5 v9.0.1438

patch 9.0.1438: .fs files are falsely recognized as forth files Commit: https://github.com/vim/vim/commit/065088d5549e7711668321cc5a77c9a9b684b142 Author: Johan Kotlinski <kotlinski@gmail.com> Date: Sun Apr 2 20:29:38 2023 +0100 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)
author Bram Moolenaar <Bram@vim.org>
date Sun, 02 Apr 2023 21:30:05 +0200
parents 7e0da7407eed
children 4b6c544c41f6
files runtime/autoload/dist/ft.vim src/testdir/test_filetype.vim src/version.c
diffstat 3 files changed, 12 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/autoload/dist/ft.vim
+++ b/runtime/autoload/dist/ft.vim
@@ -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
 
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -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)
--- 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 */
 /**/
+    1438,
+/**/
     1437,
 /**/
     1436,