Mercurial > vim
annotate runtime/syntax/git.vim @ 34436:506b04337541 v9.1.0139
patch 9.1.0139: MS-Windows: ligatures map cleared on startup
Commit: https://github.com/vim/vim/commit/2f02638aa8f737786551c92e78ce13def3d098b2
Author: Erik S. V. Jansson <caffeineviking@gmail.com>
Date: Mon Feb 26 22:23:05 2024 +0100
patch 9.1.0139: MS-Windows: ligatures map cleared on startup
Problem: MS-Windows: ligatures map cleared on startup
Solution: Don't clear the ligatures_map, if the guiligatures
option has already been set (Erik S. V. Jansson)
If guiligatures is set from a .vimrc it's possible
that it will be cleared on start-up (e.g. in Win32
that's what happens).
So don't clear the ligatures map if gui_set_ligatures()
has already been called (e.g. after setting 'ligatures'
from .vimrc)
closes: #14094
Signed-off-by: Erik S. V. Jansson <caffeineviking@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 26 Feb 2024 22:30:02 +0100 |
parents | efb7fc51cc5f |
children |
rev | line source |
---|---|
1624 | 1 " Vim syntax file |
2 " Language: generic git output | |
2034 | 3 " Maintainer: Tim Pope <vimNOSPAM@tpope.org> |
34038
efb7fc51cc5f
runtime(git): Make diffs foldable
Christian Brabandt <cb@256bit.org>
parents:
27036
diff
changeset
|
4 " Last Change: 2023 Dec 28 |
1624 | 5 |
6 if exists("b:current_syntax") | |
2202 | 7 finish |
1624 | 8 endif |
9 | |
10 syn case match | |
11 syn sync minlines=50 | |
12 | |
13 syn include @gitDiff syntax/diff.vim | |
14 | |
27036 | 15 syn region gitHead start=/\%^\%(tag \|tree \|object \)\@=/ end=/^$/ contains=@NoSpell |
16 syn region gitHead start=/\%(^commit\%( \x\{4,\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/ contains=@NoSpell | |
17 " git log --oneline | |
18 " minimize false positives by verifying contents of buffer | |
19 if getline(1) =~# '^\x\{7,\} ' && getline('$') =~# '^\x\{7,\} ' | |
20 syn match gitHashAbbrev /^\x\{7,\} \@=/ contains=@NoSpell | |
21 elseif getline(1) =~# '^[|\/\\_ ]\{-\}\*[|\/\\_ ]\{-\} \x\{7,\} ' | |
22 syn match gitHashAbbrev /^[|\/\\_ ]\{-\}\*[|\/\\_ ]\{-\} \zs\x\{7,\} \@=/ contains=@NoSpell | |
23 endif | |
24 " git log --graph | |
25 syn region gitGraph start=/\%(^[|\/\\_ ]*\*[|\/\\_ ]\{-\} commit\%( \x\{4,\}\)\{1,\}\%(\s*(.*)\)\=$\)\@=/ end=/^\%([|\/\\_ ]*$\)\@=/ contains=@NoSpell | |
26 " git blame --porcelain | |
27 syn region gitHead start=/\%(^\x\{40,\} \d\+ \d\+\%( \d\+\)\=$\)\@=/ end=/^\t\@=/ contains=@NoSpell | |
28 " git ls-tree | |
29 syn match gitMode /^\d\{6\}\%( \%(blob\|tree\) \x\{4,\}\t\)\@=/ nextgroup=gitType skipwhite contains=@NoSpell | |
30 " git ls-files --stage | |
31 syn match gitMode /^\d\{6\}\%( \x\{4,\} [0-3]\t\)\@=/ nextgroup=gitHashStage skipwhite contains=@NoSpell | |
32 " .git/HEAD, .git/refs/ | |
33 syn match gitKeyword /\%^ref: \@=/ nextgroup=gitReference skipwhite contains=@NoSpell | |
34 syn match gitHash /\%^\x\{40,}\%$/ skipwhite contains=@NoSpell | |
35 " .git/logs/ | |
36 syn match gitReflog /^\x\{40,\} \x\{40,\} .\{-\}\d\+\s-\d\{4\}\t.*/ skipwhite contains=@NoSpell,gitReflogOld | |
1624 | 37 |
2034 | 38 syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold |
39 syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff | |
40 | |
34038
efb7fc51cc5f
runtime(git): Make diffs foldable
Christian Brabandt <cb@256bit.org>
parents:
27036
diff
changeset
|
41 syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold |
2034 | 42 syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff |
43 syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge | |
27036 | 44 syn match gitDiffAdded "{+[^}]*+}" contained containedin=gitDiff |
2034 | 45 syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge |
27036 | 46 syn match gitDiffRemoved "\[-[^]]*-\]" contained containedin=gitDiff |
1624 | 47 |
27036 | 48 syn match gitKeyword /^commit \@=/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell |
49 syn match gitKeyword /^\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitHead nextgroup=gitHash skipwhite contains=@NoSpell | |
50 syn match gitKeyword /^Merge:/ contained containedin=gitHead nextgroup=gitHashAbbrev skipwhite contains=@NoSpell | |
51 syn match gitIdentityKeyword /^\%(author\|committer\|tagger\) \@=/ contained containedin=gitHead nextgroup=gitIdentity skipwhite contains=@NoSpell | |
52 syn match gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite contains=@NoSpell | |
53 syn match gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite contains=@NoSpell | |
54 | |
55 syn match gitKeyword /^[*|\/\\_ ]\+\zscommit \@=/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell | |
56 syn match gitKeyword /^[|\/\\_ ]\+\zs\%(object\|tree\|parent\|encoding\|gpgsig\%(-\w\+\)\=\|previous\) \@=/ contained containedin=gitGraph nextgroup=gitHash skipwhite contains=@NoSpell | |
57 syn match gitKeyword /^[|\/\\_ ]\+\zsMerge:/ contained containedin=gitGraph nextgroup=gitHashAbbrev skipwhite contains=@NoSpell | |
58 syn match gitIdentityKeyword /^[|\/\\_ ]\+\zs\%(author\|committer\|tagger\) \@=/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite contains=@NoSpell | |
59 syn match gitIdentityHeader /^[|\/\\_ ]\+\zs\%(Author\|Commit\|Tagger\):/ contained containedin=gitGraph nextgroup=gitIdentity skipwhite contains=@NoSpell | |
60 syn match gitDateHeader /^[|\/\\_ ]\+\zs\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitGraph nextgroup=gitDate skipwhite contains=@NoSpell | |
1624 | 61 |
27036 | 62 syn match gitKeyword /^type \@=/ contained containedin=gitHead nextgroup=gitType skipwhite contains=@NoSpell |
63 syn match gitKeyword /^\%(summary\|boundary\|filename\|\%(author\|committer\)-\%(time\|tz\)\) \@=/ contained containedin=gitHead skipwhite contains=@NoSpell | |
64 syn match gitKeyword /^tag \@=/ contained containedin=gitHead nextgroup=gitReference skipwhite contains=@NoSpell | |
65 syn match gitIdentityKeyword /^\%(author\|committer\)-mail \@=/ contained containedin=gitHead nextgroup=gitEmail skipwhite contains=@NoSpell | |
66 syn match gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite contains=@NoSpell | |
67 syn match gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite contains=@NoSpell | |
68 syn match gitReflogMiddle /\S\+@{\d\+} (/he=e-2 nextgroup=gitIdentity contains=@NoSpell | |
1624 | 69 |
27036 | 70 syn match gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite contains=@NoSpell |
71 syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity contains=@NoSpell | |
72 syn match gitDate /\<\u\l\l \u\l\l \d\=\d \d\d:\d\d:\d\d \d\d\d\d [+-]\d\d\d\d/ contained contains=@NoSpell | |
73 syn match gitDate /-\=\d\+ [+-]\d\d\d\d\>/ contained contains=@NoSpell | |
74 syn match gitDate /\<\d\+ \l\+ ago\>/ contained contains=@NoSpell | |
75 syn match gitType /\<\%(tag\|commit\|tree\|blob\)\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell | |
76 syn match gitReference /\S\+\S\@!/ contained contains=@NoSpell | |
77 syn match gitHash /\<\x\{40,\}\>/ contained nextgroup=gitIdentity,gitHash skipwhite contains=@NoSpell | |
78 syn match gitReflogOld /^\x\{40,\} \@=/ contained nextgroup=gitReflogNew skipwhite contains=@NoSpell | |
79 syn match gitReflogNew /\<\x\{40,\} \@=/ contained nextgroup=gitIdentity skipwhite contains=@NoSpell | |
80 syn match gitHashAbbrev /\<\x\{4,\}\>/ contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell | |
81 syn match gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite contains=@NoSpell | |
82 syn match gitHashStage /\<\x\{4,\}\>/ contained nextgroup=gitStage skipwhite contains=@NoSpell | |
83 syn match gitStage /\<\d\t\@=/ contained contains=@NoSpell | |
2034 | 84 |
85 | |
86 syn match gitNotesHeader /^Notes:\ze\n / | |
1624 | 87 |
88 hi def link gitDateHeader gitIdentityHeader | |
89 hi def link gitIdentityHeader gitIdentityKeyword | |
90 hi def link gitIdentityKeyword Label | |
2034 | 91 hi def link gitNotesHeader gitKeyword |
1624 | 92 hi def link gitReflogHeader gitKeyword |
93 hi def link gitKeyword Keyword | |
94 hi def link gitIdentity String | |
95 hi def link gitEmailDelimiter Delimiter | |
96 hi def link gitEmail Special | |
97 hi def link gitDate Number | |
98 hi def link gitMode Number | |
27036 | 99 hi def link gitHashStage gitHash |
1624 | 100 hi def link gitHashAbbrev gitHash |
27036 | 101 hi def link gitReflogOld gitHash |
102 hi def link gitReflogNew gitHash | |
1624 | 103 hi def link gitHash Identifier |
104 hi def link gitReflogMiddle gitReference | |
105 hi def link gitReference Function | |
106 hi def link gitStage gitType | |
107 hi def link gitType Type | |
2034 | 108 hi def link gitDiffAdded diffAdded |
109 hi def link gitDiffRemoved diffRemoved | |
1624 | 110 |
111 let b:current_syntax = "git" |