|
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