xref: /vim-8.2.3635/runtime/syntax/rcs.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:     RCS file
35dc6252dSBram Moolenaar" Maintainer:   Dmitry Vasiliev <dima at hlabs dot org>
45dc6252dSBram Moolenaar" URL:          https://github.com/hdima/vim-scripts/blob/master/syntax/rcs.vim
55dc6252dSBram Moolenaar" Last Change:  2012-02-11
6071d4279SBram Moolenaar" Filenames:    *,v
75dc6252dSBram Moolenaar" Version:      1.12
83991dab8SBram Moolenaar
9071d4279SBram Moolenaar" Options:
10071d4279SBram Moolenaar"   rcs_folding = 1   For folding strings
11071d4279SBram Moolenaar
1289bcfda6SBram Moolenaar" quit when a syntax file was already loaded.
1389bcfda6SBram Moolenaarif exists("b:current_syntax")
14071d4279SBram Moolenaar  finish
15071d4279SBram Moolenaarendif
16071d4279SBram Moolenaar
17071d4279SBram Moolenaar" RCS file must end with a newline.
18071d4279SBram Moolenaarsyn match rcsEOFError   ".\%$" containedin=ALL
19071d4279SBram Moolenaar
20071d4279SBram Moolenaar" Keywords.
21071d4279SBram Moolenaarsyn keyword rcsKeyword  head branch access symbols locks strict
22071d4279SBram Moolenaarsyn keyword rcsKeyword  comment expand date author state branches
23071d4279SBram Moolenaarsyn keyword rcsKeyword  next desc log
24071d4279SBram Moolenaarsyn keyword rcsKeyword  text nextgroup=rcsTextStr skipwhite skipempty
25071d4279SBram Moolenaar
26071d4279SBram Moolenaar" Revision numbers and dates.
27071d4279SBram Moolenaarsyn match rcsNumber "\<[0-9.]\+\>" display
28071d4279SBram Moolenaar
29071d4279SBram Moolenaar" Strings.
30071d4279SBram Moolenaarif exists("rcs_folding") && has("folding")
31071d4279SBram Moolenaar  " Folded strings.
32071d4279SBram Moolenaar  syn region rcsString  matchgroup=rcsString start="@" end="@" skip="@@" fold contains=rcsSpecial
33071d4279SBram Moolenaar  syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" fold contained contains=rcsSpecial,rcsDiffLines
34071d4279SBram Moolenaarelse
35071d4279SBram Moolenaar  syn region rcsString  matchgroup=rcsString start="@" end="@" skip="@@" contains=rcsSpecial
36071d4279SBram Moolenaar  syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" contained contains=rcsSpecial,rcsDiffLines
37071d4279SBram Moolenaarendif
38071d4279SBram Moolenaarsyn match rcsSpecial    "@@" contained
39071d4279SBram Moolenaarsyn match rcsDiffLines  "[da]\d\+ \d\+$" contained
40071d4279SBram Moolenaar
41071d4279SBram Moolenaar" Synchronization.
42071d4279SBram Moolenaarsyn sync clear
43071d4279SBram Moolenaarif exists("rcs_folding") && has("folding")
44071d4279SBram Moolenaar  syn sync fromstart
45071d4279SBram Moolenaarelse
46071d4279SBram Moolenaar  " We have incorrect folding if following sync patterns is turned on.
47071d4279SBram Moolenaar  syn sync match rcsSync    grouphere rcsString "[0-9.]\+\(\s\|\n\)\+log\(\s\|\n\)\+@"me=e-1
48071d4279SBram Moolenaar  syn sync match rcsSync    grouphere rcsTextStr "@\(\s\|\n\)\+text\(\s\|\n\)\+@"me=e-1
49071d4279SBram Moolenaarendif
50071d4279SBram Moolenaar
51071d4279SBram Moolenaar" Define the default highlighting.
5289bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet.
53071d4279SBram Moolenaar
54*f37506f6SBram Moolenaarhi def link rcsKeyword     Keyword
55*f37506f6SBram Moolenaarhi def link rcsNumber      Identifier
56*f37506f6SBram Moolenaarhi def link rcsString      String
57*f37506f6SBram Moolenaarhi def link rcsTextStr     String
58*f37506f6SBram Moolenaarhi def link rcsSpecial     Special
59*f37506f6SBram Moolenaarhi def link rcsDiffLines   Special
60*f37506f6SBram Moolenaarhi def link rcsEOFError    Error
61071d4279SBram Moolenaar
62071d4279SBram Moolenaar
63071d4279SBram Moolenaarlet b:current_syntax = "rcs"
64