mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-14 02:29:33 +01:00
fix(tabs): lower-case search text without the browser locale (#580)
CodemanTabSearch lower-cased the query and each row with toLocaleLowerCase(), i.e. the browser's locale. Under a Turkish or Azeri locale "API Review" lowers to "apı review", so a search for "api" missed it, and the sidebar filter box, which used locale-independent toLowerCase() before #580, changed matching with it. Both now use toLowerCase(), like every other frontend search. Test: a vm context of its own whose toLocaleLowerCase behaves like the Turkish locale (the prototype is that context's alone) checks that "API" still normalizes to "api" and that "API Review" matches. The test file's overview also lists the pins the #580 fixes added. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
e589004926
commit
4a94eb9ba7
2 files changed
+31
-3
No files matched your search
@@ -1023,11 +1023,13 @@ function tabClusterNameSplit(name, label) {
|
||||
/**
|
||||
* Session-list search: the vertical rail's search box and the sidebar's filter
|
||||
* box. Trimmed, case-insensitive substring; a whitespace-only query is no query.
|
||||
* Lower-cased with toLowerCase(), never toLocaleLowerCase(): under a Turkish or
|
||||
* Azeri browser locale "API" lowers to "apı" and a search for "api" would miss it.
|
||||
* @param {unknown} query
|
||||
* @returns {string} the needle, '' when there is nothing to search for
|
||||
*/
|
||||
function tabSearchNeedle(query) {
|
||||
return typeof query === 'string' ? query.trim().toLocaleLowerCase() : '';
|
||||
return typeof query === 'string' ? query.trim().toLowerCase() : '';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1056,7 +1058,7 @@ function filterTabSearchRows(rows, query) {
|
||||
for (const row of Array.isArray(rows) ? rows : []) {
|
||||
const hasSection = row.section !== null && row.section !== undefined;
|
||||
if (hasSection && !counts.has(row.section)) counts.set(row.section, 0);
|
||||
const text = typeof row.text === 'string' ? row.text.toLocaleLowerCase() : '';
|
||||
const text = typeof row.text === 'string' ? row.text.toLowerCase() : '';
|
||||
const matches = !needle || text.includes(needle);
|
||||
if (!matches && row.keep !== true) {
|
||||
hidden.add(row.key);
|
||||
|
||||
Reference in new issue
Block a user