something which can be evaluated by a pattern to produce
either a score or a more precise match
A pattern composing other ones with operators
A pattern for searching in file content
A regex for searching in file content
A pattern for exact matching
A pattern for fuzzy matching
wraps both
A NameMatch is a positive result of pattern matching inside
a filename or subpath
on what the search applies
(a composite pattern may apply to several topic
hence the bools)
An intermediate parsed representation of the raw string making
a pattern, with up to 3 parts (search mode, core pattern, modifiers)
manage how to find the search mode to apply to a
pattern taking the config in account.
define a mapping from a search mode which can be typed in
the input to a SearchMode value
a list of tokens we want to find, non overlapping
and in any order, in strings