neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit e30cc8be1950a6d1dec7395807966e1b5d0d9194
parent f34b849a22044874d8be0afe7fd455e45246740e
Author: Christian Clason <c.clason@uni-graz.at>
Date:   Mon,  3 Apr 2023 16:27:49 +0200

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>
Diffstat:
Mruntime/lua/vim/filetype/detect.lua | 10+++++-----
Mtest/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 @@ -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 @@ -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)