neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

gitrebase.vim (3200B)


      1 " Vim syntax file
      2 " Language:	git rebase --interactive
      3 " Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
      4 " Filenames:	git-rebase-todo
      5 " Last Change:	2022 Jan 05
      6 
      7 if exists("b:current_syntax")
      8  finish
      9 endif
     10 
     11 syn case match
     12 
     13 let s:c = escape((matchstr(getline('$'), '^[#;@!$%^&|:]\S\@!') . '#')[0], '^$.*[]~\"/')
     14 
     15 syn match   gitrebaseHash   "\v<\x{7,}>"                               contained contains=@NoSpell
     16 syn match   gitrebaseCommit "\v<\x{7,}>"    nextgroup=gitrebaseSummary skipwhite contains=@NoSpell
     17 syn match   gitrebasePick   "\v^p%(ick)=>"   nextgroup=gitrebaseCommit skipwhite
     18 syn match   gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite
     19 syn match   gitrebaseEdit   "\v^e%(dit)=>"   nextgroup=gitrebaseCommit skipwhite
     20 syn match   gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
     21 syn match   gitrebaseFixup  "\v^f%(ixup)=>"  nextgroup=gitrebaseCommit skipwhite
     22 syn match   gitrebaseExec   "\v^%(x|exec)>" nextgroup=gitrebaseCommand skipwhite
     23 syn match   gitrebaseBreak  "\v^b%(reak)=>"
     24 syn match   gitrebaseDrop   "\v^d%(rop)=>"   nextgroup=gitrebaseCommit skipwhite
     25 syn match   gitrebaseNoop   "\v^noop>"
     26 syn match   gitrebaseMerge  "\v^m(erge)=>"   nextgroup=gitrebaseMergeOption,gitrebaseName skipwhite
     27 syn match   gitrebaseLabel  "\v^l(abel)=>"   nextgroup=gitrebaseName skipwhite
     28 syn match   gitrebaseReset  "\v^(t|reset)=>" nextgroup=gitrebaseName skipwhite
     29 syn match   gitrebaseSummary ".*"               contains=gitrebaseHash contained
     30 syn match   gitrebaseCommand ".*"                                      contained
     31 exe 'syn match gitrebaseComment " \@<=' . s:c . ' empty$" containedin=gitrebaseSummary contained'
     32 exe 'syn match gitrebaseComment "^\s*' . s:c . '.*" contains=gitrebaseHash'
     33 syn match   gitrebaseSquashError "\v%^%(s%(quash)=>|f%(ixup)=>)" nextgroup=gitrebaseCommit skipwhite
     34 syn match   gitrebaseMergeOption "\v-[Cc]>"  nextgroup=gitrebaseMergeCommit skipwhite contained
     35 syn match   gitrebaseMergeCommit "\v<\x{7,}>"  nextgroup=gitrebaseName skipwhite contained
     36 syn match   gitrebaseName        "\v[^[:space:].*?i:^~/-]\S+" nextgroup=gitrebaseMergeComment skipwhite contained
     37 exe 'syn match gitrebaseMergeComment "' . s:c . '"  nextgroup=gitrebaseSummary skipwhite contained'
     38 
     39 unlet s:c
     40 
     41 hi def link gitrebaseCommit         gitrebaseHash
     42 hi def link gitrebaseHash           Identifier
     43 hi def link gitrebasePick           Type
     44 hi def link gitrebaseReword         Conditional
     45 hi def link gitrebaseEdit           PreProc
     46 hi def link gitrebaseSquash         Statement
     47 hi def link gitrebaseFixup          Repeat
     48 hi def link gitrebaseExec           Operator
     49 hi def link gitrebaseBreak          Macro
     50 hi def link gitrebaseDrop           Comment
     51 hi def link gitrebaseNoop           Comment
     52 hi def link gitrebaseMerge          Exception
     53 hi def link gitrebaseLabel          Label
     54 hi def link gitrebaseReset          Keyword
     55 hi def link gitrebaseSummary        String
     56 hi def link gitrebaseComment        Comment
     57 hi def link gitrebaseSquashError    Error
     58 hi def link gitrebaseMergeCommit    gitrebaseCommit
     59 hi def link gitrebaseMergeComment   gitrebaseComment
     60 hi def link gitrebaseName           Tag
     61 
     62 let b:current_syntax = "gitrebase"