annotate runtime/syntax/tags.vim @ 33872:2c5ae1ce5af2 v9.0.2146

patch 9.0.2146: text-property without type errors when joining Commit: https://github.com/vim/vim/commit/0d0b3b19517c321b089d637919e88e49a07a3d85 Author: Christian Brabandt <cb@256bit.org> Date: Sun Dec 3 17:56:43 2023 +0100 patch 9.0.2146: text-property without type errors when joining Problem: text-property without type errors when joining Solution: count all text-properties, with or without type before joining lines Error when joining lines with text properties without a proper type When joining lines, we need to consider all text properties that are attached to a line, even when those text properties are invalid and do not have a type attached to them. However, since patch v9.0.0993 (commit: 89469d157aea01513bde826b4519dd6b5fbceae4) those text properties won't be counted when joining lines and therefore this will cause the adjustment for text properties on joining to go wrong (and may later cause SIGABRT with an invalid free pointer) I am not sure, why the condition to not count text properties with a valid type was added in patch v9.0.993, because no test fails if those condition is removed. So let's just remove this condition and add a test that verifies, that we are able to join lines, even when the text properties attached to it do not have a valid type. fixes: #13609 closes: #13614 Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sun, 10 Dec 2023 15:16:11 +0100
parents 8edf0aeb71b9
children 02bd0fe77c68
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
1 " Language: tags
19180
8edf0aeb71b9 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 10306
diff changeset
2 " Maintainer: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
10306
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
3 " Last Change: Oct 26, 2016
19180
8edf0aeb71b9 Update runtime files.
Bram Moolenaar <Bram@vim.org>
parents: 10306
diff changeset
4 " Version: 8
6479
b3bc99b909c3 Updated syntax files.
Bram Moolenaar <bram@vim.org>
parents: 507
diff changeset
5 " URL: http://www.drchip.org/astronaut/vim/index.html#SYNTAX_TAGS
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 6479
diff changeset
7 " quit when a syntax file was already loaded
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 6479
diff changeset
8 if exists("b:current_syntax")
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9 finish
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 endif
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11
10306
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
12 syn match tagName "^[^\t]\+" skipwhite nextgroup=tagPath
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
13 syn match tagPath "[^\t]\+" contained skipwhite nextgroup=tagAddr contains=tagBaseFile
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 syn match tagBaseFile "[a-zA-Z_]\+[\.a-zA-Z_0-9]*\t"me=e-1 contained
10306
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
15 syn match tagAddr "\d*" contained skipwhite nextgroup=tagComment
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
16 syn region tagAddr matchgroup=tagDelim start="/" skip="\(\\\\\)*\\/" matchgroup=tagDelim end="$\|/" oneline contained skipwhite nextgroup=tagComment
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
17 syn match tagComment ";.*$" contained contains=tagField
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 syn match tagComment "^!_TAG_.*$"
10306
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
19 syn match tagField contained "[a-z]*:"
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 " Define the default highlighting.
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
22 if !exists("skip_drchip_tags_inits")
10306
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
23 hi def link tagBaseFile PreProc
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
24 hi def link tagComment Comment
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
25 hi def link tagDelim Delimiter
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
26 hi def link tagField Number
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
27 hi def link tagName Identifier
d75e2380db0e commit https://github.com/vim/vim/commit/6d5ad4c4118cab5fd96db157621c3aa9af368edb
Christian Brabandt <cb@256bit.org>
parents: 10051
diff changeset
28 hi def link tagPath PreProc
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
29 endif
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 let b:current_syntax = "tags"