@@ -84,14 +84,23 @@ Note that when the current file changes, the priority list is mostly not
8484changed, to avoid confusion when using ":tnext". It is changed when using
8585":tag {ident} ".
8686
87- The ignore-case matches are not found for a ":tag" command when the
88- 'ignorecase' option is off and 'tagcase' is "followic" or when 'tagcase' is
89- "match". They are found when a pattern is used (starting with a "/") and for
90- ":tselect", also when 'ignorecase' is off and 'tagcase' is "followic" or when
91- 'tagcase' is "match". Note that using ignore-case tag searching disables
92- binary searching in the tags file, which causes a slowdown. This can be
93- avoided by fold-case sorting the tag file. See the 'tagbsearch' option for an
94- explanation.
87+ The ignore-case matches are not found for a ":tag" command when:
88+ - the 'ignorecase' option is off and 'tagcase' is "followic"
89+ - 'tagcase' is "match"
90+ - 'tagcase' is "smart" and the pattern contains an upper case character.
91+ - 'tagcase' is "followscs" and 'smartcase' option is on and the pattern
92+ contains an upper case character.
93+
94+ The gnore-case matches are found when:
95+ - a pattern is used (starting with a "/")
96+ - for ":tselect"
97+ - when 'tagcase' is "followic" and 'ignorecase' is off
98+ - when 'tagcase' is "match"
99+ - when 'tagcase' is "followscs" and the 'smartcase' option is off
100+
101+ Note that using ignore-case tag searching disables binary searching in the
102+ tags file, which causes a slowdown. This can be avoided by fold-case sorting
103+ the tag file. See the 'tagbsearch' option for an explanation.
95104
96105==============================================================================
971062. Tag stack *tag-stack* *tagstack* *E425*
@@ -442,13 +451,18 @@ file "tags". It can also be used to access a common tags file.
442451The next file in the list is not used when:
443452- A matching static tag for the current buffer has been found.
444453- A matching global tag has been found.
445- This also depends on whether case is ignored. Case is ignored when
446- 'ignorecase' is set and 'tagcase' is "followic", or when 'tagcase' is
447- "ignore". If case is not ignored, and the tags file only has a match without
448- matching case, the next tags file is searched for a match with matching case.
449- If no tag with matching case is found, the first match without matching case
450- is used. If case is ignored, and a matching global tag with or without
451- matching case is found, this one is used, no further tags files are searched.
454+ This also depends on whether case is ignored. Case is ignored when:
455+ - 'tagcase' is "followic" and 'ignorecase' is set
456+ - 'tagcase' is "ignore"
457+ - 'tagcase' is "smart" and and the pattern only contains lower case
458+ characters.
459+ - 'tagcase' is "followscs" and 'smartcase' is set and and the pattern only
460+ contains lower case characters.
461+ If case is not ignored, and the tags file only has a match without matching
462+ case, the next tags file is searched for a match with matching case. If no
463+ tag with matching case is found, the first match without matching case is
464+ used. If case is ignored, and a matching global tag with or without matching
465+ case is found, this one is used, no further tags files are searched.
452466
453467When a tag file name starts with "./", the '.' is replaced with the path of
454468the current file. This makes it possible to use a tags file in the directory
0 commit comments