| ... | @@ -6,6 +6,8 @@ | ... | @@ -6,6 +6,8 @@ |
| 6 | var domListPkgs = document.getElementById("listPkgs"); | 6 | var domListPkgs = document.getElementById("listPkgs"); |
| 7 | var domSectTypes = document.getElementById("sectTypes"); | 7 | var domSectTypes = document.getElementById("sectTypes"); |
| 8 | var domListTypes = document.getElementById("listTypes"); | 8 | var domListTypes = document.getElementById("listTypes"); |
| | 9 | var domSectNamespaces = document.getElementById("sectNamespaces"); |
| | 10 | var domListNamespaces = document.getElementById("listNamespaces"); |
| 9 | var domSectErrSets = document.getElementById("sectErrSets"); | 11 | var domSectErrSets = document.getElementById("sectErrSets"); |
| 10 | var domListErrSets = document.getElementById("listErrSets"); | 12 | var domListErrSets = document.getElementById("listErrSets"); |
| 11 | var domSectFns = document.getElementById("sectFns"); | 13 | var domSectFns = document.getElementById("sectFns"); |
| ... | @@ -47,6 +49,7 @@ | ... | @@ -47,6 +49,7 @@ |
| 47 | var typeKindNoReturnId; | 49 | var typeKindNoReturnId; |
| 48 | var typeKindErrSetId; | 50 | var typeKindErrSetId; |
| 49 | var typeKindErrUnionId; | 51 | var typeKindErrUnionId; |
| | 52 | var typeKindStructId; |
| 50 | findTypeKinds(); | 53 | findTypeKinds(); |
| 51 | | 54 | |
| 52 | // for each package, is an array with packages to get to this one | 55 | // for each package, is an array with packages to get to this one |
| ... | @@ -104,6 +107,7 @@ | ... | @@ -104,6 +107,7 @@ |
| 104 | domFnDocs.classList.add("hidden"); | 107 | domFnDocs.classList.add("hidden"); |
| 105 | domSectPkgs.classList.add("hidden"); | 108 | domSectPkgs.classList.add("hidden"); |
| 106 | domSectTypes.classList.add("hidden"); | 109 | domSectTypes.classList.add("hidden"); |
| | 110 | domSectNamespaces.classList.add("hidden"); |
| 107 | domSectErrSets.classList.add("hidden"); | 111 | domSectErrSets.classList.add("hidden"); |
| 108 | domSectFns.classList.add("hidden"); | 112 | domSectFns.classList.add("hidden"); |
| 109 | domSectFields.classList.add("hidden"); | 113 | domSectFields.classList.add("hidden"); |
| ... | @@ -185,6 +189,13 @@ | ... | @@ -185,6 +189,13 @@ |
| 185 | return typeObj.kind === typeKindErrSetId; | 189 | return typeObj.kind === typeKindErrSetId; |
| 186 | } | 190 | } |
| 187 | | 191 | |
| | 192 | function typeIsStructWithNoFields(typeIndex) { |
| | 193 | var typeObj = zigAnalysis.types[typeIndex]; |
| | 194 | if (typeObj.kind !== typeKindStructId) |
| | 195 | return false; |
| | 196 | return typeObj.fields == null || typeObj.fields.length === 0; |
| | 197 | } |
| | 198 | |
| 188 | function typeIsGenericFn(typeIndex) { | 199 | function typeIsGenericFn(typeIndex) { |
| 189 | var typeObj = zigAnalysis.types[typeIndex]; | 200 | var typeObj = zigAnalysis.types[typeIndex]; |
| 190 | if (typeObj.kind !== typeKindFnId) { | 201 | if (typeObj.kind !== typeKindFnId) { |
| ... | @@ -628,6 +639,7 @@ | ... | @@ -628,6 +639,7 @@ |
| 628 | | 639 | |
| 629 | function renderContainer(container) { | 640 | function renderContainer(container) { |
| 630 | var typesList = []; | 641 | var typesList = []; |
| | 642 | var namespacesList = []; |
| 631 | var errSetsList = []; | 643 | var errSetsList = []; |
| 632 | var fnsList = []; | 644 | var fnsList = []; |
| 633 | var varsList = []; | 645 | var varsList = []; |
| ... | @@ -641,6 +653,8 @@ | ... | @@ -641,6 +653,8 @@ |
| 641 | if (decl.type == typeTypeId) { | 653 | if (decl.type == typeTypeId) { |
| 642 | if (typeIsErrSet(decl.value)) { | 654 | if (typeIsErrSet(decl.value)) { |
| 643 | errSetsList.push(decl); | 655 | errSetsList.push(decl); |
| | 656 | } else if (typeIsStructWithNoFields(decl.value)) { |
| | 657 | namespacesList.push(decl); |
| 644 | } else { | 658 | } else { |
| 645 | typesList.push(decl); | 659 | typesList.push(decl); |
| 646 | } | 660 | } |
| ... | @@ -659,6 +673,9 @@ | ... | @@ -659,6 +673,9 @@ |
| 659 | typesList.sort(function(a, b) { | 673 | typesList.sort(function(a, b) { |
| 660 | return operatorCompare(a.name, b.name); | 674 | return operatorCompare(a.name, b.name); |
| 661 | }); | 675 | }); |
| | 676 | namespacesList.sort(function(a, b) { |
| | 677 | return operatorCompare(a.name, b.name); |
| | 678 | }); |
| 662 | errSetsList.sort(function(a, b) { | 679 | errSetsList.sort(function(a, b) { |
| 663 | return operatorCompare(a.name, b.name); | 680 | return operatorCompare(a.name, b.name); |
| 664 | }); | 681 | }); |
| ... | @@ -680,6 +697,17 @@ | ... | @@ -680,6 +697,17 @@ |
| 680 | } | 697 | } |
| 681 | domSectTypes.classList.remove("hidden"); | 698 | domSectTypes.classList.remove("hidden"); |
| 682 | } | 699 | } |
| | 700 | if (namespacesList.length !== 0) { |
| | 701 | resizeDomList(domListNamespaces, namespacesList.length, '<li><a href="#"></a></li>'); |
| | 702 | for (var i = 0; i < namespacesList.length; i += 1) { |
| | 703 | var liDom = domListNamespaces.children[i]; |
| | 704 | var aDom = liDom.children[0]; |
| | 705 | var decl = namespacesList[i]; |
| | 706 | aDom.textContent = decl.name; |
| | 707 | aDom.setAttribute('href', navLinkDecl(decl.name)); |
| | 708 | } |
| | 709 | domSectNamespaces.classList.remove("hidden"); |
| | 710 | } |
| 683 | | 711 | |
| 684 | if (errSetsList.length !== 0) { | 712 | if (errSetsList.length !== 0) { |
| 685 | resizeDomList(domListErrSets, errSetsList.length, '<li><a href="#"></a></li>'); | 713 | resizeDomList(domListErrSets, errSetsList.length, '<li><a href="#"></a></li>'); |
| ... | @@ -816,6 +844,8 @@ | ... | @@ -816,6 +844,8 @@ |
| 816 | typeKindErrSetId = i; | 844 | typeKindErrSetId = i; |
| 817 | } else if (zigAnalysis.typeKinds[i] === "ErrorUnion") { | 845 | } else if (zigAnalysis.typeKinds[i] === "ErrorUnion") { |
| 818 | typeKindErrUnionId = i; | 846 | typeKindErrUnionId = i; |
| | 847 | } else if (zigAnalysis.typeKinds[i] === "Struct") { |
| | 848 | typeKindStructId = i; |
| 819 | } | 849 | } |
| 820 | } | 850 | } |
| 821 | if (typeKindTypeId == null) { | 851 | if (typeKindTypeId == null) { |
| ... | @@ -848,6 +878,9 @@ | ... | @@ -848,6 +878,9 @@ |
| 848 | if (typeKindErrUnionId == null) { | 878 | if (typeKindErrUnionId == null) { |
| 849 | throw new Error("No type kind 'ErrorUnion' found"); | 879 | throw new Error("No type kind 'ErrorUnion' found"); |
| 850 | } | 880 | } |
| | 881 | if (typeKindStructId == null) { |
| | 882 | throw new Error("No type kind 'Struct' found"); |
| | 883 | } |
| 851 | } | 884 | } |
| 852 | | 885 | |
| 853 | function findTypeTypeId() { | 886 | function findTypeTypeId() { |