highlight: function()

in packages/fuzzysort/fuzzysort.js [51:84]


  highlight: function (result, hOpen, hClose) {
    if (result === null) return null;
    if (hOpen === undefined) hOpen = "<b>";
    if (hClose === undefined) hClose = "</b>";
    var highlighted = "";
    var matchesIndex = 0;
    var opened = false;
    var target = result.target;
    var targetLen = target.length;
    var matchesBest = result.indexes;
    for (var i = 0; i < targetLen; ++i) {
      var char = target[i];
      if (matchesBest[matchesIndex] === i) {
        ++matchesIndex;
        if (!opened) {
          opened = true;
          highlighted += hOpen;
        }

        if (matchesIndex === matchesBest.length) {
          highlighted += char + hClose + target.substr(i + 1);
          break;
        }
      } else {
        if (opened) {
          opened = false;
          highlighted += hClose;
        }
      }
      highlighted += char;
    }

    return highlighted;
  },