blob: 13f157b005548da797ed649ed62e6b1f23230b04 [file] [log] [blame]
Bram Moolenaar3577c6f2008-06-24 21:16:56 +00001" Vim syntax file
2" Language: git rebase --interactive
Bram Moolenaar5c736222010-01-06 20:54:52 +01003" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
Bram Moolenaar3577c6f2008-06-24 21:16:56 +00004" Filenames: git-rebase-todo
Bram Moolenaar2f0936c2022-01-08 21:51:59 +00005" Last Change: 2022 Jan 05
Bram Moolenaar3577c6f2008-06-24 21:16:56 +00006
7if exists("b:current_syntax")
Bram Moolenaar7a329912010-05-21 12:05:36 +02008 finish
Bram Moolenaar3577c6f2008-06-24 21:16:56 +00009endif
10
11syn case match
12
Bram Moolenaar2f0936c2022-01-08 21:51:59 +000013let s:c = escape((matchstr(getline('$'), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/')
14
15syn match gitrebaseHash "\v<\x{7,}>" contained contains=@NoSpell
16syn match gitrebaseCommit "\v<\x{7,}>" nextgroup=gitrebaseSummary skipwhite contains=@NoSpell
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000017syn match gitrebasePick "\v^p%(ick)=>" nextgroup=gitrebaseCommit skipwhite
Bram Moolenaar5c736222010-01-06 20:54:52 +010018syn match gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite
Bram Moolenaar7a329912010-05-21 12:05:36 +020019syn match gitrebaseEdit "\v^e%(dit)=>" nextgroup=gitrebaseCommit skipwhite
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000020syn match gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
Bram Moolenaar7a329912010-05-21 12:05:36 +020021syn match gitrebaseFixup "\v^f%(ixup)=>" nextgroup=gitrebaseCommit skipwhite
Bram Moolenaar53bfca22012-04-13 23:04:47 +020022syn match gitrebaseExec "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite
Bram Moolenaarc08ee742019-12-05 22:47:25 +010023syn match gitrebaseBreak "\v^b%(reak)=>"
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020024syn match gitrebaseDrop "\v^d%(rop)=>" nextgroup=gitrebaseCommit skipwhite
Bram Moolenaarc08ee742019-12-05 22:47:25 +010025syn match gitrebaseNoop "\v^noop>"
26syn match gitrebaseMerge "\v^m(erge)=>" nextgroup=gitrebaseMergeOption,gitrebaseName skipwhite
27syn match gitrebaseLabel "\v^l(abel)=>" nextgroup=gitrebaseName skipwhite
Bram Moolenaar664f3cf2019-12-07 16:03:51 +010028syn match gitrebaseReset "\v^(t|reset)=>" nextgroup=gitrebaseName skipwhite
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000029syn match gitrebaseSummary ".*" contains=gitrebaseHash contained
Bram Moolenaar53bfca22012-04-13 23:04:47 +020030syn match gitrebaseCommand ".*" contained
Bram Moolenaar2f0936c2022-01-08 21:51:59 +000031exe 'syn match gitrebaseComment " \@<=' . s:c . ' empty$" containedin=gitrebaseSummary contained'
32exe 'syn match gitrebaseComment "^\s*' . s:c . '.*" contains=gitrebaseHash'
Bram Moolenaar7a329912010-05-21 12:05:36 +020033syn match gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite
Bram Moolenaarc08ee742019-12-05 22:47:25 +010034syn match gitrebaseMergeOption "\v-[Cc]>" nextgroup=gitrebaseMergeCommit skipwhite contained
35syn match gitrebaseMergeCommit "\v<\x{7,}>" nextgroup=gitrebaseName skipwhite contained
36syn match gitrebaseName "\v[^[:space:].*?i:^~/-]\S+" nextgroup=gitrebaseMergeComment skipwhite contained
Bram Moolenaar2f0936c2022-01-08 21:51:59 +000037exe 'syn match gitrebaseMergeComment "' . s:c . '" nextgroup=gitrebaseSummary skipwhite contained'
38
39unlet s:c
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000040
41hi def link gitrebaseCommit gitrebaseHash
42hi def link gitrebaseHash Identifier
Bram Moolenaarc08ee742019-12-05 22:47:25 +010043hi def link gitrebasePick Type
44hi def link gitrebaseReword Conditional
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000045hi def link gitrebaseEdit PreProc
Bram Moolenaarc08ee742019-12-05 22:47:25 +010046hi def link gitrebaseSquash Statement
47hi def link gitrebaseFixup Repeat
48hi def link gitrebaseExec Operator
49hi def link gitrebaseBreak Macro
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020050hi def link gitrebaseDrop Comment
Bram Moolenaarc08ee742019-12-05 22:47:25 +010051hi def link gitrebaseNoop Comment
52hi def link gitrebaseMerge Exception
53hi def link gitrebaseLabel Label
54hi def link gitrebaseReset Keyword
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000055hi def link gitrebaseSummary String
56hi def link gitrebaseComment Comment
Bram Moolenaar5c736222010-01-06 20:54:52 +010057hi def link gitrebaseSquashError Error
Bram Moolenaarc08ee742019-12-05 22:47:25 +010058hi def link gitrebaseMergeCommit gitrebaseCommit
59hi def link gitrebaseMergeComment gitrebaseComment
60hi def link gitrebaseName Tag
Bram Moolenaar3577c6f2008-06-24 21:16:56 +000061
62let b:current_syntax = "gitrebase"