annotate runtime/syntax/abc.vim @ 34416:0a458b49e1e6 v9.1.0131

patch 9.1.0131: buffer-completion may not always find all matches Commit: https://github.com/vim/vim/commit/0dc0bff000fd804c6b0778ccc4554a4e4c82c8c9 Author: Christian Brabandt <cb@256bit.org> Date: Sat Feb 24 14:12:13 2024 +0100 patch 9.1.0131: buffer-completion may not always find all matches Problem: buffer-completion code too complicated and does not always find all matches (irisjae) Solution: do not try to anchor pattern to beginning of line or directory-separator, always return all matches Note: we are considering the non-fuzzy buffer-matching here. Currently, the buffer-completion code makes 2 attempts to match a pattern against the list of available patterns. First try is to match the pattern and anchor it to either the beginning of the file name or at a directory-separator (// or \\). When a match is found, Vim returns the matching buffers and does not try to find a match anywhere within a buffer name. So if you have opened two buffers like /tmp/Foobar.c and /tmp/MyFoobar.c using `:b Foo` will only complete to the first filename, but not the second (the same happens with `getcompletion('Foo', 'buffer')`). It may make sense, that completion priorities buffer names at directory boundaries, but it inconsistent, may cause confusion why a certain buffer name is not completed when typing `:b Foo<C-D>` which returns only a single file name and then pressing Enter (to switch to that buffer), Vim will error with 'E93: More than one match for Foo'). Similar things may happen when wiping the /tmp/Foobar.c pattern and afterwards the completion starts completing other buffers. So let's simplify the code and always match the pattern anywhere in the buffer name, do not try to favor matches at directory boundaries. This is also simplifies the code a bit, we do not need to run over the list of buffers several times, but only twice. fixes #13894 closes: #14082 Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Sat, 24 Feb 2024 14:30:03 +0100
parents 46763b01cd9a
children
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 " Vim syntax file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2 " Language: abc music notation language
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3 " Maintainer: James Allwright <J.R.Allwright@westminster.ac.uk>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 " URL: http://perun.hscs.wmin.ac.uk/~jra/vim/syntax/abc.vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5 " Last Change: 27th April 2001
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: 7
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: 7
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
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 " tags
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 syn region abcGuitarChord start=+"[A-G]+ end=+"+ contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14 syn match abcNote "z[1-9]*[0-9]*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 syn match abcNote "z[1-9]*[0-9]*/[248]\=" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 syn match abcNote "[=_\^]\{,2}[A-G],*[1-9]*[0-9]*/[248]\=" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 syn match abcNote "[=_\^]\{,2}[a-g]'*[1-9]*[0-9]*/[248]\=" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 syn match abcBar "|" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21 syn match abcBar "[:|][:|]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 syn match abcBar ":|2" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 syn match abcBar "|1" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 syn match abcBar "\[[12]" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 syn match abcTuple "([1-9]\+:\=[0-9]*:\=[0-9]*" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 syn match abcBroken "<\|<<\|<<<\|>\|>>\|>>>" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 syn match abcTie "-"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 syn match abcHeadField "^[A-EGHIK-TVWXZ]:.*$" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 syn match abcBodyField "^[KLMPQWVw]:.*$" contained
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 syn region abcHeader start="^X:" end="^K:.*$" contained contains=abcHeadField,abcComment keepend
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 syn region abcTune start="^X:" end="^ *$" contains=abcHeader,abcComment,abcBar,abcNote,abcBodyField,abcGuitarChord,abcTuple,abcBroken,abcTie
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32 syn match abcComment "%.*$"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 " Define the default highlighting.
10048
43efa4f5a8ea commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents: 7
diff changeset
36 " Only when an item doesn't have highlighting yet
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37
10051
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
38 hi def link abcComment Comment
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
39 hi def link abcHeadField Type
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
40 hi def link abcBodyField Special
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
41 hi def link abcBar Statement
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
42 hi def link abcTuple Statement
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
43 hi def link abcBroken Statement
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
44 hi def link abcTie Statement
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
45 hi def link abcGuitarChord Identifier
46763b01cd9a commit https://github.com/vim/vim/commit/f37506f60f87d52a9e8850e30067645e2b13783c
Christian Brabandt <cb@256bit.org>
parents: 10048
diff changeset
46 hi def link abcNote Constant
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 let b:current_syntax = "abc"
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 " vim: ts=4