Mercurial > vim
changeset 35632:2a8cff6e05e2 v9.1.0558
patch 9.1.0558: filetype: prolog detection can be improved
Commit: https://github.com/vim/vim/commit/50dc83cf9215aa787da54abbb0bd2ab4fb89e720
Author: igna_martinoli <ignamartinoli@protonmail.com>
Date: Wed Jul 10 21:25:04 2024 +0200
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>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 10 Jul 2024 21:45:06 +0200 |
parents | d5c2e0a1481e |
children | 1c2e22fcccad |
files | runtime/autoload/dist/ft.vim src/testdir/test_filetype.vim src/version.c |
diffstat | 3 files changed, 30 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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 =~ '\<prolog\>' || lnum =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || lnum =~ ':-' + if lnum =~ '\<prolog\>' || lnum =~ '(^\s*(:-\|%\|\/\*))\|.\s*$' setf prolog else exe 'setf ' .. default
--- 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