diff options
author | Christian Clason <c.clason@uni-graz.at> | 2023-04-03 16:27:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-03 16:27:49 +0200 |
commit | e30cc8be1950a6d1dec7395807966e1b5d0d9194 (patch) | |
tree | 461c9e98cc9b1344bb861489cf3e6838d69a1add | |
parent | f34b849a22044874d8be0afe7fd455e45246740e (diff) | |
download | rneovim-e30cc8be1950a6d1dec7395807966e1b5d0d9194.tar.gz rneovim-e30cc8be1950a6d1dec7395807966e1b5d0d9194.tar.bz2 rneovim-e30cc8be1950a6d1dec7395807966e1b5d0d9194.zip |
vim-patch:9.0.1438: .fs files are falsely recognized as forth files (#22871)
Problem: .fs files are falsely recognized as forth files.
Solution: Check 100 lines for something that looks like forth. (Johan
Kotlinski, closes vim/vim#12219, closes vim/vim#11988)
https://github.com/vim/vim/commit/065088d5549e7711668321cc5a77c9a9b684b142
Co-authored-by: Johan Kotlinski <kotlinski@gmail.com>
-rw-r--r-- | runtime/lua/vim/filetype/detect.lua | 10 | ||||
-rw-r--r-- | test/old/testdir/test_filetype.vim | 16 |
2 files changed, 5 insertions, 21 deletions
diff --git a/runtime/lua/vim/filetype/detect.lua b/runtime/lua/vim/filetype/detect.lua index b3d9fedeae..d1eabadc4a 100644 --- a/runtime/lua/vim/filetype/detect.lua +++ b/runtime/lua/vim/filetype/detect.lua @@ -473,12 +473,12 @@ function M.fs(bufnr) if vim.g.filetype_fs then return vim.g.filetype_fs end - local line = nextnonblank(bufnr, 1) - if findany(line, { '^%s*%.?%( ', '^%s*\\G? ', '^\\$', '^%s*: %S' }) then - return 'forth' - else - return 'fsharp' + for _, line in ipairs(getlines(bufnr, 1, 100)) do + if line:find('^[:(\\] ') then + return 'forth' + end end + return 'fsharp' end function M.git(bufnr) diff --git a/test/old/testdir/test_filetype.vim b/test/old/testdir/test_filetype.vim index 23adff3d3d..776aaae4ac 100644 --- a/test/old/testdir/test_filetype.vim +++ b/test/old/testdir/test_filetype.vim @@ -1227,27 +1227,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) |