Fix whitespace-only mappings highlighting every space on the page
A mapping imported with real: " " (single space) passed the !m.real
guard (space is truthy), producing new RegExp(" ", "gi") which matched
every space character in the DOM and highlighted them all.
- Added .trim() to all real/substitute guard conditions in content.js
(inline substitute, reveal functions) and substitution-engine.js so
whitespace-only values are treated as empty and skipped
- Added the same guard in highlightMatches so the CSS Highlight API
never creates ranges for blank search terms
- Added trim + blank-check to the bulk import path in options.js so
whitespace-only real values are dropped at import time rather than
saved to storage
https://claude.ai/code/session_01CwcZK8nqL8pyBH9AxDs9qo
This commit is contained in:
@@ -50,7 +50,7 @@
|
||||
const sorted = [...maps].sort((a, b) => b.real.length - a.real.length);
|
||||
|
||||
for (const m of sorted) {
|
||||
if (!m.enabled || !m.real || !m.substitute) continue;
|
||||
if (!m.enabled || !m.real?.trim() || !m.substitute?.trim()) continue;
|
||||
const escaped = esc(m.real);
|
||||
const regex = new RegExp(escaped, m.caseSensitive ? 'g' : 'gi');
|
||||
let match;
|
||||
@@ -70,7 +70,7 @@
|
||||
let result = text;
|
||||
const sorted = [...maps].sort((a, b) => b.substitute.length - a.substitute.length);
|
||||
for (const m of sorted) {
|
||||
if (!m.enabled || !m.real || !m.substitute) continue;
|
||||
if (!m.enabled || !m.real?.trim() || !m.substitute?.trim()) continue;
|
||||
const escaped = esc(m.substitute);
|
||||
const regex = new RegExp(escaped, m.caseSensitive ? 'g' : 'gi');
|
||||
result = result.replace(regex, m.real);
|
||||
@@ -1130,6 +1130,7 @@
|
||||
|
||||
for (const p of pairs) {
|
||||
const searchTerm = settings.revealMode ? p.to : p.from;
|
||||
if (!searchTerm?.trim()) continue;
|
||||
const escaped = esc(searchTerm);
|
||||
// Add word boundaries when the term starts/ends with word chars to
|
||||
// prevent partial-word matches (e.g. "aud" inside "Claude")
|
||||
|
||||
Reference in New Issue
Block a user