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