Skip to content

Commit 99c93b6

Browse files
committed
Update highlight.js
made diacriticInsensitive an option that can be set instead of default behavior
1 parent 654dafa commit 99c93b6

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/typeahead/highlight.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ var highlight = (function(doc) {
1515
tagName: 'strong',
1616
className: null,
1717
wordsOnly: false,
18-
caseSensitive: false
18+
caseSensitive: false,
19+
diacriticInsensitive: false
1920
};
2021

2122
// used for diacritic insensitivity
@@ -61,7 +62,7 @@ var highlight = (function(doc) {
6162
// support wrapping multiple patterns
6263
o.pattern = _.isArray(o.pattern) ? o.pattern : [o.pattern];
6364

64-
regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly);
65+
regex = getRegex(o.pattern, o.caseSensitive, o.wordsOnly, o.diacriticInsensitive);
6566
traverse(o.node, hightlightTextNode);
6667

6768
function hightlightTextNode(textNode) {
@@ -103,13 +104,15 @@ var highlight = (function(doc) {
103104
function accent_replacer(chr) {
104105
return accented[chr.toUpperCase()] || chr;
105106
}
106-
function getRegex(patterns, caseSensitive, wordsOnly) {
107+
function getRegex(patterns, caseSensitive, wordsOnly, diacriticInsensitive) {
107108
var escapedPatterns = [], regexStr;
108109
for (var i = 0, len = patterns.length; i < len; i++) {
109110
var escapedWord = _.escapeRegExChars(patterns[i]);
110111
// added for diacritic insensitivity
111-
var variantWord = escapedWord.replace(/\S/g,accent_replacer);
112-
escapedPatterns.push(variantWord);
112+
if(diacriticInsensitive){
113+
var escapedWord = escapedWord.replace(/\S/g,accent_replacer);
114+
}
115+
escapedPatterns.push(escapedWord);
113116
}
114117
regexStr = wordsOnly ? "\\b(" + escapedPatterns.join("|") + ")\\b" : "(" + escapedPatterns.join("|") + ")";
115118
return caseSensitive ? new RegExp(regexStr) : new RegExp(regexStr, "i");

0 commit comments

Comments
 (0)