| ... | ... | @@ -2,6 +2,7 @@ |
| 2 | 2 | var domStatus = document.getElementById("status"); |
| 3 | 3 | var domSectNav = document.getElementById("sectNav"); |
| 4 | 4 | var domListNav = document.getElementById("listNav"); |
| 5 | var domSectMainPkg = document.getElementById("sectMainPkg"); |
| 5 | 6 | var domSectPkgs = document.getElementById("sectPkgs"); |
| 6 | 7 | var domListPkgs = document.getElementById("listPkgs"); |
| 7 | 8 | var domSectTypes = document.getElementById("sectTypes"); |
| ... | ... | @@ -35,7 +36,6 @@ |
| 35 | 36 | var domSectSearchResults = document.getElementById("sectSearchResults"); |
| 36 | 37 | var domListSearchResults = document.getElementById("listSearchResults"); |
| 37 | 38 | var domSectSearchNoResults = document.getElementById("sectSearchNoResults"); |
| 38 | | var domSectSearchAllResultsLink = document.getElementById("sectSearchAllResultsLink"); |
| 39 | 39 | var domSectInfo = document.getElementById("sectInfo"); |
| 40 | 40 | var domTdTarget = document.getElementById("tdTarget"); |
| 41 | 41 | var domTdZigVer = document.getElementById("tdZigVer"); |
| ... | ... | @@ -43,22 +43,11 @@ |
| 43 | 43 | var domHelpModal = document.getElementById("helpDialog"); |
| 44 | 44 | |
| 45 | 45 | var searchTimer = null; |
| 46 | | var searchTrimResults = true; |
| 47 | 46 | var escapeHtmlReplacements = { "&": "&amp;", '"': "&quot;", "<": "&lt;", ">": "&gt;" }; |
| 48 | 47 | |
| 49 | 48 | var typeKinds = indexTypeKinds(); |
| 50 | 49 | var typeTypeId = findTypeTypeId(); |
| 51 | 50 | var pointerSizeEnum = { One: 0, Many: 1, Slice: 2, C: 3 }; |
| 52 | | var tokenKinds = { |
| 53 | | Keyword: 'tok-kw', |
| 54 | | String: 'tok-str', |
| 55 | | Builtin: 'tok-builtin', |
| 56 | | Comment: 'tok-comment', |
| 57 | | Function: 'tok-fn', |
| 58 | | Null: 'tok-null', |
| 59 | | Number: 'tok-number', |
| 60 | | Type: 'tok-type', |
| 61 | | }; |
| 62 | 51 | |
| 63 | 52 | // for each package, is an array with packages to get to this one |
| 64 | 53 | var canonPkgPaths = computeCanonicalPackagePaths(); |
| ... | ... | @@ -94,8 +83,6 @@ |
| 94 | 83 | var nodesToCallsMap = indexNodesToCalls(); |
| 95 | 84 | |
| 96 | 85 | domSearch.addEventListener('keydown', onSearchKeyDown, false); |
| 97 | | domSectSearchAllResultsLink.addEventListener('click', onClickSearchShowAllResults, false); |
| 98 | | |
| 99 | 86 | window.addEventListener('hashchange', onHashChange, false); |
| 100 | 87 | window.addEventListener('keydown', onWindowKeyDown, false); |
| 101 | 88 | onHashChange(); |
| ... | ... | @@ -119,6 +106,7 @@ |
| 119 | 106 | domFnProto.classList.add("hidden"); |
| 120 | 107 | domSectParams.classList.add("hidden"); |
| 121 | 108 | domTldDocs.classList.add("hidden"); |
| 109 | domSectMainPkg.classList.add("hidden"); |
| 122 | 110 | domSectPkgs.classList.add("hidden"); |
| 123 | 111 | domSectTypes.classList.add("hidden"); |
| 124 | 112 | domSectNamespaces.classList.add("hidden"); |
| ... | ... | @@ -127,7 +115,6 @@ |
| 127 | 115 | domSectFields.classList.add("hidden"); |
| 128 | 116 | domSectSearchResults.classList.add("hidden"); |
| 129 | 117 | domSectSearchNoResults.classList.add("hidden"); |
| 130 | | domSectSearchAllResultsLink.classList.add("hidden"); |
| 131 | 118 | domSectInfo.classList.add("hidden"); |
| 132 | 119 | domHdrName.classList.add("hidden"); |
| 133 | 120 | domSectNav.classList.add("hidden"); |
| ... | ... | @@ -269,19 +256,15 @@ |
| 269 | 256 | domFnNoExamples.classList.remove("hidden"); |
| 270 | 257 | } else if (calls != null) { |
| 271 | 258 | if (fnObj.combined === undefined) fnObj.combined = allCompTimeFnCallsResult(calls); |
| 272 | | if (fnObj.combined != null) { |
| 273 | | renderContainer(fnObj.combined, calls.map(function (call) { return zigAnalysis.calls[call].result.value })); |
| 274 | | } |
| 259 | if (fnObj.combined != null) renderContainer(fnObj.combined); |
| 275 | 260 | |
| 276 | | var domListFnExamplesFragment = createDomListFragment(calls.length, '<li></li>'); |
| 261 | resizeDomList(domListFnExamples, calls.length, '<li></li>'); |
| 277 | 262 | |
| 278 | 263 | for (var callI = 0; callI < calls.length; callI += 1) { |
| 279 | | var liDom = domListFnExamplesFragment.children[callI]; |
| 264 | var liDom = domListFnExamples.children[callI]; |
| 280 | 265 | liDom.innerHTML = getCallHtml(fnDecl, calls[callI]); |
| 281 | 266 | } |
| 282 | 267 | |
| 283 | | domListFnExamples.innerHTML = ""; |
| 284 | | domListFnExamples.appendChild(domListFnExamplesFragment); |
| 285 | 268 | domFnExamples.classList.remove("hidden"); |
| 286 | 269 | } else if (instantiations != null) { |
| 287 | 270 | // TODO |
| ... | ... | @@ -322,7 +305,7 @@ |
| 322 | 305 | return; |
| 323 | 306 | } |
| 324 | 307 | |
| 325 | | var domListParamsFragment = createDomListFragment(docCount, '<div></div>'); |
| 308 | resizeDomList(domListParams, docCount, '<div></div>'); |
| 326 | 309 | var domIndex = 0; |
| 327 | 310 | |
| 328 | 311 | for (var i = 0; i < fields.length; i += 1) { |
| ... | ... | @@ -331,7 +314,7 @@ |
| 331 | 314 | if (fieldNode.docs == null) { |
| 332 | 315 | continue; |
| 333 | 316 | } |
| 334 | | var divDom = domListParamsFragment.children[domIndex]; |
| 317 | var divDom = domListParams.children[domIndex]; |
| 335 | 318 | domIndex += 1; |
| 336 | 319 | var argTypeIndex = typeObj.args[i]; |
| 337 | 320 | |
| ... | ... | @@ -352,15 +335,12 @@ |
| 352 | 335 | } |
| 353 | 336 | divDom.innerHTML = html; |
| 354 | 337 | } |
| 355 | | |
| 356 | | domListParams.innerHTML = ""; |
| 357 | | domListParams.appendChild(domListParamsFragment); |
| 358 | 338 | domSectParams.classList.remove("hidden"); |
| 359 | 339 | } |
| 360 | 340 | |
| 361 | 341 | function renderNav() { |
| 362 | 342 | var len = curNav.pkgNames.length + curNav.declNames.length; |
| 363 | | var domListNavFragment = createDomListFragment(len, '<li><a href="#"></a></li>'); |
| 343 | resizeDomList(domListNav, len, '<li><a href="#"></a></li>'); |
| 364 | 344 | var list = []; |
| 365 | 345 | var hrefPkgNames = []; |
| 366 | 346 | var hrefDeclNames = []; |
| ... | ... | @@ -380,7 +360,7 @@ |
| 380 | 360 | } |
| 381 | 361 | |
| 382 | 362 | for (var i = 0; i < list.length; i += 1) { |
| 383 | | var liDom = domListNavFragment.children[i]; |
| 363 | var liDom = domListNav.children[i]; |
| 384 | 364 | var aDom = liDom.children[0]; |
| 385 | 365 | aDom.textContent = list[i].name; |
| 386 | 366 | aDom.setAttribute('href', list[i].link); |
| ... | ... | @@ -391,8 +371,6 @@ |
| 391 | 371 | } |
| 392 | 372 | } |
| 393 | 373 | |
| 394 | | domListNav.innerHTML = ""; |
| 395 | | domListNav.appendChild(domListNavFragment); |
| 396 | 374 | domSectNav.classList.remove("hidden"); |
| 397 | 375 | } |
| 398 | 376 | |
| ... | ... | @@ -412,7 +390,6 @@ |
| 412 | 390 | var rootPkg = zigAnalysis.packages[zigAnalysis.rootPkg]; |
| 413 | 391 | var list = []; |
| 414 | 392 | for (var key in rootPkg.table) { |
| 415 | | if (key === "root" && rootIsStd) continue; |
| 416 | 393 | var pkgIndex = rootPkg.table[key]; |
| 417 | 394 | if (zigAnalysis.packages[pkgIndex] == null) continue; |
| 418 | 395 | list.push({ |
| ... | ... | @@ -420,14 +397,27 @@ |
| 420 | 397 | pkg: pkgIndex, |
| 421 | 398 | }); |
| 422 | 399 | } |
| 400 | |
| 401 | { |
| 402 | var aDom = domSectMainPkg.children[1].children[0].children[0]; |
| 403 | aDom.textContent = zigAnalysis.params.rootName; |
| 404 | aDom.setAttribute('href', navLinkPkg(zigAnalysis.rootPkg)); |
| 405 | if (zigAnalysis.params.rootName === curNav.pkgNames[0]) { |
| 406 | aDom.classList.add("active"); |
| 407 | } else { |
| 408 | aDom.classList.remove("active"); |
| 409 | } |
| 410 | domSectMainPkg.classList.remove("hidden"); |
| 411 | } |
| 412 | |
| 423 | 413 | list.sort(function(a, b) { |
| 424 | 414 | return operatorCompare(a.name.toLowerCase(), b.name.toLowerCase()); |
| 425 | 415 | }); |
| 426 | 416 | |
| 427 | 417 | if (list.length !== 0) { |
| 428 | | var domListPkgsFragment = createDomListFragment(list.length, '<li><a href="#"></a></li>'); |
| 418 | resizeDomList(domListPkgs, list.length, '<li><a href="#"></a></li>'); |
| 429 | 419 | for (var i = 0; i < list.length; i += 1) { |
| 430 | | var liDom = domListPkgsFragment.children[i]; |
| 420 | var liDom = domListPkgs.children[i]; |
| 431 | 421 | var aDom = liDom.children[0]; |
| 432 | 422 | aDom.textContent = list[i].name; |
| 433 | 423 | aDom.setAttribute('href', navLinkPkg(list[i].pkg)); |
| ... | ... | @@ -438,8 +428,6 @@ |
| 438 | 428 | } |
| 439 | 429 | } |
| 440 | 430 | |
| 441 | | domListPkgs.innerHTML = ""; |
| 442 | | domListPkgs.appendChild(domListPkgsFragment); |
| 443 | 431 | domSectPkgs.classList.remove("hidden"); |
| 444 | 432 | } |
| 445 | 433 | } |
| ... | ... | @@ -480,34 +468,50 @@ |
| 480 | 468 | return navLink(curNav.pkgNames, declNamesCopy); |
| 481 | 469 | } |
| 482 | 470 | |
| 483 | | function createDomListFragment(desiredLen, templateHtml) { |
| 484 | | var domTemplate = document.createElement("template"); |
| 485 | | domTemplate.innerHTML = templateHtml.repeat(desiredLen); |
| 486 | | return domTemplate.content; |
| 471 | function resizeDomListDl(dlDom, desiredLen) { |
| 472 | // add the missing dom entries |
| 473 | var i, ev; |
| 474 | for (i = dlDom.childElementCount / 2; i < desiredLen; i += 1) { |
| 475 | dlDom.insertAdjacentHTML('beforeend', '<dt></dt><dd></dd>'); |
| 476 | } |
| 477 | // remove extra dom entries |
| 478 | while (desiredLen < dlDom.childElementCount / 2) { |
| 479 | dlDom.removeChild(dlDom.lastChild); |
| 480 | dlDom.removeChild(dlDom.lastChild); |
| 481 | } |
| 487 | 482 | } |
| 488 | 483 | |
| 489 | | function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl, thisTypes) { |
| 490 | | if(thisTypes && thisTypes.includes(typeIndex)){ |
| 491 | | return token('@This', tokenKinds.Builtin, wantHtml) + '()'; |
| 484 | function resizeDomList(listDom, desiredLen, templateHtml) { |
| 485 | // add the missing dom entries |
| 486 | var i, ev; |
| 487 | for (i = listDom.childElementCount; i < desiredLen; i += 1) { |
| 488 | listDom.insertAdjacentHTML('beforeend', templateHtml); |
| 489 | } |
| 490 | // remove extra dom entries |
| 491 | while (desiredLen < listDom.childElementCount) { |
| 492 | listDom.removeChild(listDom.lastChild); |
| 492 | 493 | } |
| 494 | } |
| 495 | |
| 496 | function typeIndexName(typeIndex, wantHtml, wantLink, fnDecl, linkFnNameDecl) { |
| 493 | 497 | var typeObj = zigAnalysis.types[typeIndex]; |
| 494 | 498 | var declNameOk = declCanRepresentTypeKind(typeObj.kind); |
| 495 | 499 | if (wantLink) { |
| 496 | 500 | var declIndex = getCanonTypeDecl(typeIndex); |
| 497 | 501 | var declPath = getCanonDeclPath(declIndex); |
| 498 | 502 | if (declPath == null) { |
| 499 | | return typeName(typeObj, wantHtml, wantLink, fnDecl, linkFnNameDecl, thisTypes); |
| 503 | return typeName(typeObj, wantHtml, wantLink, fnDecl, linkFnNameDecl); |
| 500 | 504 | } |
| 501 | 505 | var name = (wantLink && declCanRepresentTypeKind(typeObj.kind)) ? |
| 502 | 506 | declPath.declNames[declPath.declNames.length - 1] : |
| 503 | | typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl, thisTypes); |
| 507 | typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl); |
| 504 | 508 | if (wantLink && wantHtml) { |
| 505 | 509 | return '<a href="' + navLink(declPath.pkgNames, declPath.declNames) + '">' + name + '</a>'; |
| 506 | 510 | } else { |
| 507 | 511 | return name; |
| 508 | 512 | } |
| 509 | 513 | } else { |
| 510 | | return typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl, thisTypes); |
| 514 | return typeName(typeObj, wantHtml, false, fnDecl, linkFnNameDecl); |
| 511 | 515 | } |
| 512 | 516 | } |
| 513 | 517 | |
| ... | ... | @@ -545,57 +549,32 @@ |
| 545 | 549 | return typeIndexName(value, wantHtml, wantLink); |
| 546 | 550 | case typeKinds.Fn: |
| 547 | 551 | var fnObj = zigAnalysis.fns[value]; |
| 548 | | var declPath = fnObj.decl && getCanonDeclPath(fnObj.decl); |
| 549 | | var fnName = declPath ? declPath.declNames.join('.') : '(unknown)'; |
| 550 | | |
| 551 | | if (!wantHtml) { |
| 552 | | return fnName; |
| 553 | | } |
| 554 | | |
| 555 | | var str = '<span class="tok-fn">'; |
| 556 | | if (wantLink && declPath != null) { |
| 557 | | str += '<a href="' + navLink(declPath.pkgNames, declPath.declNames) + '">'; |
| 558 | | str += escapeHtml(fnName); |
| 559 | | str += '</a>'; |
| 560 | | } else { |
| 561 | | str += escapeHtml(fnName); |
| 562 | | } |
| 563 | | str += '</span>'; |
| 564 | | return str; |
| 552 | return typeIndexName(fnObj.type, wantHtml, wantLink); |
| 565 | 553 | case typeKinds.Int: |
| 566 | | return token(value, tokenKinds.Number, wantHtml); |
| 567 | | case typeKinds.Optional: |
| 568 | | if(value === 'null'){ |
| 569 | | return token(value, tokenKinds.Null, wantHtml); |
| 554 | if (wantHtml) { |
| 555 | return '<span class="tok-number">' + value + '</span>'; |
| 570 | 556 | } else { |
| 571 | | console.trace("TODO non-null optional value printing"); |
| 572 | | return "TODO"; |
| 557 | return value + ""; |
| 573 | 558 | } |
| 574 | | case typeKinds.Bool: |
| 575 | | return token(value, tokenKinds.Null, wantHtml); |
| 576 | 559 | default: |
| 577 | 560 | console.trace("TODO implement getValueText for this type:", zigAnalysis.typeKinds[typeObj.kind]); |
| 578 | | return "TODO"; |
| 579 | 561 | } |
| 580 | 562 | } |
| 581 | 563 | |
| 582 | | function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl, thisTypes) { |
| 564 | function typeName(typeObj, wantHtml, wantSubLink, fnDecl, linkFnNameDecl) { |
| 583 | 565 | switch (typeObj.kind) { |
| 584 | 566 | case typeKinds.Array: |
| 585 | 567 | var name = "["; |
| 586 | | name += token(typeObj.len, tokenKinds.Number, wantHtml); |
| 568 | if (wantHtml) { |
| 569 | name += '<span class="tok-number">' + typeObj.len + '</span>'; |
| 570 | } else { |
| 571 | name += typeObj.len; |
| 572 | } |
| 587 | 573 | name += "]"; |
| 588 | | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null, null, thisTypes); |
| 589 | | return name; |
| 590 | | case typeKinds.Vector: |
| 591 | | var name = "Vector("; |
| 592 | | name += token(typeObj.len, tokenKinds.Number, wantHtml); |
| 593 | | name += ", "; |
| 594 | | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null, null, thisTypes); |
| 595 | | name += ")"; |
| 574 | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); |
| 596 | 575 | return name; |
| 597 | 576 | case typeKinds.Optional: |
| 598 | | return "?" + typeIndexName(typeObj.child, wantHtml, wantSubLink, fnDecl, linkFnNameDecl, thisTypes); |
| 577 | return "?" + typeIndexName(typeObj.child, wantHtml, wantSubLink, fnDecl, linkFnNameDecl); |
| 599 | 578 | case typeKinds.Pointer: |
| 600 | 579 | var name = ""; |
| 601 | 580 | switch (typeObj.len) { |
| ... | ... | @@ -614,48 +593,112 @@ |
| 614 | 593 | break; |
| 615 | 594 | } |
| 616 | 595 | if (typeObj['const']) { |
| 617 | | name += token('const', tokenKinds.Keyword, wantHtml) + ' '; |
| 596 | if (wantHtml) { |
| 597 | name += '<span class="tok-kw">const</span> '; |
| 598 | } else { |
| 599 | name += "const "; |
| 600 | } |
| 618 | 601 | } |
| 619 | 602 | if (typeObj['volatile']) { |
| 620 | | name += token('volatile', tokenKinds.Keyword, wantHtml) + ' '; |
| 603 | if (wantHtml) { |
| 604 | name += '<span class="tok-kw">volatile</span> '; |
| 605 | } else { |
| 606 | name += "volatile "; |
| 607 | } |
| 621 | 608 | } |
| 622 | 609 | if (typeObj.align != null) { |
| 623 | | name += token('align', tokenKinds.Keyword, wantHtml) + '('; |
| 624 | | name += token(typeObj.align, tokenKinds.Number, wantHtml); |
| 625 | | |
| 610 | if (wantHtml) { |
| 611 | name += '<span class="tok-kw">align</span>('; |
| 612 | } else { |
| 613 | name += "align("; |
| 614 | } |
| 615 | if (wantHtml) { |
| 616 | name += '<span class="tok-number">' + typeObj.align + '</span>'; |
| 617 | } else { |
| 618 | name += typeObj.align; |
| 619 | } |
| 626 | 620 | if (typeObj.hostIntBytes != null) { |
| 627 | 621 | name += ":"; |
| 628 | | name += token(typeObj.bitOffsetInHost, tokenKinds.Number, wantHtml); |
| 622 | if (wantHtml) { |
| 623 | name += '<span class="tok-number">' + typeObj.bitOffsetInHost + '</span>'; |
| 624 | } else { |
| 625 | name += typeObj.bitOffsetInHost; |
| 626 | } |
| 629 | 627 | name += ":"; |
| 630 | | name += token(typeObj.hostIntBytes, tokenKinds.Number, wantHtml); |
| 628 | if (wantHtml) { |
| 629 | name += '<span class="tok-number">' + typeObj.hostIntBytes + '</span>'; |
| 630 | } else { |
| 631 | name += typeObj.hostIntBytes; |
| 632 | } |
| 631 | 633 | } |
| 632 | 634 | name += ") "; |
| 633 | 635 | } |
| 634 | | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null, null, thisTypes); |
| 636 | name += typeIndexName(typeObj.elem, wantHtml, wantSubLink, null); |
| 635 | 637 | return name; |
| 636 | 638 | case typeKinds.Float: |
| 637 | | return token('f' + typeObj.bits, tokenKinds.Type, wantHtml); |
| 639 | if (wantHtml) { |
| 640 | return '<span class="tok-type">f' + typeObj.bits + '</span>'; |
| 641 | } else { |
| 642 | return "f" + typeObj.bits; |
| 643 | } |
| 638 | 644 | case typeKinds.Int: |
| 639 | | var signed = (typeObj.i != null) ? 'i' : 'u'; |
| 640 | | var bits = typeObj[signed]; |
| 641 | | return token(signed + bits, tokenKinds.Type, wantHtml); |
| 645 | return '<span class="tok-type">' + typeObj.name + '</span>'; |
| 646 | // var signed = (typeObj.i != null) ? 'i' : 'u'; |
| 647 | // var bits = typeObj[signed]; |
| 648 | // if (wantHtml) { |
| 649 | // return '<span class="tok-type">' + signed + bits + '</span>'; |
| 650 | // } else { |
| 651 | // return signed + bits; |
| 652 | // } |
| 642 | 653 | case typeKinds.ComptimeInt: |
| 643 | | return token('comptime_int', tokenKinds.Type, wantHtml); |
| 654 | if (wantHtml) { |
| 655 | return '<span class="tok-type">comptime_int</span>'; |
| 656 | } else { |
| 657 | return "comptime_int"; |
| 658 | } |
| 644 | 659 | case typeKinds.ComptimeFloat: |
| 645 | | return token('comptime_float', tokenKinds.Type, wantHtml); |
| 660 | if (wantHtml) { |
| 661 | return '<span class="tok-type">comptime_float</span>'; |
| 662 | } else { |
| 663 | return "comptime_float"; |
| 664 | } |
| 646 | 665 | case typeKinds.Type: |
| 647 | | return token('type', tokenKinds.Type, wantHtml); |
| 666 | if (wantHtml) { |
| 667 | return '<span class="tok-type">type</span>'; |
| 668 | } else { |
| 669 | return "type"; |
| 670 | } |
| 648 | 671 | case typeKinds.Bool: |
| 649 | | return token('bool', tokenKinds.Type, wantHtml); |
| 672 | if (wantHtml) { |
| 673 | return '<span class="tok-type">bool</span>'; |
| 674 | } else { |
| 675 | return "bool"; |
| 676 | } |
| 650 | 677 | case typeKinds.Void: |
| 651 | | return token('void', tokenKinds.Type, wantHtml); |
| 678 | if (wantHtml) { |
| 679 | return '<span class="tok-type">void</span>'; |
| 680 | } else { |
| 681 | return "void"; |
| 682 | } |
| 652 | 683 | case typeKinds.EnumLiteral: |
| 653 | | return token('(enum literal)', tokenKinds.Type, wantHtml); |
| 684 | if (wantHtml) { |
| 685 | return '<span class="tok-type">(enum literal)</span>'; |
| 686 | } else { |
| 687 | return "(enum literal)"; |
| 688 | } |
| 654 | 689 | case typeKinds.NoReturn: |
| 655 | | return token('noreturn', tokenKinds.Type, wantHtml); |
| 690 | if (wantHtml) { |
| 691 | return '<span class="tok-type">noreturn</span>'; |
| 692 | } else { |
| 693 | return "noreturn"; |
| 694 | } |
| 656 | 695 | case typeKinds.ErrorSet: |
| 657 | 696 | if (typeObj.errors == null) { |
| 658 | | return token('anyerror', tokenKinds.Type, wantHtml); |
| 697 | if (wantHtml) { |
| 698 | return '<span class="tok-type">anyerror</span>'; |
| 699 | } else { |
| 700 | return "anyerror"; |
| 701 | } |
| 659 | 702 | } else { |
| 660 | 703 | if (wantHtml) { |
| 661 | 704 | return escapeHtml(typeObj.name); |
| ... | ... | @@ -665,12 +708,12 @@ |
| 665 | 708 | } |
| 666 | 709 | case typeKinds.ErrorUnion: |
| 667 | 710 | var errSetTypeObj = zigAnalysis.types[typeObj.err]; |
| 668 | | var payloadHtml = typeIndexName(typeObj.payload, wantHtml, wantSubLink, null, null, thisTypes); |
| 711 | var payloadHtml = typeIndexName(typeObj.payload, wantHtml, wantSubLink, null); |
| 669 | 712 | if (fnDecl != null && errSetTypeObj.fn === fnDecl.value) { |
| 670 | 713 | // function index parameter supplied and this is the inferred error set of it |
| 671 | 714 | return "!" + payloadHtml; |
| 672 | 715 | } else { |
| 673 | | return typeIndexName(typeObj.err, wantHtml, wantSubLink, null, null, thisTypes) + "!" + payloadHtml; |
| 716 | return typeIndexName(typeObj.err, wantHtml, wantSubLink, null) + "!" + payloadHtml; |
| 674 | 717 | } |
| 675 | 718 | case typeKinds.Fn: |
| 676 | 719 | var payloadHtml = ""; |
| ... | ... | @@ -716,11 +759,19 @@ |
| 716 | 759 | } |
| 717 | 760 | |
| 718 | 761 | if (paramNode.noalias) { |
| 719 | | payloadHtml += token('noalias', tokenKinds.Keyword, wantHtml) + ' '; |
| 762 | if (wantHtml) { |
| 763 | payloadHtml += '<span class="tok-kw">noalias</span> '; |
| 764 | } else { |
| 765 | payloadHtml += 'noalias '; |
| 766 | } |
| 720 | 767 | } |
| 721 | 768 | |
| 722 | 769 | if (paramNode.comptime) { |
| 723 | | payloadHtml += token('comptime', tokenKinds.Keyword, wantHtml) + ' '; |
| 770 | if (wantHtml) { |
| 771 | payloadHtml += '<span class="tok-kw">comptime</span> '; |
| 772 | } else { |
| 773 | payloadHtml += 'comptime '; |
| 774 | } |
| 724 | 775 | } |
| 725 | 776 | |
| 726 | 777 | var paramName = paramNode.name; |
| ... | ... | @@ -735,30 +786,24 @@ |
| 735 | 786 | if (isVarArgs && i === typeObj.args.length - 1) { |
| 736 | 787 | payloadHtml += '...'; |
| 737 | 788 | } else if (argTypeIndex != null) { |
| 738 | | payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink, null, null, thisTypes); |
| 789 | payloadHtml += typeIndexName(argTypeIndex, wantHtml, wantSubLink); |
| 790 | } else if (wantHtml) { |
| 791 | payloadHtml += '<span class="tok-kw">var</span>'; |
| 739 | 792 | } else { |
| 740 | | payloadHtml += token('anytype', tokenKinds.Keyword, wantHtml); |
| 793 | payloadHtml += 'var'; |
| 741 | 794 | } |
| 742 | 795 | } |
| 743 | 796 | } |
| 744 | 797 | |
| 745 | 798 | payloadHtml += ') '; |
| 746 | 799 | if (typeObj.ret != null) { |
| 747 | | payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl, null, thisTypes); |
| 800 | payloadHtml += typeIndexName(typeObj.ret, wantHtml, wantSubLink, fnDecl); |
| 801 | } else if (wantHtml) { |
| 802 | payloadHtml += '<span class="tok-kw">var</span>'; |
| 748 | 803 | } else { |
| 749 | | payloadHtml += token('anytype', tokenKinds.Keyword, wantHtml); |
| 804 | payloadHtml += 'var'; |
| 750 | 805 | } |
| 751 | 806 | return payloadHtml; |
| 752 | | case typeKinds.Frame: |
| 753 | | var fnObj = zigAnalysis.fns[typeObj.fn]; |
| 754 | | return '@Frame(' + getValueText(fnObj.type, typeObj.fn, wantHtml, wantSubLink) + ')'; |
| 755 | | case typeKinds.AnyFrame: |
| 756 | | var name = token('anyframe', tokenKinds.Keyword, wantHtml); |
| 757 | | if (typeObj.result) { |
| 758 | | name += "->"; |
| 759 | | name += typeIndexName(typeObj.result, wantHtml, wantSubLink, null, null, thisTypes); |
| 760 | | } |
| 761 | | return name; |
| 762 | 807 | default: |
| 763 | 808 | if (wantHtml) { |
| 764 | 809 | return escapeHtml(typeObj.name); |
| ... | ... | @@ -801,10 +846,10 @@ |
| 801 | 846 | return operatorCompare(a.err.name.toLowerCase(), b.err.name.toLowerCase()); |
| 802 | 847 | }); |
| 803 | 848 | |
| 804 | | var domListFnErrorsFragment = createDomListFragment(errorList.length, "<dt></dt><dd></dd>"); |
| 849 | resizeDomListDl(domListFnErrors, errorList.length); |
| 805 | 850 | for (var i = 0; i < errorList.length; i += 1) { |
| 806 | | var nameTdDom = domListFnErrorsFragment.children[i * 2 + 0]; |
| 807 | | var descTdDom = domListFnErrorsFragment.children[i * 2 + 1]; |
| 851 | var nameTdDom = domListFnErrors.children[i * 2 + 0]; |
| 852 | var descTdDom = domListFnErrors.children[i * 2 + 1]; |
| 808 | 853 | nameTdDom.textContent = errorList[i].err.name; |
| 809 | 854 | var docs = errorList[i].docs; |
| 810 | 855 | if (docs != null) { |
| ... | ... | @@ -813,8 +858,6 @@ |
| 813 | 858 | descTdDom.textContent = ""; |
| 814 | 859 | } |
| 815 | 860 | } |
| 816 | | domListFnErrors.innerHTML = ""; |
| 817 | | domListFnErrors.appendChild(domListFnErrorsFragment); |
| 818 | 861 | domTableFnErrors.classList.remove("hidden"); |
| 819 | 862 | } |
| 820 | 863 | domSectFnErrors.classList.remove("hidden"); |
| ... | ... | @@ -941,7 +984,7 @@ |
| 941 | 984 | domFnProto.classList.remove("hidden"); |
| 942 | 985 | } |
| 943 | 986 | |
| 944 | | function renderContainer(container, thisTypes) { |
| 987 | function renderContainer(container) { |
| 945 | 988 | var typesList = []; |
| 946 | 989 | var namespacesList = []; |
| 947 | 990 | var errSetsList = []; |
| ... | ... | @@ -994,56 +1037,50 @@ |
| 994 | 1037 | } |
| 995 | 1038 | |
| 996 | 1039 | if (typesList.length !== 0) { |
| 997 | | var domListTypesFragment = createDomListFragment(typesList.length, '<li><a href="#"></a></li>'); |
| 1040 | resizeDomList(domListTypes, typesList.length, '<li><a href="#"></a></li>'); |
| 998 | 1041 | for (var i = 0; i < typesList.length; i += 1) { |
| 999 | | var liDom = domListTypesFragment.children[i]; |
| 1042 | var liDom = domListTypes.children[i]; |
| 1000 | 1043 | var aDom = liDom.children[0]; |
| 1001 | 1044 | var decl = typesList[i]; |
| 1002 | 1045 | aDom.textContent = decl.name; |
| 1003 | 1046 | aDom.setAttribute('href', navLinkDecl(decl.name)); |
| 1004 | 1047 | } |
| 1005 | | domListTypes.innerHTML = ""; |
| 1006 | | domListTypes.appendChild(domListTypesFragment); |
| 1007 | 1048 | domSectTypes.classList.remove("hidden"); |
| 1008 | 1049 | } |
| 1009 | 1050 | if (namespacesList.length !== 0) { |
| 1010 | | var domListNamespacesFragment = createDomListFragment(namespacesList.length, '<li><a href="#"></a></li>'); |
| 1051 | resizeDomList(domListNamespaces, namespacesList.length, '<li><a href="#"></a></li>'); |
| 1011 | 1052 | for (var i = 0; i < namespacesList.length; i += 1) { |
| 1012 | | var liDom = domListNamespacesFragment.children[i]; |
| 1053 | var liDom = domListNamespaces.children[i]; |
| 1013 | 1054 | var aDom = liDom.children[0]; |
| 1014 | 1055 | var decl = namespacesList[i]; |
| 1015 | 1056 | aDom.textContent = decl.name; |
| 1016 | 1057 | aDom.setAttribute('href', navLinkDecl(decl.name)); |
| 1017 | 1058 | } |
| 1018 | | domListNamespaces.innerHTML = ""; |
| 1019 | | domListNamespaces.appendChild(domListNamespacesFragment); |
| 1020 | 1059 | domSectNamespaces.classList.remove("hidden"); |
| 1021 | 1060 | } |
| 1022 | 1061 | |
| 1023 | 1062 | if (errSetsList.length !== 0) { |
| 1024 | | var domListErrSetsFragment = createDomListFragment(errSetsList.length, '<li><a href="#"></a></li>'); |
| 1063 | resizeDomList(domListErrSets, errSetsList.length, '<li><a href="#"></a></li>'); |
| 1025 | 1064 | for (var i = 0; i < errSetsList.length; i += 1) { |
| 1026 | | var liDom = domListErrSetsFragment.children[i]; |
| 1065 | var liDom = domListErrSets.children[i]; |
| 1027 | 1066 | var aDom = liDom.children[0]; |
| 1028 | 1067 | var decl = errSetsList[i]; |
| 1029 | 1068 | aDom.textContent = decl.name; |
| 1030 | 1069 | aDom.setAttribute('href', navLinkDecl(decl.name)); |
| 1031 | 1070 | } |
| 1032 | | domListErrSets.innerHTML = ""; |
| 1033 | | domListErrSets.appendChild(domListErrSetsFragment); |
| 1034 | 1071 | domSectErrSets.classList.remove("hidden"); |
| 1035 | 1072 | } |
| 1036 | 1073 | |
| 1037 | 1074 | if (fnsList.length !== 0) { |
| 1038 | | var domListFnsFragment = createDomListFragment(fnsList.length, '<tr><td></td><td></td></tr>'); |
| 1075 | resizeDomList(domListFns, fnsList.length, '<tr><td></td><td></td></tr>'); |
| 1039 | 1076 | for (var i = 0; i < fnsList.length; i += 1) { |
| 1040 | 1077 | var decl = fnsList[i]; |
| 1041 | | var trDom = domListFnsFragment.children[i]; |
| 1078 | var trDom = domListFns.children[i]; |
| 1042 | 1079 | |
| 1043 | 1080 | var tdFnCode = trDom.children[0]; |
| 1044 | 1081 | var tdDesc = trDom.children[1]; |
| 1045 | 1082 | |
| 1046 | | tdFnCode.innerHTML = typeIndexName(decl.type, true, true, decl, navLinkDecl(decl.name), thisTypes); |
| 1083 | tdFnCode.innerHTML = typeIndexName(decl.type, true, true, decl, navLinkDecl(decl.name)); |
| 1047 | 1084 | |
| 1048 | 1085 | var docs = zigAnalysis.astNodes[decl.src].docs; |
| 1049 | 1086 | if (docs != null) { |
| ... | ... | @@ -1052,19 +1089,17 @@ |
| 1052 | 1089 | tdDesc.textContent = ""; |
| 1053 | 1090 | } |
| 1054 | 1091 | } |
| 1055 | | domListFns.innerHTML = ""; |
| 1056 | | domListFns.appendChild(domListFnsFragment); |
| 1057 | 1092 | domSectFns.classList.remove("hidden"); |
| 1058 | 1093 | } |
| 1059 | 1094 | |
| 1060 | 1095 | if (container.fields != null && container.fields.length !== 0) { |
| 1061 | | var domListFieldsFragment = createDomListFragment(container.fields.length, '<div></div>'); |
| 1096 | resizeDomList(domListFields, container.fields.length, '<div></div>'); |
| 1062 | 1097 | |
| 1063 | 1098 | var containerNode = zigAnalysis.astNodes[container.src]; |
| 1064 | 1099 | for (var i = 0; i < container.fields.length; i += 1) { |
| 1065 | 1100 | var field = container.fields[i]; |
| 1066 | 1101 | var fieldNode = zigAnalysis.astNodes[containerNode.fields[i]]; |
| 1067 | | var divDom = domListFieldsFragment.children[i]; |
| 1102 | var divDom = domListFields.children[i]; |
| 1068 | 1103 | |
| 1069 | 1104 | var html = '<div class="mobile-scroll-container"><pre class="scroll-item">' + escapeHtml(fieldNode.name); |
| 1070 | 1105 | |
| ... | ... | @@ -1073,7 +1108,16 @@ |
| 1073 | 1108 | } else { |
| 1074 | 1109 | html += ": "; |
| 1075 | 1110 | if (typeof(field) === 'object') { |
| 1076 | | html += '<span class="tok-kw">var</span>'; |
| 1111 | if (field.failure === true) { |
| 1112 | html += '<span class="tok-kw" style="color:red;">#FAILURE#</span>'; |
| 1113 | } else if ("decl_ref" in field) { |
| 1114 | var name = zigAnalysis.decls[field.decl_ref].name; |
| 1115 | html += '<a href="'+navLinkDecl(name)+'">'; |
| 1116 | html += '<span class="tok-kw" style="color:lightblue;">'+ name +'</span>'; |
| 1117 | html += '</a>'; |
| 1118 | } else { |
| 1119 | html += '<span class="tok-kw">var</span>'; |
| 1120 | } |
| 1077 | 1121 | } else { |
| 1078 | 1122 | html += typeIndexName(field, true, true); |
| 1079 | 1123 | } |
| ... | ... | @@ -1087,17 +1131,15 @@ |
| 1087 | 1131 | } |
| 1088 | 1132 | divDom.innerHTML = html; |
| 1089 | 1133 | } |
| 1090 | | domListFields.innerHTML = ""; |
| 1091 | | domListFields.appendChild(domListFieldsFragment); |
| 1092 | 1134 | domSectFields.classList.remove("hidden"); |
| 1093 | 1135 | } |
| 1094 | 1136 | |
| 1095 | 1137 | if (varsList.length !== 0) { |
| 1096 | | var domListGlobalVarsFragment = createDomListFragment(varsList.length, |
| 1138 | resizeDomList(domListGlobalVars, varsList.length, |
| 1097 | 1139 | '<tr><td><a href="#"></a></td><td></td><td></td></tr>'); |
| 1098 | 1140 | for (var i = 0; i < varsList.length; i += 1) { |
| 1099 | 1141 | var decl = varsList[i]; |
| 1100 | | var trDom = domListGlobalVarsFragment.children[i]; |
| 1142 | var trDom = domListGlobalVars.children[i]; |
| 1101 | 1143 | |
| 1102 | 1144 | var tdName = trDom.children[0]; |
| 1103 | 1145 | var tdNameA = tdName.children[0]; |
| ... | ... | @@ -1116,17 +1158,15 @@ |
| 1116 | 1158 | tdDesc.textContent = ""; |
| 1117 | 1159 | } |
| 1118 | 1160 | } |
| 1119 | | domListGlobalVars.innerHTML = ""; |
| 1120 | | domListGlobalVars.appendChild(domListGlobalVarsFragment); |
| 1121 | 1161 | domSectGlobalVars.classList.remove("hidden"); |
| 1122 | 1162 | } |
| 1123 | 1163 | |
| 1124 | 1164 | if (valsList.length !== 0) { |
| 1125 | | var domListValuesFragment = createDomListFragment(valsList.length, |
| 1165 | resizeDomList(domListValues, valsList.length, |
| 1126 | 1166 | '<tr><td><a href="#"></a></td><td></td><td></td></tr>'); |
| 1127 | 1167 | for (var i = 0; i < valsList.length; i += 1) { |
| 1128 | 1168 | var decl = valsList[i]; |
| 1129 | | var trDom = domListValuesFragment.children[i]; |
| 1169 | var trDom = domListValues.children[i]; |
| 1130 | 1170 | |
| 1131 | 1171 | var tdName = trDom.children[0]; |
| 1132 | 1172 | var tdNameA = tdName.children[0]; |
| ... | ... | @@ -1145,8 +1185,6 @@ |
| 1145 | 1185 | tdDesc.textContent = ""; |
| 1146 | 1186 | } |
| 1147 | 1187 | } |
| 1148 | | domListValues.innerHTML = ""; |
| 1149 | | domListValues.appendChild(domListValuesFragment); |
| 1150 | 1188 | domSectValues.classList.remove("hidden"); |
| 1151 | 1189 | } |
| 1152 | 1190 | } |
| ... | ... | @@ -1484,22 +1522,6 @@ |
| 1484 | 1522 | } |
| 1485 | 1523 | ]; |
| 1486 | 1524 | |
| 1487 | | // Links, images and inner links don't use the same marker to wrap their content. |
| 1488 | | const linksFormat = [ |
| 1489 | | { |
| 1490 | | prefix: "[", |
| 1491 | | regex: /\[([^\]]*)\]\(([^\)]*)\)/, |
| 1492 | | urlIndex: 2, // Index in the match that contains the link URL |
| 1493 | | textIndex: 1 // Index in the match that contains the link text |
| 1494 | | }, |
| 1495 | | { |
| 1496 | | prefix: "h", |
| 1497 | | regex: /http[s]?:\/\/[^\s]+/, |
| 1498 | | urlIndex: 0, |
| 1499 | | textIndex: 0 |
| 1500 | | } |
| 1501 | | ]; |
| 1502 | | |
| 1503 | 1525 | const stack = []; |
| 1504 | 1526 | |
| 1505 | 1527 | var innerHTML = ""; |
| ... | ... | @@ -1550,29 +1572,6 @@ |
| 1550 | 1572 | currentRun += innerText[i]; |
| 1551 | 1573 | in_code = true; |
| 1552 | 1574 | } else { |
| 1553 | | var foundMatches = false; |
| 1554 | | |
| 1555 | | for (var j = 0; j < linksFormat.length; j++) { |
| 1556 | | const linkFmt = linksFormat[j]; |
| 1557 | | |
| 1558 | | if (linkFmt.prefix == innerText[i]) { |
| 1559 | | var remaining = innerText.substring(i); |
| 1560 | | var matches = remaining.match(linkFmt.regex); |
| 1561 | | |
| 1562 | | if (matches) { |
| 1563 | | flushRun(); |
| 1564 | | innerHTML += ' <a href="' + matches[linkFmt.urlIndex] + '">' + matches[linkFmt.textIndex] + '</a> '; |
| 1565 | | i += matches[0].length; // Skip the fragment we just consumed |
| 1566 | | foundMatches = true; |
| 1567 | | break; |
| 1568 | | } |
| 1569 | | } |
| 1570 | | } |
| 1571 | | |
| 1572 | | if (foundMatches) { |
| 1573 | | continue; |
| 1574 | | } |
| 1575 | | |
| 1576 | 1575 | var any = false; |
| 1577 | 1576 | for (var idx = (stack.length > 0 ? -1 : 0); idx < formats.length; idx++) { |
| 1578 | 1577 | const fmt = idx >= 0 ? formats[idx] : stack[stack.length - 1]; |
| ... | ... | @@ -1793,7 +1792,7 @@ |
| 1793 | 1792 | if (ev.ctrlKey) name = "Ctrl+" + name; |
| 1794 | 1793 | return name; |
| 1795 | 1794 | } |
| 1796 | | |
| 1795 | |
| 1797 | 1796 | function onWindowKeyDown(ev) { |
| 1798 | 1797 | switch (getKeyString(ev)) { |
| 1799 | 1798 | case "Esc": |
| ... | ... | @@ -1825,13 +1824,6 @@ |
| 1825 | 1824 | domHelpModal.focus(); |
| 1826 | 1825 | } |
| 1827 | 1826 | |
| 1828 | | function onClickSearchShowAllResults(ev) { |
| 1829 | | ev.preventDefault(); |
| 1830 | | ev.stopPropagation(); |
| 1831 | | searchTrimResults = false; |
| 1832 | | onHashChange(); |
| 1833 | | } |
| 1834 | | |
| 1835 | 1827 | function clearAsyncSearch() { |
| 1836 | 1828 | if (searchTimer != null) { |
| 1837 | 1829 | clearTimeout(searchTimer); |
| ... | ... | @@ -1841,21 +1833,14 @@ |
| 1841 | 1833 | |
| 1842 | 1834 | function startAsyncSearch() { |
| 1843 | 1835 | clearAsyncSearch(); |
| 1844 | | searchTrimResults = true; |
| 1845 | | searchTimer = setTimeout(startSearch, 10); |
| 1836 | searchTimer = setTimeout(startSearch, 100); |
| 1846 | 1837 | } |
| 1847 | 1838 | function startSearch() { |
| 1848 | 1839 | clearAsyncSearch(); |
| 1849 | 1840 | var oldHash = location.hash; |
| 1850 | 1841 | var parts = oldHash.split("?"); |
| 1851 | 1842 | var newPart2 = (domSearch.value === "") ? "" : ("?" + domSearch.value); |
| 1852 | | var newHash = (oldHash === "" ? "#" : parts[0]) + newPart2; |
| 1853 | | // create a history entry only once per search |
| 1854 | | if (parts.length === 1) { |
| 1855 | | location.assign(newHash); |
| 1856 | | } else { |
| 1857 | | location.replace(newHash); |
| 1858 | | } |
| 1843 | location.hash = (parts.length === 1) ? (oldHash + newPart2) : (parts[0] + newPart2); |
| 1859 | 1844 | } |
| 1860 | 1845 | function getSearchTerms() { |
| 1861 | 1846 | var list = curNavSearch.trim().split(/[ \r\n\t]+/); |
| ... | ... | @@ -1920,38 +1905,25 @@ |
| 1920 | 1905 | } |
| 1921 | 1906 | |
| 1922 | 1907 | if (matchedItems.length !== 0) { |
| 1908 | resizeDomList(domListSearchResults, matchedItems.length, '<li><a href="#"></a></li>'); |
| 1909 | |
| 1923 | 1910 | matchedItems.sort(function(a, b) { |
| 1924 | 1911 | var cmp = operatorCompare(b.points, a.points); |
| 1925 | 1912 | if (cmp != 0) return cmp; |
| 1926 | 1913 | return operatorCompare(a.decl.name, b.decl.name); |
| 1927 | 1914 | }); |
| 1928 | 1915 | |
| 1929 | | var searchTrimmed = false |
| 1930 | | var searchTrimResultsMaxItems = 200 |
| 1931 | | if (searchTrimResults && matchedItems.length > searchTrimResultsMaxItems) { |
| 1932 | | matchedItems = matchedItems.slice(0, searchTrimResultsMaxItems) |
| 1933 | | searchTrimmed = true |
| 1934 | | } |
| 1935 | | |
| 1936 | | var domListSearchResultsFragment = createDomListFragment(matchedItems.length, '<li><a href="#"></a></li>'); |
| 1937 | 1916 | for (var i = 0; i < matchedItems.length; i += 1) { |
| 1938 | | var liDom = domListSearchResultsFragment.children[i]; |
| 1917 | var liDom = domListSearchResults.children[i]; |
| 1939 | 1918 | var aDom = liDom.children[0]; |
| 1940 | 1919 | var match = matchedItems[i]; |
| 1941 | 1920 | var lastPkgName = match.path.pkgNames[match.path.pkgNames.length - 1]; |
| 1942 | 1921 | aDom.textContent = lastPkgName + "." + match.path.declNames.join('.'); |
| 1943 | 1922 | aDom.setAttribute('href', navLink(match.path.pkgNames, match.path.declNames)); |
| 1944 | 1923 | } |
| 1924 | renderSearchCursor(); |
| 1945 | 1925 | |
| 1946 | | domListSearchResults.innerHTML = ""; |
| 1947 | | domListSearchResults.appendChild(domListSearchResultsFragment); |
| 1948 | 1926 | domSectSearchResults.classList.remove("hidden"); |
| 1949 | | |
| 1950 | | if (searchTrimmed) { |
| 1951 | | domSectSearchAllResultsLink.classList.remove("hidden"); |
| 1952 | | } |
| 1953 | | |
| 1954 | | renderSearchCursor(); |
| 1955 | 1927 | } else { |
| 1956 | 1928 | domSectSearchNoResults.classList.remove("hidden"); |
| 1957 | 1929 | } |
| ... | ... | @@ -2013,12 +1985,4 @@ |
| 2013 | 1985 | return key; |
| 2014 | 1986 | } |
| 2015 | 1987 | } |
| 2016 | | |
| 2017 | | function token(value, tokenClass, wantHtml){ |
| 2018 | | if(wantHtml){ |
| 2019 | | return '<span class="' + tokenClass + '">' + value + '</span>'; |
| 2020 | | } else { |
| 2021 | | return value + ''; |
| 2022 | | } |
| 2023 | | } |
| 2024 | 1988 | })(); |