]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.1438: .fs files are falsely recognized as forth files v9.0.1438
authorJohan Kotlinski <kotlinski@gmail.com>
Sun, 2 Apr 2023 19:29:38 +0000 (20:29 +0100)
committerBram Moolenaar <Bram@vim.org>
Sun, 2 Apr 2023 19:29:38 +0000 (20:29 +0100)
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)

runtime/autoload/dist/ft.vim
src/testdir/test_filetype.vim
src/version.c

index bfc325d240ad7db21298de1832223a588b2dd6ae..5d2053d70a4249ccfc90ac556e190d58b2ab7ae4 100644 (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
 
index a753ec83778976b672df687d7e4041e51ffe793c..af2969dd8ca2264e7075eec0e0fb30cf5ff32dc0 100644 (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)
index 0e612ee1ee86a233ae7c2bdfe6ab63c41b850afa..47ecd534eed22e3ae96a95d49b90c0ae1147a0ad 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1438,
 /**/
     1437,
 /**/