1" Vim syntax file 2" Language: Perl POD format 3" Maintainer: Scott Bigham <[email protected]> 4" Last Change: 2004 Oct 05 5 6" To add embedded POD documentation highlighting to your syntax file, add 7" the commands: 8" 9" syn include @Pod <sfile>:p:h/pod.vim 10" syn region myPOD start="^=pod" start="^=head" end="^=cut" keepend contained contains=@Pod 11" 12" and add myPod to the contains= list of some existing region, probably a 13" comment. The "keepend" flag is needed because "=cut" is matched as a 14" pattern in its own right. 15 16 17" Remove any old syntax stuff hanging around (this is suppressed 18" automatically by ":syn include" if necessary). 19" For version 5.x: Clear all syntax items 20" For version 6.x: Quit when a syntax file was already loaded 21if version < 600 22 syntax clear 23elseif exists("b:current_syntax") 24 finish 25endif 26 27" POD commands 28syn match podCommand "^=head[1234]" nextgroup=podCmdText 29syn match podCommand "^=item" nextgroup=podCmdText 30syn match podCommand "^=over" nextgroup=podOverIndent skipwhite 31syn match podCommand "^=back" 32syn match podCommand "^=cut" 33syn match podCommand "^=pod" 34syn match podCommand "^=for" nextgroup=podForKeywd skipwhite 35syn match podCommand "^=begin" nextgroup=podForKeywd skipwhite 36syn match podCommand "^=end" nextgroup=podForKeywd skipwhite 37 38" Text of a =head1, =head2 or =item command 39syn match podCmdText ".*$" contained contains=podFormat 40 41" Indent amount of =over command 42syn match podOverIndent "\d\+" contained 43 44" Formatter identifier keyword for =for, =begin and =end commands 45syn match podForKeywd "\S\+" contained 46 47" An indented line, to be displayed verbatim 48syn match podVerbatimLine "^\s.*$" 49 50" Inline textual items handled specially by POD 51syn match podSpecial "\(\<\|&\)\I\i*\(::\I\i*\)*([^)]*)" 52syn match podSpecial "[$@%]\I\i*\(::\I\i*\)*\>" 53 54" Special formatting sequences 55syn region podFormat start="[IBSCLFX]<[^<]"me=e-1 end=">" oneline contains=podFormat 56syn match podFormat "Z<>" 57syn match podFormat "E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2 58syn match podEscape "\I\i*>"me=e-1 contained 59syn match podEscape2 "\d\+>"me=e-1 contained 60 61" Define the default highlighting. 62" For version 5.7 and earlier: only when not done already 63" For version 5.8 and later: only when an item doesn't have highlighting yet 64if version >= 508 || !exists("did_pod_syntax_inits") 65 if version < 508 66 let did_pod_syntax_inits = 1 67 command -nargs=+ HiLink hi link <args> 68 else 69 command -nargs=+ HiLink hi def link <args> 70 endif 71 72 HiLink podCommand Statement 73 HiLink podCmdText String 74 HiLink podOverIndent Number 75 HiLink podForKeywd Identifier 76 HiLink podFormat Identifier 77 HiLink podVerbatimLine PreProc 78 HiLink podSpecial Identifier 79 HiLink podEscape String 80 HiLink podEscape2 Number 81 82 delcommand HiLink 83endif 84 85let b:current_syntax = "pod" 86 87" vim: ts=8 88