xref: /vim-8.2.3635/runtime/syntax/rcs.vim (revision cb03397a)
1" Vim syntax file
2" Language:     RCS file
3" 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
6" Filenames:    *,v
7" Version:      1.12
8
9" Options:
10"   rcs_folding = 1   For folding strings
11
12" For version 5.x: Clear all syntax items.
13" For version 6.x: Quit when a syntax file was already loaded.
14if version < 600
15  syntax clear
16elseif exists("b:current_syntax")
17  finish
18endif
19
20" RCS file must end with a newline.
21syn match rcsEOFError   ".\%$" containedin=ALL
22
23" Keywords.
24syn keyword rcsKeyword  head branch access symbols locks strict
25syn keyword rcsKeyword  comment expand date author state branches
26syn keyword rcsKeyword  next desc log
27syn keyword rcsKeyword  text nextgroup=rcsTextStr skipwhite skipempty
28
29" Revision numbers and dates.
30syn match rcsNumber "\<[0-9.]\+\>" display
31
32" Strings.
33if exists("rcs_folding") && has("folding")
34  " Folded strings.
35  syn region rcsString  matchgroup=rcsString start="@" end="@" skip="@@" fold contains=rcsSpecial
36  syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" fold contained contains=rcsSpecial,rcsDiffLines
37else
38  syn region rcsString  matchgroup=rcsString start="@" end="@" skip="@@" contains=rcsSpecial
39  syn region rcsTextStr matchgroup=rcsTextStr start="@" end="@" skip="@@" contained contains=rcsSpecial,rcsDiffLines
40endif
41syn match rcsSpecial    "@@" contained
42syn match rcsDiffLines  "[da]\d\+ \d\+$" contained
43
44" Synchronization.
45syn sync clear
46if exists("rcs_folding") && has("folding")
47  syn sync fromstart
48else
49  " We have incorrect folding if following sync patterns is turned on.
50  syn sync match rcsSync    grouphere rcsString "[0-9.]\+\(\s\|\n\)\+log\(\s\|\n\)\+@"me=e-1
51  syn sync match rcsSync    grouphere rcsTextStr "@\(\s\|\n\)\+text\(\s\|\n\)\+@"me=e-1
52endif
53
54" Define the default highlighting.
55" For version 5.7 and earlier: only when not done already.
56" For version 5.8 and later: only when an item doesn't have highlighting yet.
57if version >= 508 || !exists("did_rcs_syn_inits")
58  if version <= 508
59    let did_rcs_syn_inits = 1
60    command -nargs=+ HiLink hi link <args>
61  else
62    command -nargs=+ HiLink hi def link <args>
63  endif
64
65  HiLink rcsKeyword     Keyword
66  HiLink rcsNumber      Identifier
67  HiLink rcsString      String
68  HiLink rcsTextStr     String
69  HiLink rcsSpecial     Special
70  HiLink rcsDiffLines   Special
71  HiLink rcsEOFError    Error
72
73  delcommand HiLink
74endif
75
76let b:current_syntax = "rcs"
77