Install vim74
[msysgit.git] / share / vim / vim74 / ftplugin / perl.vim
blob741cfae0478163fe43b51dcee75ffe6f913024a6
1 " Vim filetype plugin file
2 " Language:      Perl
3 " Maintainer:    vim-perl <vim-perl@googlegroups.com>
4 " Homepage:      http://github.com/vim-perl/vim-perl
5 " Bugs/requests: http://github.com/vim-perl/vim-perl/issues
6 " Last Change:   2013-07-21
8 if exists("b:did_ftplugin") | finish | endif
9 let b:did_ftplugin = 1
11 " Make sure the continuation lines below do not cause problems in
12 " compatibility mode.
13 let s:save_cpo = &cpo
14 set cpo-=C
16 setlocal formatoptions-=t
17 setlocal formatoptions+=crqol
18 setlocal keywordprg=perldoc\ -f
20 setlocal comments=:#
21 setlocal commentstring=#%s
23 " Change the browse dialog on Win32 to show mainly Perl-related files
24 if has("gui_win32")
25     let b:browsefilter = "Perl Source Files (*.pl)\t*.pl\n" .
26                        \ "Perl Modules (*.pm)\t*.pm\n" .
27                        \ "Perl Documentation Files (*.pod)\t*.pod\n" .
28                        \ "All Files (*.*)\t*.*\n"
29 endif
31 " Provided by Ned Konz <ned at bike-nomad dot com>
32 "---------------------------------------------
33 setlocal include=\\<\\(use\\\|require\\)\\>
34 setlocal includeexpr=substitute(substitute(substitute(v:fname,'::','/','g'),'->\*','',''),'$','.pm','')
35 setlocal define=[^A-Za-z_]
37 " The following line changes a global variable but is necessary to make
38 " gf and similar commands work.  The change to iskeyword was incorrect.
39 " Thanks to Andrew Pimlott for pointing out the problem. If this causes a
40 " problem for you, add an after/ftplugin/perl.vim file that contains
41 "       set isfname-=:
42 set isfname+=:
43 set iskeyword+=:
45 " Set this once, globally.
46 if !exists("perlpath")
47     if executable("perl")
48       try
49         if &shellxquote != '"'
50             let perlpath = system('perl -e "print join(q/,/,@INC)"')
51         else
52             let perlpath = system("perl -e 'print join(q/,/,@INC)'")
53         endif
54         let perlpath = substitute(perlpath,',.$',',,','')
55       catch /E145:/
56         let perlpath = ".,,"
57       endtry
58     else
59         " If we can't call perl to get its path, just default to using the
60         " current directory and the directory of the current file.
61         let perlpath = ".,,"
62     endif
63 endif
65 " Append perlpath to the existing path value, if it is set.  Since we don't
66 " use += to do it because of the commas in perlpath, we have to handle the
67 " global / local settings, too.
68 if &l:path == ""
69     if &g:path == ""
70         let &l:path=perlpath
71     else
72         let &l:path=&g:path.",".perlpath
73     endif
74 else
75     let &l:path=&l:path.",".perlpath
76 endif
77 "---------------------------------------------
79 " Undo the stuff we changed.
80 let b:undo_ftplugin = "setlocal fo< com< cms< inc< inex< def< isf< kp< path<" .
81             \         " | unlet! b:browsefilter"
83 " proper matching for matchit plugin
84 let b:match_skip = 's:comment\|string\|perlQQ\|perlShellCommand\|perlHereDoc\|perlSubstitution\|perlTranslation\|perlMatch\|perlFormatField'
86 " Restore the saved compatibility options.
87 let &cpo = s:save_cpo
88 unlet s:save_cpo