authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-10-10 15:42:40-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-10-10 15:42:40-04:00
logd15a71afc95f148966be2f5fd9f66b8396e8293d
tree514bfb6fa0e92bdcd6cbe55d1d683b5238517f93
parent6cbb732b59d1ded92c7272a8b06f645e1c8acfd2
signaturelock-open Commit is signed but in an unrecognized format.

generated docs: clean up type names and param names

closes #3410

1 files changed, 33 insertions(+), 11 deletions(-)

lib/std/special/docs/main.js+33-11
......@@ -43,6 +43,7 @@
4343
4444 var typeKinds = indexTypeKinds();
4545 var typeTypeId = findTypeTypeId();
46 var pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 };
4647
4748 // for each package, is an array with packages to get to this one
4849 var canonPkgPaths = computeCanonicalPackagePaths();
......@@ -378,21 +379,38 @@
378379
379380 function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl) {
380381 var typeObj = zigAnalysis.types[typeIndex];
382 var declNameOk = declCanRepresentTypeKind(typeObj.kind);
381383 if (wantLink) {
382384 var declIndex = getCanonTypeDecl(typeIndex);
383385 var declPath = getCanonDeclPath(declIndex);
384 var haveLink = declPath != null;
385 var typeNameHtml = typeName(typeObj, true, !haveLink, fnDecl, linkFnNameDecl);
386 if (haveLink) {
387 return '<a href="' + navLink(declPath.pkgNames, declPath.declNames) + '">' + typeNameHtml + '</a>';
386 if (declPath == null) {
387 return typeName(typeObj, wantHtml, wantLink, fnDecl, linkFnNameDecl);
388 }
389 var name = (wantLink && declCanRepresentTypeKind(typeObj.kind)) ?
390 declPath.declNames[declPath.declNames.length - 1] :
391 typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl);
392 if (wantLink && wantHtml) {
393 return '<a href="' + navLink(declPath.pkgNames, declPath.declNames) + '">' + name + '</a>';
388394 } else {
389 return typeNameHtml;
395 return name;
390396 }
391397 } else {
392398 return typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl);
393399 }
394400 }
395401
402 function shouldSkipParamName(typeIndex, paramName) {
403 var typeObj = zigAnalysis.types[typeIndex];
404 if (typeObj.kind === typeKinds.Pointer && getPtrSize(typeObj) === pointerSizeEnum.One) {
405 typeIndex = typeObj.elem;
406 }
407 return typeIndexName(typeIndex, false, true).toLowerCase() === paramName;
408 }
409
410 function getPtrSize(typeObj) {
411 return (typeObj.len == null) ? pointerSizeEnum.One : typeObj.len;
412 }
413
396414 function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl) {
397415 switch (typeObj.kind) {
398416 case typeKinds.Array:
......@@ -408,17 +426,17 @@
408426 case typeKinds.Pointer:
409427 var name = "";
410428 switch (typeObj.len) {
411 case 0:
429 case pointerSizeEnum.One:
412430 default:
413431 name += "*";
414432 break;
415 case 1:
433 case pointerSizeEnum.Many:
416434 name += "[*]";
417435 break;
418 case 2:
436 case pointerSizeEnum.Slice:
419437 name += "[]";
420438 break;
421 case 3:
439 case pointerSizeEnum.C:
422440 name += "[*c]";
423441 break;
424442 }
......@@ -562,16 +580,20 @@
562580 payloadHtml += ', ';
563581 }
564582
583 var argTypeIndex = typeObj.args[i];
584
565585 if (fnDecl != null && zigAnalysis.astNodes[fnDecl.src].fields != null) {
566586 var paramDeclIndex = zigAnalysis.astNodes[fnDecl.src].fields[i];
567587 var paramName = zigAnalysis.astNodes[paramDeclIndex].name;
568588
569589 if (paramName != null) {
570 payloadHtml += paramName + ': ';
590 // skip if it matches the type name
591 if (argTypeIndex == null || !shouldSkipParamName(argTypeIndex, paramName)) {
592 payloadHtml += paramName + ': ';
593 }
571594 }
572595 }
573596
574 var argTypeIndex = typeObj.args[i];
575597 if (argTypeIndex != null) {
576598 payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink);
577599 } else if (wantHtml) {