|
741 | 741 | return literalSearch === true ? false : lev_distance; |
742 | 742 | } |
743 | 743 |
|
744 | | - function checkPath(startsWith, lastElem, ty) { |
745 | | - if (startsWith.length === 0) { |
| 744 | + function checkPath(contains, lastElem, ty) { |
| 745 | + if (contains.length === 0) { |
746 | 746 | return 0; |
747 | 747 | } |
748 | 748 | var ret_lev = MAX_LEV_DISTANCE + 1; |
|
752 | 752 | path.push(ty.parent.name.toLowerCase()); |
753 | 753 | } |
754 | 754 |
|
755 | | - if (startsWith.length > path.length) { |
| 755 | + if (contains.length > path.length) { |
756 | 756 | return MAX_LEV_DISTANCE + 1; |
757 | 757 | } |
758 | 758 | for (var i = 0; i < path.length; ++i) { |
759 | | - if (i + startsWith.length > path.length) { |
| 759 | + if (i + contains.length > path.length) { |
760 | 760 | break; |
761 | 761 | } |
762 | 762 | var lev_total = 0; |
763 | 763 | var aborted = false; |
764 | | - for (var x = 0; x < startsWith.length; ++x) { |
765 | | - var lev = levenshtein(path[i + x], startsWith[x]); |
| 764 | + for (var x = 0; x < contains.length; ++x) { |
| 765 | + var lev = levenshtein(path[i + x], contains[x]); |
766 | 766 | if (lev > MAX_LEV_DISTANCE) { |
767 | 767 | aborted = true; |
768 | 768 | break; |
769 | 769 | } |
770 | 770 | lev_total += lev; |
771 | 771 | } |
772 | 772 | if (aborted === false) { |
773 | | - ret_lev = Math.min(ret_lev, Math.round(lev_total / startsWith.length)); |
| 773 | + ret_lev = Math.min(ret_lev, Math.round(lev_total / contains.length)); |
774 | 774 | } |
775 | 775 | } |
776 | 776 | return ret_lev; |
|
934 | 934 | } |
935 | 935 | } |
936 | 936 | val = paths[paths.length - 1]; |
937 | | - var startsWith = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); |
| 937 | + var contains = paths.slice(0, paths.length > 1 ? paths.length - 1 : 1); |
938 | 938 |
|
939 | 939 | for (j = 0; j < nSearchWords; ++j) { |
940 | 940 | var lev_distance; |
|
944 | 944 | } |
945 | 945 | var lev_add = 0; |
946 | 946 | if (paths.length > 1) { |
947 | | - var lev = checkPath(startsWith, paths[paths.length - 1], ty); |
| 947 | + var lev = checkPath(contains, paths[paths.length - 1], ty); |
948 | 948 | if (lev > MAX_LEV_DISTANCE) { |
949 | 949 | continue; |
950 | 950 | } else if (lev > 0) { |
|
987 | 987 | } |
988 | 988 |
|
989 | 989 | lev += lev_add; |
990 | | - if (lev > 0 && val.length > 3 && searchWords[j].startsWith(val)) { |
| 990 | + if (lev > 0 && val.length > 3 && searchWords[j].indexOf(val) > -1) { |
991 | 991 | if (val.length < 6) { |
992 | 992 | lev -= 1; |
993 | 993 | } else { |
|
0 commit comments