1071d4279SBram Moolenaar" Vim filetype plugin file 2071d4279SBram Moolenaar" Language: Perl 3543b7ef7SBram Moolenaar" Maintainer: vim-perl <[email protected]> 4*2c7f8c57SBram Moolenaar" Homepage: https://github.com/vim-perl/vim-perl 5*2c7f8c57SBram Moolenaar" Bugs/requests: https://github.com/vim-perl/vim-perl/issues 6*2c7f8c57SBram Moolenaar" Last Change: 2020 Apr 15 7071d4279SBram Moolenaar 8071d4279SBram Moolenaarif exists("b:did_ftplugin") | finish | endif 9071d4279SBram Moolenaarlet b:did_ftplugin = 1 10071d4279SBram Moolenaar 11071d4279SBram Moolenaar" Make sure the continuation lines below do not cause problems in 12071d4279SBram Moolenaar" compatibility mode. 13071d4279SBram Moolenaarlet s:save_cpo = &cpo 14071d4279SBram Moolenaarset cpo-=C 15071d4279SBram Moolenaar 16543b7ef7SBram Moolenaarsetlocal formatoptions-=t 17543b7ef7SBram Moolenaarsetlocal formatoptions+=crqol 18e37d50a5SBram Moolenaarsetlocal keywordprg=perldoc\ -f 19071d4279SBram Moolenaar 20071d4279SBram Moolenaarsetlocal comments=:# 21071d4279SBram Moolenaarsetlocal commentstring=#%s 22071d4279SBram Moolenaar 23071d4279SBram Moolenaar" Change the browse dialog on Win32 to show mainly Perl-related files 24071d4279SBram Moolenaarif has("gui_win32") 25071d4279SBram Moolenaar let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" . 26071d4279SBram Moolenaar \ "Perl Modules (*.pm)\t*.pm\n" . 27071d4279SBram Moolenaar \ "Perl Documentation Files (*.pod)\t*.pod\n" . 28071d4279SBram Moolenaar \ "All Files (*.*)\t*.*\n" 29071d4279SBram Moolenaarendif 30071d4279SBram Moolenaar 31071d4279SBram Moolenaar" Provided by Ned Konz <ned at bike-nomad dot com> 32071d4279SBram Moolenaar"--------------------------------------------- 3383c465c7SBram Moolenaarsetlocal include=\\<\\(use\\\|require\\)\\> 34543b7ef7SBram Moolenaarsetlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','') 35071d4279SBram Moolenaarsetlocal define=[^A-Za-z_] 3637c64c78SBram Moolenaarsetlocal iskeyword+=: 37071d4279SBram Moolenaar 38071d4279SBram Moolenaar" The following line changes a global variable but is necessary to make 3937c64c78SBram Moolenaar" gf and similar commands work. Thanks to Andrew Pimlott for pointing 4037c64c78SBram Moolenaar" out the problem. If this causes a problem for you, add an 4137c64c78SBram Moolenaar" after/ftplugin/perl.vim file that contains 42071d4279SBram Moolenaar" set isfname-=: 43071d4279SBram Moolenaarset isfname+=: 44071d4279SBram Moolenaar 45071d4279SBram Moolenaar" Set this once, globally. 46071d4279SBram Moolenaarif !exists("perlpath") 47071d4279SBram Moolenaar if executable("perl") 48446cb837SBram Moolenaar try 49071d4279SBram Moolenaar if &shellxquote != '"' 50071d4279SBram Moolenaar let perlpath = system('perl -e "print join(q/,/,@INC)"') 51071d4279SBram Moolenaar else 52071d4279SBram Moolenaar let perlpath = system("perl -e 'print join(q/,/,@INC)'") 53071d4279SBram Moolenaar endif 54071d4279SBram Moolenaar let perlpath = substitute(perlpath,',.$',',,','') 55446cb837SBram Moolenaar catch /E145:/ 56446cb837SBram Moolenaar let perlpath = ".,," 57446cb837SBram Moolenaar endtry 58071d4279SBram Moolenaar else 59071d4279SBram Moolenaar " If we can't call perl to get its path, just default to using the 60071d4279SBram Moolenaar " current directory and the directory of the current file. 61071d4279SBram Moolenaar let perlpath = ".,," 62071d4279SBram Moolenaar endif 63071d4279SBram Moolenaarendif 64071d4279SBram Moolenaar 65543b7ef7SBram Moolenaar" Append perlpath to the existing path value, if it is set. Since we don't 66543b7ef7SBram Moolenaar" use += to do it because of the commas in perlpath, we have to handle the 67543b7ef7SBram Moolenaar" global / local settings, too. 68543b7ef7SBram Moolenaarif &l:path == "" 69543b7ef7SBram Moolenaar if &g:path == "" 70071d4279SBram Moolenaar let &l:path=perlpath 71543b7ef7SBram Moolenaar else 72543b7ef7SBram Moolenaar let &l:path=&g:path.",".perlpath 73543b7ef7SBram Moolenaar endif 74543b7ef7SBram Moolenaarelse 75543b7ef7SBram Moolenaar let &l:path=&l:path.",".perlpath 76543b7ef7SBram Moolenaarendif 77071d4279SBram Moolenaar"--------------------------------------------- 78071d4279SBram Moolenaar 79071d4279SBram Moolenaar" Undo the stuff we changed. 8037c64c78SBram Moolenaarlet b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isk< isf< kp< path<" . 81071d4279SBram Moolenaar \ " | unlet! b:browsefilter" 82071d4279SBram Moolenaar 83543b7ef7SBram Moolenaar" proper matching for matchit plugin 84543b7ef7SBram Moolenaarlet b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField' 8537c64c78SBram Moolenaarlet b:match_words = '\<if\>:\<elsif\>:\<else\>' 86543b7ef7SBram Moolenaar 87071d4279SBram Moolenaar" Restore the saved compatibility options. 88071d4279SBram Moolenaarlet &cpo = s:save_cpo 8984f7235bSBram Moolenaarunlet s:save_cpo 90