Просмотр исходного кода

Merge pull request #4085 from overleaf/ae-symbol-palette-words

Improve symbol matching for multi-word input

GitOrigin-RevId: a12ff1e1ccc38acab8be47fd2f5bcdca2c6c6859
Alf Eaton 5 лет назад
Родитель
Сommit
468817b1a7

+ 10 - 4
services/web/frontend/js/features/symbol-palette/components/symbol-palette-content.js

@@ -32,10 +32,16 @@ export default function SymbolPaletteContent({ handleSelect }) {
       return null
       return null
     }
     }
 
 
-    return matchSorter(symbols, input, {
-      keys: ['command', 'description'],
-      threshold: matchSorter.rankings.CONTAINS,
-    })
+    const words = input.trim().split(/\W+/)
+
+    return words.reduceRight(
+      (symbols, word) =>
+        matchSorter(symbols, word, {
+          keys: ['command', 'description'],
+          threshold: matchSorter.rankings.CONTAINS,
+        }),
+      symbols
+    )
   }, [input])
   }, [input])
 
 
   const inputRef = useRef(null)
   const inputRef = useRef(null)