|
744 | 744 | return literalSearch === true ? false : lev_distance; |
745 | 745 | } |
746 | 746 |
|
747 | | - function checkPath(startsWith, lastElem, ty) { |
748 | | - if (startsWith.length === 0) { |
| 747 | + function checkPath(contains, lastElem, ty) { |
| 748 | + if (contains.length === 0) { |
749 | 749 | return 0; |
750 | 750 | } |
751 | 751 | var ret_lev = MAX_LEV_DISTANCE + 1; |
|
755 | 755 | path.push(ty.parent.name.toLowerCase()); |
756 | 756 | } |
757 | 757 |
|
758 | | - if (startsWith.length > path.length) { |
| 758 | + if (contains.length > path.length) { |
759 | 759 | return MAX_LEV_DISTANCE + 1; |
760 | 760 | } |
761 | 761 | for (var i = 0; i < path.length; ++i) { |
762 | | - if (i + startsWith.length > path.length) { |
| 762 | + if (i + contains.length > path.length) { |
763 | 763 | break; |
764 | 764 | } |
765 | 765 | var lev_total = 0; |
766 | 766 | var aborted = false; |
767 | | - for (var x = 0; x < startsWith.length; ++x) { |
768 | | - var lev = levenshtein(path[i + x], startsWith[x]); |
| 767 | + for (var x = 0; x < contains.length; ++x) { |
| 768 | + var lev = levenshtein(path[i + x], contains[x]); |
769 | 769 | if (lev > MAX_LEV_DISTANCE) { |
770 | 770 | aborted = true; |
771 | 771 | break; |
772 | 772 | } |
773 | 773 | lev_total += lev; |
774 | 774 | } |
775 | 775 | if (aborted === false) { |
776 | | - ret_lev = Math.min(ret_lev, Math.round(lev_total / startsWith.length)); |
| 776 | + ret_lev = Math.min(ret_lev, Math.round(lev_total / contains.length)); |
777 | 777 | } |
778 | 778 | } |
779 | 779 | return ret_lev; |
|
937 | 937 | } |
938 | 938 | } |
939 | 939 | val = paths[paths.length - 1]; |
940 | | - var startsWith = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); |
| 940 | + var contains = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); |
941 | 941 |
|
942 | 942 | for (j = 0; j < nSearchWords; ++j) { |
943 | 943 | var lev_distance; |
|
947 | 947 | } |
948 | 948 | var lev_add = 0; |
949 | 949 | if (paths.length > 1) { |
950 | | - var lev = checkPath(startsWith, paths[paths.length - 1], ty); |
| 950 | + var lev = checkPath(contains, paths[paths.length - 1], ty); |
951 | 951 | if (lev > MAX_LEV_DISTANCE) { |
952 | 952 | continue; |
953 | 953 | } else if (lev > 0) { |
|
990 | 990 | } |
991 | 991 |
|
992 | 992 | lev += lev_add; |
993 | | - if (lev > 0 && val.length > 3 && searchWords[j].startsWith(val)) { |
| 993 | + if (lev > 0 && val.length > 3 && searchWords[j].indexOf(val) > -1) { |
994 | 994 | if (val.length < 6) { |
995 | 995 | lev -= 1; |
996 | 996 | } else { |
|
0 commit comments