From 50dc83cf9215aa787da54abbb0bd2ab4fb89e720 Mon Sep 17 00:00:00 2001 From: igna_martinoli Date: Wed, 10 Jul 2024 21:25:04 +0200 Subject: patch 9.1.0558: filetype: prolog detection can be improved Problem: filetype: prolog detection can be improved Solution: Improved the Prolog file detection regex and added tests for all cases. (igna_martinoli) fixes: #10835 closes: #15206 Signed-off-by: igna_martinoli Signed-off-by: Christian Brabandt --- runtime/autoload/dist/ft.vim | 2 +- src/testdir/test_filetype.vim | 27 +++++++++++++++++++++++++++ src/version.c | 2 ++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/runtime/autoload/dist/ft.vim b/runtime/autoload/dist/ft.vim index 3c7d85cec6..6aea180c54 100644 --- a/runtime/autoload/dist/ft.vim +++ b/runtime/autoload/dist/ft.vim @@ -465,7 +465,7 @@ export def ProtoCheck(default: string) # recognize Prolog by specific text in the first non-empty line # require a blank after the '%' because Perl uses "%list" and "%translate" var lnum = getline(nextnonblank(1)) - if lnum =~ '\' || lnum =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || lnum =~ ':-' + if lnum =~ '\' || lnum =~ '(^\s*(:-\|%\|\/\*))\|.\s*$' setf prolog else exe 'setf ' .. default diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim index 3b0b2e99a5..a410785608 100644 --- a/src/testdir/test_filetype.vim +++ b/src/testdir/test_filetype.vim @@ -2576,4 +2576,31 @@ func Test_uci_file() filetype off endfunc +func Test_pro_file() + filetype on + + "Prolog + call writefile([':-module(test/1,'], 'Xfile.pro', 'D') + split Xfile.pro + call assert_equal('prolog', &filetype) + bwipe! + + call writefile(['% comment'], 'Xfile.pro', 'D') + split Xfile.pro + call assert_equal('prolog', &filetype) + bwipe! + + call writefile(['/* multiline comment'], 'Xfile.pro', 'D') + split Xfile.pro + call assert_equal('prolog', &filetype) + bwipe! + + call writefile(['rule(test, 1.7).'], 'Xfile.pro', 'D') + split Xfile.pro + call assert_equal('prolog', &filetype) + bwipe! + + filetype off +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 9c076f86b0..aaef85fee6 100644 --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 558, /**/ 557, /**/ -- cgit v1.2.3