authorgravatar for 14938807+xackus@users.noreply.github.comxackus <14938807+xackus@users.noreply.github.com> 2020-04-07 22:56:00+02:00
committergravatar for 14938807+xackus@users.noreply.github.comxackus <14938807+xackus@users.noreply.github.com> 2020-04-07 23:37:33+02:00
log721c76b53c706020ceb50466e5a6245739efce05
treec6215d28f17db7e230872b0c2a4774b23418f169
parentbf46117f1314653df3a70ede05aabcd599ce6b08

refactor common pattern into a function


1 files changed, 42 insertions(+), 111 deletions(-)

lib/std/special/docs/main.js+42-111
......@@ -47,6 +47,16 @@
4747 var typeKinds = indexTypeKinds();
4848 var typeTypeId = findTypeTypeId();
4949 var pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 };
50 var tokenKinds = {
51 Keyword: 'tok-kw',
52 String: 'tok-str',
53 Builtin: 'tok-builtin',
54 Comment: 'tok-comment',
55 Function: 'tok-fn',
56 Null: 'tok-null',
57 Number: 'tok-number',
58 Type: 'tok-type',
59 };
5060
5161 // for each package, is an array with packages to get to this one
5262 var canonPkgPaths = computeCanonicalPackagePaths();
......@@ -537,18 +547,10 @@
537547 var fnObj = zigAnalysis.fns[value];
538548 return typeIndexName(fnObj.type, wantHtml, wantLink);
539549 case typeKinds.Int:
540 if (wantHtml) {
541 return '<span class="tok-number">' + value + '</span>';
542 } else {
543 return value + "";
544 }
550 return token(value, tokenKinds.Number, wantHtml);
545551 case typeKinds.Optional:
546552 if(value === 'null'){
547 if (wantHtml) {
548 return '<span class="tok-null">' + value + '</span>';
549 } else {
550 return value + "";
551 }
553 return token(value, tokenKinds.Null, wantHtml);
552554 } else {
553555 console.trace("TODO non-null optional value printing");
554556 return "TODO";
......@@ -563,11 +565,7 @@
563565 switch (typeObj.kind) {
564566 case typeKinds.Array:
565567 var name = "[";
566 if (wantHtml) {
567 name += '<span class="tok-number">' + typeObj.len + '</span>';
568 } else {
569 name += typeObj.len;
570 }
568 name += token(typeObj.len, tokenKinds.Number, wantHtml);
571569 name += "]";
572570 name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null);
573571 return name;
......@@ -591,111 +589,48 @@
591589 break;
592590 }
593591 if (typeObj['const']) {
594 if (wantHtml) {
595 name += '<span class="tok-kw">const</span> ';
596 } else {
597 name += "const ";
598 }
592 name += token('const', tokenKinds.Keyword, wantHtml) + ' ';
599593 }
600594 if (typeObj['volatile']) {
601 if (wantHtml) {
602 name += '<span class="tok-kw">volatile</span> ';
603 } else {
604 name += "volatile ";
605 }
595 name += token('volatile', tokenKinds.Keyword, wantHtml) + ' ';
606596 }
607597 if (typeObj.align != null) {
608 if (wantHtml) {
609 name += '<span class="tok-kw">align</span>(';
610 } else {
611 name += "align(";
612 }
613 if (wantHtml) {
614 name += '<span class="tok-number">' + typeObj.align + '</span>';
615 } else {
616 name += typeObj.align;
617 }
598 name += token('align', tokenKinds.Keyword, wantHtml) + '(';
599 name += token(typeObj.align, tokenKinds.Number, wantHtml);
600
618601 if (typeObj.hostIntBytes != null) {
619602 name += ":";
620 if (wantHtml) {
621 name += '<span class="tok-number">' + typeObj.bitOffsetInHost + '</span>';
622 } else {
623 name += typeObj.bitOffsetInHost;
624 }
603 name += token(typeObj.bitOffsetInHost, tokenKinds.Number, wantHtml);
625604 name += ":";
626 if (wantHtml) {
627 name += '<span class="tok-number">' + typeObj.hostIntBytes + '</span>';
628 } else {
629 name += typeObj.hostIntBytes;
630 }
605 name += token(typeObj.hostIntBytes, tokenKinds.Number, wantHtml);
631606 }
632607 name += ") ";
633608 }
634609 name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null);
635610 return name;
636611 case typeKinds.Float:
637 if (wantHtml) {
638 return '<span class="tok-type">f' + typeObj.bits + '</span>';
639 } else {
640 return "f" + typeObj.bits;
641 }
612 return token('f' + typeObj.bits, tokenKinds.Type, wantHtml);
642613 case typeKinds.Int:
643614 var signed = (typeObj.i != null) ? 'i' : 'u';
644615 var bits = typeObj[signed];
645 if (wantHtml) {
646 return '<span class="tok-type">' + signed + bits + '</span>';
647 } else {
648 return signed + bits;
649 }
616 return token(signed + bits, tokenKinds.Type, wantHtml);
650617 case typeKinds.ComptimeInt:
651 if (wantHtml) {
652 return '<span class="tok-type">comptime_int</span>';
653 } else {
654 return "comptime_int";
655 }
618 return token('comptime_int', tokenKinds.Type, wantHtml);
656619 case typeKinds.ComptimeFloat:
657 if (wantHtml) {
658 return '<span class="tok-type">comptime_float</span>';
659 } else {
660 return "comptime_float";
661 }
620 return token('comptime_float', tokenKinds.Type, wantHtml);
662621 case typeKinds.Type:
663 if (wantHtml) {
664 return '<span class="tok-type">type</span>';
665 } else {
666 return "type";
667 }
622 return token('type', tokenKinds.Type, wantHtml);
668623 case typeKinds.Bool:
669 if (wantHtml) {
670 return '<span class="tok-type">bool</span>';
671 } else {
672 return "bool";
673 }
624 return token('bool', tokenKinds.Type, wantHtml);
674625 case typeKinds.Void:
675 if (wantHtml) {
676 return '<span class="tok-type">void</span>';
677 } else {
678 return "void";
679 }
626 return token('void', tokenKinds.Type, wantHtml);
680627 case typeKinds.EnumLiteral:
681 if (wantHtml) {
682 return '<span class="tok-type">(enum literal)</span>';
683 } else {
684 return "(enum literal)";
685 }
628 return token('(enum literal)', tokenKinds.Type, wantHtml);
686629 case typeKinds.NoReturn:
687 if (wantHtml) {
688 return '<span class="tok-type">noreturn</span>';
689 } else {
690 return "noreturn";
691 }
630 return token('noreturn', tokenKinds.Type, wantHtml);
692631 case typeKinds.ErrorSet:
693632 if (typeObj.errors == null) {
694 if (wantHtml) {
695 return '<span class="tok-type">anyerror</span>';
696 } else {
697 return "anyerror";
698 }
633 return token('anyerror', tokenKinds.Type, wantHtml);
699634 } else {
700635 if (wantHtml) {
701636 return escapeHtml(typeObj.name);
......@@ -756,19 +691,11 @@
756691 }
757692
758693 if (paramNode.noalias) {
759 if (wantHtml) {
760 payloadHtml += '<span class="tok-kw">noalias</span> ';
761 } else {
762 payloadHtml += 'noalias ';
763 }
694 payloadHtml += token('noalias', tokenKinds.Keyword, wantHtml) + ' ';
764695 }
765696
766697 if (paramNode.comptime) {
767 if (wantHtml) {
768 payloadHtml += '<span class="tok-kw">comptime</span> ';
769 } else {
770 payloadHtml += 'comptime ';
771 }
698 payloadHtml += token('comptime', tokenKinds.Keyword, wantHtml) + ' ';
772699 }
773700
774701 var paramName = paramNode.name;
......@@ -784,10 +711,8 @@
784711 payloadHtml += '...';
785712 } else if (argTypeIndex != null) {
786713 payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink);
787 } else if (wantHtml) {
788 payloadHtml += '<span class="tok-kw">var</span>';
789714 } else {
790 payloadHtml += 'var';
715 payloadHtml += token('var', tokenKinds.Keyword, wantHtml);
791716 }
792717 }
793718 }
......@@ -795,10 +720,8 @@
795720 payloadHtml += ') ';
796721 if (typeObj.ret != null) {
797722 payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl);
798 } else if (wantHtml) {
799 payloadHtml += '<span class="tok-kw">var</span>';
800723 } else {
801 payloadHtml += 'var';
724 payloadHtml += token('var', tokenKinds.Keyword, wantHtml);
802725 }
803726 return payloadHtml;
804727 default:
......@@ -1973,4 +1896,12 @@
19731896 return key;
19741897 }
19751898 }
1899
1900 function token(value, tokenClass, wantHtml){
1901 if(wantHtml){
1902 return '<span class="' + tokenClass + '">' + value + '</span>';
1903 } else {
1904 return value + '';
1905 }
1906 }
19761907})();