blob: 5a34802adada1728a604bfb52e1de85f86f05b39 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
Bram Moolenaar3991dab2006-03-27 17:01:56 +00002" Language: RCS file
Bram Moolenaar5dc62522012-02-13 00:05:22 +01003" Maintainer: Dmitry Vasiliev <dima at hlabs dot org>
4" URL: https://github.com/hdima/vim-scripts/blob/master/syntax/rcs.vim
5" Last Change: 2012-02-11
Bram Moolenaar3991dab2006-03-27 17:01:56 +00006" Filenames: *,v
Bram Moolenaar5dc62522012-02-13 00:05:22 +01007" Version: 1.12
Bram Moolenaar3991dab2006-03-27 17:01:56 +00008
Bram Moolenaar071d4272004-06-13 20:20:40 +00009" Options:
Bram Moolenaar3991dab2006-03-27 17:01:56 +000010" rcs_folding = 1 For folding strings
Bram Moolenaar071d4272004-06-13 20:20:40 +000011
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020012" quit when a syntax file was already loaded.
13if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000014 finish
15endif
16
17" RCS file must end with a newline.
Bram Moolenaar3991dab2006-03-27 17:01:56 +000018syn match rcsEOFError ".\%$" containedin=ALL
Bram Moolenaar071d4272004-06-13 20:20:40 +000019
20" Keywords.
Bram Moolenaar3991dab2006-03-27 17:01:56 +000021syn keyword rcsKeyword head branch access symbols locks strict
22syn keyword rcsKeyword comment expand date author state branches
23syn keyword rcsKeyword next desc log
24syn keyword rcsKeyword text nextgroup=rcsTextStr skipwhite skipempty
Bram Moolenaar071d4272004-06-13 20:20:40 +000025
26" Revision numbers and dates.
Bram Moolenaar3991dab2006-03-27 17:01:56 +000027syn match rcsNumber "\<[0-9.]\+\>" display
Bram Moolenaar071d4272004-06-13 20:20:40 +000028
29" Strings.
30if exists("rcs_folding") && has("folding")
31 " Folded strings.
Bram Moolenaar3991dab2006-03-27 17:01:56 +000032 syn region rcsString matchgroup=rcsString start="@" end="@" skip="@@" fold contains=rcsSpecial
33 syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" fold contained contains=rcsSpecial,rcsDiffLines
Bram Moolenaar071d4272004-06-13 20:20:40 +000034else
Bram Moolenaar3991dab2006-03-27 17:01:56 +000035 syn region rcsString matchgroup=rcsString start="@" end="@" skip="@@" contains=rcsSpecial
36 syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" contained contains=rcsSpecial,rcsDiffLines
Bram Moolenaar071d4272004-06-13 20:20:40 +000037endif
Bram Moolenaar3991dab2006-03-27 17:01:56 +000038syn match rcsSpecial "@@" contained
39syn match rcsDiffLines "[da]\d\+ \d\+$" contained
Bram Moolenaar071d4272004-06-13 20:20:40 +000040
41" Synchronization.
42syn sync clear
43if exists("rcs_folding") && has("folding")
44 syn sync fromstart
45else
46 " We have incorrect folding if following sync patterns is turned on.
Bram Moolenaar3991dab2006-03-27 17:01:56 +000047 syn sync match rcsSync grouphere rcsString "[0-9.]\+\(\s\|\n\)\+log\(\s\|\n\)\+@"me=e-1
48 syn sync match rcsSync grouphere rcsTextStr "@\(\s\|\n\)\+text\(\s\|\n\)\+@"me=e-1
Bram Moolenaar071d4272004-06-13 20:20:40 +000049endif
50
51" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020052" Only when an item doesn't have highlighting yet.
Bram Moolenaar071d4272004-06-13 20:20:40 +000053
Bram Moolenaarf37506f2016-08-31 22:22:10 +020054hi def link rcsKeyword Keyword
55hi def link rcsNumber Identifier
56hi def link rcsString String
57hi def link rcsTextStr String
58hi def link rcsSpecial Special
59hi def link rcsDiffLines Special
60hi def link rcsEOFError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000061
Bram Moolenaar071d4272004-06-13 20:20:40 +000062
63let b:current_syntax = "rcs"