# These functions are moved here from runtime/filetype.vim to make startup
# faster.
+var prolog_pattern = '^\s*\(:-\|%\+\(\s\|$\)\|\/\*\)\|\.\s*$'
+
export def Check_inp()
if getline(1) =~ '%%'
setf tex
# 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 =~ '^\(:-\|%\|\/\*\)\|\.$'
+ if lnum =~ '\<prolog\>' || lnum =~ prolog_pattern
setf prolog
else
exe 'setf ' .. default
# recognize Prolog by specific text in the first non-empty line
# require a blank after the '%' because Perl uses "%list" and "%translate"
var line = getline(nextnonblank(1))
- if line =~ '\<prolog\>' || line =~ '^\s*\(%\+\(\s\|$\)\|/\*\)' || line =~ ':-'
+ if line =~ '\<prolog\>' || line =~ prolog_pattern
setf prolog
else
setf perl
" PEM (Privacy-Enhanced Mail)
au BufNewFile,BufRead *.pem,*.cer,*.crt,*.csr setf pem
-" Perl
+" Perl or Prolog
if has("fname_case")
au BufNewFile,BufRead *.pl,*.PL call dist#ft#FTpl()
else
call assert_equal('prolog', &filetype)
bwipe!
+ " IDL
+ call writefile(['x = findgen(100)/10'], 'Xfile.pro', 'D')
+ split Xfile.pro
+ call assert_equal('idlang', &filetype)
+
+ filetype off
+endfunc
+
+
+func Test_pl_file()
+ filetype on
+
+ "Prolog
+ call writefile([':-module(test/1,'], 'Xfile.pl', 'D')
+ split Xfile.pl
+ call assert_equal('prolog', &filetype)
+ bwipe!
+
+ call writefile(['% comment'], 'Xfile.pl', 'D')
+ split Xfile.pl
+ call assert_equal('prolog', &filetype)
+ bwipe!
+
+ call writefile(['/* multiline comment'], 'Xfile.pl', 'D')
+ split Xfile.pl
+ call assert_equal('prolog', &filetype)
+ bwipe!
+
+ call writefile(['rule(test, 1.7).'], 'Xfile.pl', 'D')
+ split Xfile.pl
+ call assert_equal('prolog', &filetype)
+ bwipe!
+
+ " Perl
+ call writefile(['%data = (1, 2, 3);'], 'Xfile.pl', 'D')
+ split Xfile.pl
+ call assert_equal('perl', &filetype)
+
filetype off
endfunc