mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 01:48:32 +02:00
changed regex operator to %=
This commit is contained in:
parent
45edef2d71
commit
6906c82408
@ -8,7 +8,7 @@ const protectedSessionService = require('../../protected_session');
|
||||
const striptags = require('striptags');
|
||||
const utils = require("../../utils");
|
||||
|
||||
const ALLOWED_OPERATORS = ['*=*', '=', '*=', '=*', '~'];
|
||||
const ALLOWED_OPERATORS = ['*=*', '=', '*=', '=*', '%='];
|
||||
|
||||
const cachedRegexes = {};
|
||||
|
||||
@ -25,7 +25,7 @@ class NoteContentFulltextExp extends Expression {
|
||||
super();
|
||||
|
||||
if (!ALLOWED_OPERATORS.includes(operator)) {
|
||||
throw new Error(`Note content can be searched only with operators: ` + ALLOWED_OPERATORS.join(", "));
|
||||
throw new Error(`Note content can be searched only with operators: ` + ALLOWED_OPERATORS.join(", ") + `, operator ${operator} given.`);
|
||||
}
|
||||
|
||||
this.operator = operator;
|
||||
@ -62,13 +62,14 @@ class NoteContentFulltextExp extends Expression {
|
||||
|
||||
content = this.preprocessContent(content, type, mime);
|
||||
|
||||
if (this.tokens.length === 1 && this.operator !== '*=*') {
|
||||
if (this.tokens.length === 1) {
|
||||
const [token] = this.tokens;
|
||||
|
||||
if ((this.operator === '=' && token === content)
|
||||
|| (this.operator === '*=' && content.endsWith(token))
|
||||
|| (this.operator === '=*' && content.startsWith(token))
|
||||
|| (this.operator === '~' && getRegex(token).test(content))) {
|
||||
|| (this.operator === '*=*' && content.includes(token))
|
||||
|| (this.operator === '%=' && getRegex(token).test(content))) {
|
||||
|
||||
resultNoteSet.add(becca.notes[noteId]);
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ const stringComparators = {
|
||||
"*=": comparedValue => (val => val && val.endsWith(comparedValue)),
|
||||
"=*": comparedValue => (val => val && val.startsWith(comparedValue)),
|
||||
"*=*": comparedValue => (val => val && val.includes(comparedValue)),
|
||||
"~": comparedValue => (val => val && !!getRegex(comparedValue).test(val)),
|
||||
"%=": comparedValue => (val => val && !!getRegex(comparedValue).test(val)),
|
||||
};
|
||||
|
||||
const numericComparators = {
|
||||
|
@ -9,7 +9,7 @@ function lex(str) {
|
||||
let currentWord = '';
|
||||
|
||||
function isSymbolAnOperator(chr) {
|
||||
return ['=', '*', '>', '<', '!', "-", "+"].includes(chr);
|
||||
return ['=', '*', '>', '<', '!', "-", "+", '%'].includes(chr);
|
||||
}
|
||||
|
||||
function isPreviousSymbolAnOperator() {
|
||||
|
@ -40,7 +40,7 @@ function getFulltext(tokens, searchContext) {
|
||||
}
|
||||
|
||||
function isOperator(str) {
|
||||
return str.match(/^[!=<>*~]+$/);
|
||||
return str.match(/^[!=<>*%]+$/);
|
||||
}
|
||||
|
||||
function getExpression(tokens, searchContext, level = 0) {
|
||||
|
@ -13,9 +13,10 @@
|
||||
<excludeFolder url="file://$MODULE_DIR$/libraries" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/docs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/bin/better-sqlite3" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/data" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
<orderEntry type="library" name="@types/jquery" level="application" />
|
||||
</component>
|
||||
</module>
|
||||
</module>
|
Loading…
x
Reference in New Issue
Block a user