| " Vim syntax file |
| " Language: RCS file |
| " Maintainer: Dmitry Vasiliev <dima@hlabs.spb.ru> |
| " URL: http://www.hlabs.spb.ru/vim/rcs.vim |
| " Last Change: $Date$ |
| " Filenames: *,v |
| " $Revision$ |
| " |
| " Options: |
| " rcs_folding = 1 For folding strings |
| |
| " For version 5.x: Clear all syntax items. |
| " For version 6.x: Quit when a syntax file was already loaded. |
| if version < 600 |
| syntax clear |
| elseif exists("b:current_syntax") |
| finish |
| endif |
| |
| " RCS file must end with a newline. |
| syn match rcsEOFError ".\%$" containedin=ALL |
| |
| " Keywords. |
| syn keyword rcsKeyword head branch access symbols locks strict |
| syn keyword rcsKeyword comment expand date author state branches |
| syn keyword rcsKeyword next desc log |
| syn keyword rcsKeyword text nextgroup=rcsTextStr skipwhite skipempty |
| |
| " Revision numbers and dates. |
| syn match rcsNumber "\<[0-9.]\+\>" display |
| |
| " Strings. |
| if exists("rcs_folding") && has("folding") |
| " Folded strings. |
| syn region rcsString matchgroup=rcsString start="@" end="@" skip="@@" fold contains=rcsSpecial |
| syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" fold contained contains=rcsSpecial,rcsDiffLines |
| else |
| syn region rcsString matchgroup=rcsString start="@" end="@" skip="@@" contains=rcsSpecial |
| syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" contained contains=rcsSpecial,rcsDiffLines |
| endif |
| syn match rcsSpecial "@@" contained |
| syn match rcsDiffLines "[da]\d\+ \d\+$" contained |
| |
| " Synchronization. |
| syn sync clear |
| if exists("rcs_folding") && has("folding") |
| syn sync fromstart |
| else |
| " We have incorrect folding if following sync patterns is turned on. |
| syn sync match rcsSync grouphere rcsString "[0-9.]\+\(\s\|\n\)\+log\(\s\|\n\)\+@"me=e-1 |
| syn sync match rcsSync grouphere rcsTextStr "@\(\s\|\n\)\+text\(\s\|\n\)\+@"me=e-1 |
| endif |
| |
| " Define the default highlighting. |
| " For version 5.7 and earlier: only when not done already. |
| " For version 5.8 and later: only when an item doesn't have highlighting yet. |
| if version >= 508 || !exists("did_rcs_syn_inits") |
| if version <= 508 |
| let did_rcs_syn_inits = 1 |
| command -nargs=+ HiLink hi link <args> |
| else |
| command -nargs=+ HiLink hi def link <args> |
| endif |
| |
| HiLink rcsKeyword Keyword |
| HiLink rcsNumber Identifier |
| HiLink rcsString String |
| HiLink rcsTextStr String |
| HiLink rcsSpecial Special |
| HiLink rcsDiffLines Special |
| HiLink rcsEOFError Error |
| |
| delcommand HiLink |
| endif |
| |
| let b:current_syntax = "rcs" |