null
= 0) {
// Start the next search from where this one finished
startIndex = matchIndex + searchLen;
regions.push([matchIndex, startIndex]);
}
}
// Sort the regions by start position then end position
regions = regions.sort(function(a, b) {
let start = a[0] - b[0];
return (start == 0) ? a[1] - b[1] : start;
});
// Generate the boundary indices from each region
let start = 0;
let end = 0;
let boundaries = [];
let len = regions.length;
for (let i = 0; i < len; i++) {
// We have a new boundary if the start of the next is past the end
let region = regions[i];
if (region[0] > end) {
// First index is the beginning of match
boundaries.push(start);
// Second index is the beginning of non-match
boundaries.push(end);
// Track the new region now that we've stored the previous one
start = region[0];
}
// Push back the end index for the current or new region
end = Math.max(end, region[1]);
}
// Add the last region
boundaries.push(start);
boundaries.push(end);
// Put on the end boundary if necessary
if (end < aText.length)
boundaries.push(aText.length);
// Skip the first item because it's always 0
return boundaries.slice(1);
]]>
= 0; ) {
let charCode = aText.charCodeAt(i);
// Arabic, Syriac, Indic languages are likely to have ligatures
// that are broken when using the main emphasis styling
if (0x0600 <= charCode && charCode <= 0x109F)
return true;
}
return false;
]]>
0) {
// Subtract a little less to account for subpixel rounding
widthDiff -= childWidth - .5;
// Add to the tooltip if it's not hidden and has text
let childText = children[i].textContent;
if (childText)
tooltip.push(childText);
}
}
// If the children take up more space than the parent.. overflow!
if (widthDiff < 0) {
// Re-show the ellipsis now that we know it's needed
aEllipsis.hidden = false;
// Separate text components with a ndash --
aParentBox.tooltipText = tooltip.join(" \u2013 ");
}
]]>
var node = document.createElementNS(
"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",
"richlistitem");
node.obj = aObj;
node.setAttribute("type",
"gloda-" + this.row.nounDef.name + "-chunk");
this._identityHolder.appendChild(node);