home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / runtime / dos / syntax / pod.vim < prev    next >
Encoding:
Text File  |  2010-08-15  |  3.4 KB  |  91 lines

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