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 @@...@@ -43,6 +43,7 @@
4343
44 var typeKinds = indexTypeKinds();44 var typeKinds = indexTypeKinds();
45 var typeTypeId = findTypeTypeId();45 var typeTypeId = findTypeTypeId();
46 var pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 };
4647
47 // for each package, is an array with packages to get to this one48 // for each package, is an array with packages to get to this one
48 var canonPkgPaths = computeCanonicalPackagePaths();49 var canonPkgPaths = computeCanonicalPackagePaths();
...@@ -378,21 +379,38 @@...@@ -378,21 +379,38 @@
378379
379 function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl) {380 function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl) {
380 var typeObj = zigAnalysis.types[typeIndex];381 var typeObj = zigAnalysis.types[typeIndex];
382 var declNameOk = declCanRepresentTypeKind(typeObj.kind);
381 if (wantLink) {383 if (wantLink) {
382 var declIndex = getCanonTypeDecl(typeIndex);384 var declIndex = getCanonTypeDecl(typeIndex);
383 var declPath = getCanonDeclPath(declIndex);385 var declPath = getCanonDeclPath(declIndex);
384 var haveLink = declPath != null;386 if (declPath == null) {
385 var typeNameHtml = typeName(typeObj, true, !haveLink, fnDecl, linkFnNameDecl);387 return typeName(typeObj, wantHtml, wantLink, fnDecl, linkFnNameDecl);
386 if (haveLink) {388 }
387 return '<a href="' + navLink(declPath.pkgNames, declPath.declNames) + '">' + typeNameHtml + '</a>';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>';
388 } else {394 } else {
389 return typeNameHtml;395 return name;
390 }396 }
391 } else {397 } else {
392 return typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl);398 return typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl);
393 }399 }
394 }400 }
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
396 function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl) {414 function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl) {
397 switch (typeObj.kind) {415 switch (typeObj.kind) {
398 case typeKinds.Array:416 case typeKinds.Array:
...@@ -408,17 +426,17 @@...@@ -408,17 +426,17 @@
408 case typeKinds.Pointer:426 case typeKinds.Pointer:
409 var name = "";427 var name = "";
410 switch (typeObj.len) {428 switch (typeObj.len) {
411 case 0:429 case pointerSizeEnum.One:
412 default:430 default:
413 name += "*";431 name += "*";
414 break;432 break;
415 case 1:433 case pointerSizeEnum.Many:
416 name += "[*]";434 name += "[*]";
417 break;435 break;
418 case 2:436 case pointerSizeEnum.Slice:
419 name += "[]";437 name += "[]";
420 break;438 break;
421 case 3:439 case pointerSizeEnum.C:
422 name += "[*c]";440 name += "[*c]";
423 break;441 break;
424 }442 }
...@@ -562,16 +580,20 @@...@@ -562,16 +580,20 @@
562 payloadHtml += ', ';580 payloadHtml += ', ';
563 }581 }
564582
583 var argTypeIndex = typeObj.args[i];
584
565 if (fnDecl != null && zigAnalysis.astNodes[fnDecl.src].fields != null) {585 if (fnDecl != null && zigAnalysis.astNodes[fnDecl.src].fields != null) {
566 var paramDeclIndex = zigAnalysis.astNodes[fnDecl.src].fields[i];586 var paramDeclIndex = zigAnalysis.astNodes[fnDecl.src].fields[i];
567 var paramName = zigAnalysis.astNodes[paramDeclIndex].name;587 var paramName = zigAnalysis.astNodes[paramDeclIndex].name;
568588
569 if (paramName != null) {589 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 }
571 }594 }
572 }595 }
573596
574 var argTypeIndex = typeObj.args[i];
575 if (argTypeIndex != null) {597 if (argTypeIndex != null) {
576 payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink);598 payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink);
577 } else if (wantHtml) {599 } else if (wantHtml) {