From aa73af23eecac506144eda56a905d9a5fa42f6a3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 1 Jan 2023 23:15:33 +0100 Subject: js: Simplify query tokenizer. --- assets/js/mumi.js | 42 +----------------------------------------- 1 file changed, 1 insertion(+), 41 deletions(-) diff --git a/assets/js/mumi.js b/assets/js/mumi.js index dde30a6..ab29f08 100644 --- a/assets/js/mumi.js +++ b/assets/js/mumi.js @@ -26,48 +26,8 @@ var mumi = (function () { { text: 'severity:serious' }, { text: 'severity:wishlist' }, ]; - const queryTokenizer = { - [Symbol.split](str) { - let phrase = false; - let phrasePos = 0; - let pos = 0; - const result = []; - while (pos < str.length) { - let matchPos = str.substring(pos).search(/(\s|\")/); - if (matchPos === -1) { - result.push(str.substring(pos)); - break; - } - - matchPos += pos; - let char = str.charAt(matchPos); - let begin = pos; - - if (char === '"') { - if (phrase) { - /* finished phrase, record from beginning */ - phrase = false; - begin = phrasePos; - matchPos += 1; - } else { - /* beginning phrase, remember position */ - phrase = true; - phrasePos = matchPos; - } - } - - /* don't push anything while inside a phrase */ - if (!phrase) { - result.push(str.substring(begin, matchPos)); - } - pos = matchPos + 1; - } - return result; - }, - }; - var tokenizeText = function (input, options, tokenInput) { - let items = input.value.split(queryTokenizer).filter(entry => entry.trim() != ''); + let items = input.value.match(/(\S+:)?"[^"]*"|\S+/g); let tokens = []; for (item of items) { if (possibleTokens.find(element => element.text == item)) { -- cgit v1.2.3