|
415 | 415 | var currentResults, index, searchIndex;
|
416 | 416 | var MAX_LEV_DISTANCE = 3;
|
417 | 417 | var MAX_RESULTS = 200;
|
| 418 | + var GENERICS_DATA = 1; |
| 419 | + var NAME = 0; |
| 420 | + var INPUTS_DATA = 0; |
| 421 | + var OUTPUT_DATA = 1; |
418 | 422 | var params = getQueryStringParams();
|
419 | 423 |
|
420 | 424 | // Populate search bar with query string search term when provided,
|
|
603 | 607 | // match as well.
|
604 | 608 | var lev_distance = MAX_LEV_DISTANCE + 1;
|
605 | 609 | if (val.generics.length > 0) {
|
606 |
| - if (obj.g && obj.g.length >= val.generics.length) { |
607 |
| - var elems = obj.g.slice(0); |
| 610 | + if (obj.length > GENERICS_DATA && |
| 611 | + obj[GENERICS_DATA].length >= val.generics.length) { |
| 612 | + var elems = obj[GENERICS_DATA].slice(0); |
608 | 613 | var total = 0;
|
609 | 614 | var done = 0;
|
610 | 615 | // We need to find the type that matches the most to remove it in order
|
|
636 | 641 | // Check for type name and type generics (if any).
|
637 | 642 | function checkType(obj, val, literalSearch) {
|
638 | 643 | var lev_distance = MAX_LEV_DISTANCE + 1;
|
639 |
| - if (obj.n === val.name) { |
| 644 | + if (obj[NAME] === val.name) { |
640 | 645 | if (literalSearch === true) {
|
641 | 646 | if (val.generics && val.generics.length !== 0) {
|
642 |
| - if (obj.g && obj.length >= val.generics.length) { |
643 |
| - var elems = obj.g.slice(0); |
| 647 | + if (obj.length > GENERICS_DATA && |
| 648 | + obj[GENERICS_DATA].length >= val.generics.length) { |
| 649 | + var elems = obj[GENERICS_DATA].slice(0); |
644 | 650 | var allFound = true;
|
645 | 651 | var x;
|
646 | 652 |
|
|
664 | 670 | }
|
665 | 671 | // If the type has generics but don't match, then it won't return at this point.
|
666 | 672 | // Otherwise, `checkGenerics` will return 0 and it'll return.
|
667 |
| - if (obj.g && obj.g.length !== 0) { |
| 673 | + if (obj.length > GENERICS_DATA && obj[GENERICS_DATA].length !== 0) { |
668 | 674 | var tmp_lev = checkGenerics(obj, val);
|
669 | 675 | if (tmp_lev <= MAX_LEV_DISTANCE) {
|
670 | 676 | return tmp_lev;
|
|
675 | 681 | }
|
676 | 682 | // Names didn't match so let's check if one of the generic types could.
|
677 | 683 | if (literalSearch === true) {
|
678 |
| - if (obj.g && obj.g.length > 0) { |
679 |
| - for (var x = 0; x < obj.g.length; ++x) { |
680 |
| - if (obj.g[x] === val.name) { |
| 684 | + if (obj.length > GENERICS_DATA && obj[GENERICS_DATA].length > 0) { |
| 685 | + for (var x = 0; x < obj[GENERICS_DATA].length; ++x) { |
| 686 | + if (obj[GENERICS_DATA][x] === val.name) { |
681 | 687 | return true;
|
682 | 688 | }
|
683 | 689 | }
|
684 | 690 | }
|
685 | 691 | return false;
|
686 | 692 | }
|
687 |
| - var lev_distance = Math.min(levenshtein(obj.n, val.name), lev_distance); |
| 693 | + var lev_distance = Math.min(levenshtein(obj[NAME], val.name), |
| 694 | + lev_distance); |
688 | 695 | if (lev_distance <= MAX_LEV_DISTANCE) {
|
689 | 696 | lev_distance = Math.min(checkGenerics(obj, val), lev_distance);
|
690 |
| - } else if (obj.g && obj.g.length > 0) { |
| 697 | + } else if (obj.length > GENERICS_DATA && obj[GENERICS_DATA].length > 0) { |
691 | 698 | // We can check if the type we're looking for is inside the generics!
|
692 |
| - for (var x = 0; x < obj.g.length; ++x) { |
693 |
| - lev_distance = Math.min(levenshtein(obj.g[x], val.name), |
| 699 | + for (var x = 0; x < obj[GENERICS_DATA].length; ++x) { |
| 700 | + lev_distance = Math.min(levenshtein(obj[GENERICS_DATA][x], val.name), |
694 | 701 | lev_distance);
|
695 | 702 | }
|
696 | 703 | }
|
|
702 | 709 | function findArg(obj, val, literalSearch) {
|
703 | 710 | var lev_distance = MAX_LEV_DISTANCE + 1;
|
704 | 711 |
|
705 |
| - if (obj && obj.type && obj.type.i && obj.type.i.length > 0) { |
706 |
| - for (var i = 0; i < obj.type.i.length; i++) { |
707 |
| - var tmp = checkType(obj.type.i[i], val, literalSearch); |
| 712 | + if (obj && obj.type && obj.type[INPUTS_DATA] && |
| 713 | + obj.type[INPUTS_DATA].length > 0) { |
| 714 | + for (var i = 0; i < obj.type[INPUTS_DATA].length; i++) { |
| 715 | + var tmp = checkType(obj.type[INPUTS_DATA][i], val, literalSearch); |
708 | 716 | if (literalSearch === true && tmp === true) {
|
709 | 717 | return true;
|
710 | 718 | }
|
|
720 | 728 | function checkReturned(obj, val, literalSearch) {
|
721 | 729 | var lev_distance = MAX_LEV_DISTANCE + 1;
|
722 | 730 |
|
723 |
| - if (obj && obj.type && obj.type.o) { |
724 |
| - var tmp = checkType(obj.type.o, val, literalSearch); |
| 731 | + if (obj && obj.type && obj.type.length > OUTPUT_DATA) { |
| 732 | + var tmp = checkType(obj.type[OUTPUT_DATA], val, literalSearch); |
725 | 733 | if (literalSearch === true && tmp === true) {
|
726 | 734 | return true;
|
727 | 735 | }
|
|
866 | 874 | var fullId = generateId(ty);
|
867 | 875 |
|
868 | 876 | // allow searching for void (no output) functions as well
|
869 |
| - var typeOutput = type.o ? type.o.name : ""; |
| 877 | + var typeOutput = type.length > OUTPUT_DATA ? type[OUTPUT_DATA].name : ""; |
870 | 878 | var returned = checkReturned(ty, output, true);
|
871 | 879 | if (output.name === "*" || returned === true) {
|
872 | 880 | var in_args = false;
|
|
0 commit comments