blob: 2461abebb950711febbcb171d8dd7d2380c2fc69 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Diff (context or unified)
3" Maintainer: Bram Moolenaar <Bram@vim.org>
4" Last Change: 2003 Apr 02
5
6" For version 5.x: Clear all syntax items
7" For version 6.x: Quit when a syntax file was already loaded
8if version < 600
9 syntax clear
10elseif exists("b:current_syntax")
11 finish
12endif
13
14syn match diffOnly "^Only in .*"
15syn match diffIdentical "^Files .* and .* are identical$"
16syn match diffDiffer "^Files .* and .* differ$"
17syn match diffBDiffer "^Binary files .* and .* differ$"
18syn match diffIsA "^File .* is a .* while file .* is a .*"
19syn match diffNoEOL "^No newline at end of file .*"
20syn match diffCommon "^Common subdirectories: .*"
21
22syn match diffRemoved "^-.*"
23syn match diffRemoved "^<.*"
24syn match diffAdded "^+.*"
25syn match diffAdded "^>.*"
26syn match diffChanged "^! .*"
27
28syn match diffSubname " @@..*"ms=s+3 contained
29syn match diffLine "^@.*" contains=diffSubname
30syn match diffLine "^\<\d\+\>.*"
31syn match diffLine "^\*\*\*\*.*"
32
33"Some versions of diff have lines like "#c#" and "#d#" (where # is a number)
34syn match diffLine "^\d\+\(,\d\+\)\=[cda]\d\+\>.*"
35
36syn match diffFile "^diff.*"
37syn match diffFile "^+++ .*"
38syn match diffFile "^Index: .*$"
39syn match diffFile "^==== .*$"
40syn match diffOldFile "^\*\*\* .*"
41syn match diffNewFile "^--- .*"
42
43syn match diffComment "^#.*"
44
45" Define the default highlighting.
46" For version 5.7 and earlier: only when not done already
47" For version 5.8 and later: only when an item doesn't have highlighting yet
48if version >= 508 || !exists("did_diff_syntax_inits")
49 if version < 508
50 let did_diff_syntax_inits = 1
51 command -nargs=+ HiLink hi link <args>
52 else
53 command -nargs=+ HiLink hi def link <args>
54 endif
55
56 HiLink diffOldFile diffFile
57 HiLink diffNewFile diffFile
58 HiLink diffFile Type
59 HiLink diffOnly Constant
60 HiLink diffIdentical Constant
61 HiLink diffDiffer Constant
62 HiLink diffBDiffer Constant
63 HiLink diffIsA Constant
64 HiLink diffNoEOL Constant
65 HiLink diffCommon Constant
66 HiLink diffRemoved Special
67 HiLink diffChanged PreProc
68 HiLink diffAdded Identifier
69 HiLink diffLine Statement
70 HiLink diffSubname PreProc
71 HiLink diffComment Comment
72
73 delcommand HiLink
74endif
75
76let b:current_syntax = "diff"
77
78" vim: ts=8 sw=2