diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-27 20:43:42 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-09-27 20:43:42 +0200 | 
| commit | 5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1 (patch) | |
| tree | 965ae5128797f3d42d78d02692e62d24a4596e19 /syntax/pod.vim | |
| parent | 8148255ef1c416f414c3a78405eff08fe149d16e (diff) | |
| download | vim-polyglot-5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1.tar.gz vim-polyglot-5b77877888162f4e415fe9a7b8c5e9fb5dfb6ee1.zip  | |
Add syntax files from upstream vim repository
Diffstat (limited to 'syntax/pod.vim')
| -rw-r--r-- | syntax/pod.vim | 179 | 
1 files changed, 179 insertions, 0 deletions
diff --git a/syntax/pod.vim b/syntax/pod.vim index c337de8f..8d325d59 100644 --- a/syntax/pod.vim +++ b/syntax/pod.vim @@ -1,3 +1,182 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 +   +" Vim syntax file +" Language:      Perl POD format +" Maintainer:    vim-perl <vim-perl@googlegroups.com> +" Previously:    Scott Bigham <dsb@killerbunnies.org> +" Homepage:      http://github.com/vim-perl/vim-perl +" Bugs/requests: http://github.com/vim-perl/vim-perl/issues +" Last Change:   2017-09-12 + +" To add embedded POD documentation highlighting to your syntax file, add +" the commands: +" +"   syn include @Pod <sfile>:p:h/pod.vim +"   syn region myPOD start="^=pod" start="^=head" end="^=cut" keepend contained contains=@Pod +" +" and add myPod to the contains= list of some existing region, probably a +" comment.  The "keepend" flag is needed because "=cut" is matched as a +" pattern in its own right. + + +" Remove any old syntax stuff hanging around (this is suppressed +" automatically by ":syn include" if necessary). +" quit when a syntax file was already loaded +if exists("b:current_syntax") +  finish +endif + +let s:cpo_save = &cpo +set cpo&vim + +" POD commands +syn match podCommand    "^=encoding"  nextgroup=podCmdText contains=@NoSpell +syn match podCommand    "^=head[1234]"  nextgroup=podCmdText contains=@NoSpell +syn match podCommand    "^=item"        nextgroup=podCmdText contains=@NoSpell +syn match podCommand    "^=over"        nextgroup=podOverIndent skipwhite contains=@NoSpell +syn match podCommand    "^=back"        contains=@NoSpell +syn match podCommand    "^=cut"         contains=@NoSpell +syn match podCommand    "^=pod"         contains=@NoSpell +syn match podCommand    "^=for"         nextgroup=podForKeywd skipwhite contains=@NoSpell +syn match podCommand    "^=begin"       nextgroup=podForKeywd skipwhite contains=@NoSpell +syn match podCommand    "^=end"         nextgroup=podForKeywd skipwhite contains=@NoSpell + +" Text of a =head1, =head2 or =item command +syn match podCmdText	".*$" contained contains=podFormat,@NoSpell + +" Indent amount of =over command +syn match podOverIndent	"\d\+" contained contains=@NoSpell + +" Formatter identifier keyword for =for, =begin and =end commands +syn match podForKeywd	"\S\+" contained contains=@NoSpell + +" An indented line, to be displayed verbatim +syn match podVerbatimLine	"^\s.*$" contains=@NoSpell + +" Inline textual items handled specially by POD +syn match podSpecial	"\(\<\|&\)\I\i*\(::\I\i*\)*([^)]*)" contains=@NoSpell +syn match podSpecial	"[$@%]\I\i*\(::\I\i*\)*\>" contains=@NoSpell + +" Special formatting sequences +syn region podFormat	start="[IBSCLFX]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell +syn region podFormat	start="[IBSCLFX]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell +syn match  podFormat	"Z<>" +syn match  podFormat	"E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell +syn match  podEscape	"\I\i*>"me=e-1 contained contains=@NoSpell +syn match  podEscape2	"\d\+>"me=e-1 contained contains=@NoSpell + +" Define the default highlighting. +" Only when an item doesn't have highlighting yet + +hi def link podCommand		Statement +hi def link podCmdText		String +hi def link podOverIndent	Number +hi def link podForKeywd		Identifier +hi def link podFormat		Identifier +hi def link podVerbatimLine	PreProc +hi def link podSpecial		Identifier +hi def link podEscape		String +hi def link podEscape2		Number + +if exists("perl_pod_spellcheck_headings") +  " Spell-check headings +  syn clear podCmdText +  syn match podCmdText    ".*$" contained contains=podFormat +endif + +if exists("perl_pod_formatting") +  " By default, escapes like C<> are not checked for spelling. Remove B<> +  " and I<> from the list of escapes. +  syn clear podFormat +  syn region podFormat start="[CLF]<[^<]"me=e-1 end=">" oneline contains=podFormat,@NoSpell +  syn region podFormat start="[CLF]<<\s" end="\s>>" oneline contains=podFormat,@NoSpell + +  " Don't spell-check inside E<>, but ensure that the E< itself isn't +  " marked as a spelling mistake. +  syn match podFormat   "E<\(\d\+\|\I\i*\)>" contains=podEscape,podEscape2,@NoSpell + +  " Z<> is a mock formatting code. Ensure Z<> on its own isn't marked as a +  " spelling mistake. +  syn match podFormat   "Z<>" contains=podEscape,podEscape2,@NoSpell + +  " These are required so that whatever is *within* B<...>, I<...>, etc. is +  " spell-checked, but not the B, I, ... itself. +  syn match podBoldOpen    "B<" contains=@NoSpell +  syn match podItalicOpen  "I<" contains=@NoSpell +  syn match podNoSpaceOpen "S<" contains=@NoSpell +  syn match podIndexOpen   "X<" contains=@NoSpell + +  " Same as above but for the << >> syntax. +  syn match podBoldAlternativeDelimOpen    "B<< " contains=@NoSpell +  syn match podItalicAlternativeDelimOpen  "I<< " contains=@NoSpell +  syn match podNoSpaceAlternativeDelimOpen "S<< " contains=@NoSpell +  syn match podIndexAlternativeDelimOpen   "X<< " contains=@NoSpell + +  " Add support for spell checking text inside B<>, I<>, S<> and X<>. +  syn region podBold start="B<[^<]"me=e end=">" oneline contains=podBoldItalic,podBoldOpen +  syn region podBoldAlternativeDelim start="B<<\s" end="\s>>" oneline contains=podBoldAlternativeDelimOpen + +  syn region podItalic start="I<[^<]"me=e end=">" oneline contains=podItalicBold,podItalicOpen +  syn region podItalicAlternativeDelim start="I<<\s" end="\s>>" oneline contains=podItalicAlternativeDelimOpen + +  " Nested bold/italic and vice-versa +  syn region podBoldItalic contained start="I<[^<]"me=e end=">" oneline +  syn region podItalicBold contained start="B<[^<]"me=e end=">" oneline + +  syn region podNoSpace start="S<[^<]"ms=s-2 end=">"me=e oneline contains=podNoSpaceOpen +  syn region podNoSpaceAlternativeDelim start="S<<\s"ms=s-2 end="\s>>"me=e oneline contains=podNoSpaceAlternativeDelimOpen + +  syn region podIndex start="X<[^<]"ms=s-2 end=">"me=e oneline contains=podIndexOpen +  syn region podIndexAlternativeDelim start="X<<\s"ms=s-2 end="\s>>"me=e oneline contains=podIndexAlternativeDelimOpen + +  " Restore this (otherwise B<> is shown as bold inside verbatim) +  syn match podVerbatimLine	"^\s.*$" contains=@NoSpell + +  " Ensure formatted text can be displayed in headings and items +  syn clear podCmdText + +  if exists("perl_pod_spellcheck_headings") +    syn match podCmdText ".*$" contained contains=podFormat,podBold, +          \podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim, +          \podBoldOpen,podItalicOpen,podBoldAlternativeDelimOpen, +          \podItalicAlternativeDelimOpen,podNoSpaceOpen +  else +    syn match podCmdText ".*$" contained contains=podFormat,podBold, +          \podBoldAlternativeDelim,podItalic,podItalicAlternativeDelim, +          \@NoSpell +  endif + +  " Specify how to display these +  hi def podBold term=bold cterm=bold gui=bold + +  hi link podBoldAlternativeDelim podBold +  hi link podBoldAlternativeDelimOpen podBold +  hi link podBoldOpen podBold + +  hi link podNoSpace                 Identifier +  hi link podNoSpaceAlternativeDelim Identifier + +  hi link podIndex                   Identifier +  hi link podIndexAlternativeDelim   Identifier + +  hi def podItalic term=italic cterm=italic gui=italic + +  hi link podItalicAlternativeDelim podItalic +  hi link podItalicAlternativeDelimOpen podItalic +  hi link podItalicOpen podItalic + +  hi def podBoldItalic term=italic,bold cterm=italic,bold gui=italic,bold +  hi def podItalicBold term=italic,bold cterm=italic,bold gui=italic,bold +endif + +let b:current_syntax = "pod" + +let &cpo = s:cpo_save +unlet s:cpo_save + +" vim: ts=8 + +endif  if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'perl') == -1  " Vim syntax file  | 
