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 <ignamartinoli@protonmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
igna_martinoli
2024-07-10 21:25:04 +02:00
committed by Christian Brabandt
parent 893eeeb445
commit 50dc83cf92
3 changed files with 30 additions and 1 deletions

View File

@ -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 =~ '\<prolog\>' || lnum =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || lnum =~ ':-'
if lnum =~ '\<prolog\>' || lnum =~ '(^\s*(:-\|%\|\/\*))\|.\s*$'
setf prolog
else
exe 'setf ' .. default

View File

@ -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

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
558,
/**/
557,
/**/