blob: de3de982eca3929cfdf86180a4a76835329c362e [file] [log] [blame]
Adrià Vilanova Martínez60b712e2024-01-30 01:49:53 +01001" jjdescription syntax file
2" Language: jjdescription file
3" Maintainer: Adrià Vilanova <me@avm99963.com>
4" Filenames: *.jjdescription
5" Source: Based on syntax/gitcommit.vim
6" Last Change: 2024 Jan 30
7
8if exists("b:current_syntax")
9 finish
10endif
11
12scriptencoding utf-8
13
14syn case match
15syn sync minlines=50
16syn sync linebreaks=1
17
18if has("spell")
19 syn spell toplevel
20endif
21
22if get(g:, 'jjdescription_summary_length') < 0
23 syn match jjdescriptionSummary "^.*$" contained containedin=jjdescriptionFirstLine nextgroup=jjdescriptionOverflow contains=@Spell
24elseif get(g:, 'jjdescription_summary_length', 1) > 0
25 exe 'syn match jjdescriptionSummary "^.*\%<' . (get(g:, 'jjdescription_summary_length', 50) + 1) . 'v." contained containedin=jjdescriptionFirstLine nextgroup=jjdescriptionOverflow contains=@Spell'
26endif
27syn match jjdescriptionOverflow ".*" contained contains=@Spell
28syn match jjdescriptionBlank "^.\+" contained contains=@Spell
29syn match jjdescriptionFirstLine "\%^.*" nextgroup=jjdescriptionBlank,jjdescriptionComment skipnl
30
31syn match jjdescriptionComment "^JJ: .*"
32
33syn match jjdescriptionHeader "\%(^JJ: \)\@<=\S.*:\%(\n^$\)\@!$" contained containedin=jjdescriptionComment
34
35syn match jjdescriptionType "\%(^JJ:\s\+\)\@<=[MADR]\ze " contained containedin=jjdescriptionComment nextgroup=jjdescriptionFile skipwhite
36syn match jjdescriptionFile ".*" contained
37
38syn region jjdescriptionSelected start=/^\z(^JJ: \)This commit contains the following changes:$/ end=/^\z1$\|^\z1\@!/ contains=jjdescriptionHeader,jjdescriptionSelectedType containedin=jjdescriptionComment containedin=jjdescriptionComment contained transparent fold
39
40syn match jjdescriptionSelectedType "\%(^JJ:\s\+\)\@<=[MADR]\ze " contained nextgroup=jjdescriptionSelectedFile skipwhite
41syn match jjdescriptionSelectedFile ".*" contained
42
43hi def link jjdescriptionSummary Keyword
44hi def link jjdescriptionComment Comment
45hi def link jjdescriptionSelectedType jjdescriptionType
46hi def link jjdescriptionType Type
47hi def link jjdescriptionHeader PreProc
48hi def link jjdescriptionSelectedFile jjdescriptionFile
49hi def link jjdescriptionFile Constant
50hi def link jjdescriptionBlank Error
51
52let b:current_syntax = "jjdescription"