changelog
- feat:【search_multi】【multi_highlighter】:支持高级搜索
- feat:【core / dialog】:支持 color input
- chg:【toc】【hotkeyHub】【file_counter】:优化代码
高级搜索举例:输入 (foo bar) OR ("foo bar" abc) -baz
会搜索满足以下要求的文档:
- 要求1:要么同时包含
foo
和bar
两个关键字,要么同时包含foo bar
和abc
两个关键字 - 要求2:不包含
baz
关键字
对应搜索文法如下,比较简单,但是应该够用了,也符合直觉:
<query> ::= <expr>
<expr> ::= <term> ( 'OR' <term> )*
<term> ::= <factor> ( <minus_and> <factor> )*
<factor> ::= <quoted_phrase> | <keyword> | '(' <expr> ')'
<quoted_phrase> ::= '"' [<keyword>] '"'
<minus_and> ::= '-' | ' '
<keyword> ::= \w+