blob: 5fa66c49b0bb02b1e69780a1c261d662d806b432 [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.
53command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000054
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020055HiLink rcsKeyword Keyword
56HiLink rcsNumber Identifier
57HiLink rcsString String
58HiLink rcsTextStr String
59HiLink rcsSpecial Special
60HiLink rcsDiffLines Special
61HiLink rcsEOFError Error
Bram Moolenaar071d4272004-06-13 20:20:40 +000062
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020063delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000064
65let b:current_syntax = "rcs"