| author | |
| committer | |
| log | 28ad74e8a6ed3484d632a6a615f5d0935c03676a |
| tree | c78e1a5a08e24cc50b9e652d01f0a4e9e1fe1890 |
| parent | 116a99d3cef91046bf132b6fcecbd2708f912896 |
4 files changed, 88 insertions(+), 46 deletions(-)
lib/docs/index.html+82| ... | @@ -680,7 +680,88 @@ | ... | @@ -680,7 +680,88 @@ |
| 680 | .banner a { | 680 | .banner a { |
| 681 | color: black; | 681 | color: black; |
| 682 | text-decoration: underline; | 682 | text-decoration: underline; |
| 683 | } | ||
| 684 | |||
| 685 | </style> | ||
| 686 | |||
| 687 | <style> | ||
| 688 | pre{ | ||
| 689 | --zig-keyword: #333; | ||
| 690 | --zig-identifier: 'black'; | ||
| 691 | } | ||
| 692 | |||
| 693 | @media (prefers-color-scheme: dark) { | ||
| 694 | pre { | ||
| 695 | --zig-keyword: 'white'; | ||
| 696 | --zig-identifier: 'purple'; | ||
| 697 | } | ||
| 698 | } | ||
| 699 | |||
| 700 | .zig_keyword_addrspace, | ||
| 701 | .zig_keyword_align, | ||
| 702 | .zig_keyword_allowzero, | ||
| 703 | .zig_keyword_and, | ||
| 704 | .zig_keyword_anyframe, | ||
| 705 | .zig_keyword_anytype, | ||
| 706 | .zig_keyword_asm, | ||
| 707 | .zig_keyword_async, | ||
| 708 | .zig_keyword_await, | ||
| 709 | .zig_keyword_break, | ||
| 710 | .zig_keyword_callconv, | ||
| 711 | .zig_keyword_catch, | ||
| 712 | .zig_keyword_comptime, | ||
| 713 | .zig_keyword_const, | ||
| 714 | .zig_keyword_continue, | ||
| 715 | .zig_keyword_defer, | ||
| 716 | .zig_keyword_else, | ||
| 717 | .zig_keyword_enum, | ||
| 718 | .zig_keyword_errdefer, | ||
| 719 | .zig_keyword_error, | ||
| 720 | .zig_keyword_export, | ||
| 721 | .zig_keyword_extern, | ||
| 722 | .zig_keyword_fn, | ||
| 723 | .zig_keyword_for, | ||
| 724 | .zig_keyword_if, | ||
| 725 | .zig_keyword_inline, | ||
| 726 | .zig_keyword_noalias, | ||
| 727 | .zig_keyword_noinline, | ||
| 728 | .zig_keyword_nosuspend, | ||
| 729 | .zig_keyword_opaque, | ||
| 730 | .zig_keyword_or, | ||
| 731 | .zig_keyword_orelse, | ||
| 732 | .zig_keyword_packed, | ||
| 733 | .zig_keyword_pub, | ||
| 734 | .zig_keyword_resume, | ||
| 735 | .zig_keyword_return, | ||
| 736 | .zig_keyword_linksection, | ||
| 737 | .zig_keyword_struct, | ||
| 738 | .zig_keyword_suspend, | ||
| 739 | .zig_keyword_switch, | ||
| 740 | .zig_keyword_test, | ||
| 741 | .zig_keyword_threadlocal, | ||
| 742 | .zig_keyword_try, | ||
| 743 | .zig_keyword_union, | ||
| 744 | .zig_keyword_unreachable, | ||
| 745 | .zig_keyword_usingnamespace, | ||
| 746 | .zig_keyword_var, | ||
| 747 | .zig_keyword_volatile, | ||
| 748 | .zig_keyword_while { | ||
| 749 | color: var(--zig-keyword); | ||
| 750 | font-weight: bold; | ||
| 751 | } | ||
| 752 | |||
| 753 | .zig_doc_comment, .zig_container_doc_comment { | ||
| 754 | color: #545454; | ||
| 755 | font-style: italic; | ||
| 756 | } | ||
| 757 | |||
| 758 | .zig_builtin { | ||
| 759 | color: #005C7A; | ||
| 683 | } | 760 | } |
| 761 | |||
| 762 | .zig_string_literal { | ||
| 763 | color: #d14; | ||
| 764 | } | ||
| 684 | </style> | 765 | </style> |
| 685 | </head> | 766 | </head> |
| 686 | <body class="canvas"> | 767 | <body class="canvas"> |
| ... | @@ -906,6 +987,7 @@ | ... | @@ -906,6 +987,7 @@ |
| 906 | </div> | 987 | </div> |
| 907 | <script src="data.js"></script> | 988 | <script src="data.js"></script> |
| 908 | <script src="commonmark.js"></script> | 989 | <script src="commonmark.js"></script> |
| 990 | <script src="ziglexer.js"></script> | ||
| 909 | <script src="main.js"></script> | 991 | <script src="main.js"></script> |
| 910 | </body> | 992 | </body> |
| 911 | </html> | 993 | </html> |
lib/docs/main.js+2-43| ... | @@ -660,25 +660,7 @@ const NAV_MODES = { | ... | @@ -660,25 +660,7 @@ const NAV_MODES = { |
| 660 | if (!decl.decltest) return; | 660 | if (!decl.decltest) return; |
| 661 | const astNode = getAstNode(decl.decltest); | 661 | const astNode = getAstNode(decl.decltest); |
| 662 | domSectDocTests.classList.remove("hidden"); | 662 | domSectDocTests.classList.remove("hidden"); |
| 663 | domDocTestsCode.innerHTML = renderZigSource(astNode.code); | 663 | domDocTestsCode.innerHTML = generate_html_for_src(astNode.code); |
| 664 | } | ||
| 665 | |||
| 666 | function renderZigSource(code) { | ||
| 667 | let lines = code.split("\n"); | ||
| 668 | let result = ""; | ||
| 669 | let indent_level = 0; | ||
| 670 | for (let i = 0; i < lines.length; i += 1) { | ||
| 671 | let line = lines[i].trim(); | ||
| 672 | if (line[0] == "}") indent_level -= 1; | ||
| 673 | for (let j = 0; j < indent_level; j += 1) { | ||
| 674 | result += " "; | ||
| 675 | } | ||
| 676 | if (line.startsWith("\\\\")) result += " " | ||
| 677 | result += line; | ||
| 678 | if (i != lines.length - 1) result += "\n"; | ||
| 679 | if (line[line.length - 1] == "{") indent_level += 1; | ||
| 680 | } | ||
| 681 | return result; | ||
| 682 | } | 664 | } |
| 683 | 665 | ||
| 684 | function renderUnknownDecl(decl) { | 666 | function renderUnknownDecl(decl) { |
| ... | @@ -1774,7 +1756,7 @@ const NAV_MODES = { | ... | @@ -1774,7 +1756,7 @@ const NAV_MODES = { |
| 1774 | return payloadHtml + "}"; | 1756 | return payloadHtml + "}"; |
| 1775 | } | 1757 | } |
| 1776 | case "comptimeExpr": { | 1758 | case "comptimeExpr": { |
| 1777 | return renderZigSource(zigAnalysis.comptimeExprs[expr.comptimeExpr].code); | 1759 | return generate_html_for_src(zigAnalysis.comptimeExprs[expr.comptimeExpr].code); |
| 1778 | } | 1760 | } |
| 1779 | case "call": { | 1761 | case "call": { |
| 1780 | let call = zigAnalysis.calls[expr.call]; | 1762 | let call = zigAnalysis.calls[expr.call]; |
| ... | @@ -5016,26 +4998,3 @@ function RadixTree() { | ... | @@ -5016,26 +4998,3 @@ function RadixTree() { |
| 5016 | } | 4998 | } |
| 5017 | } | 4999 | } |
| 5018 | 5000 | ||
| 5019 | // RADIX TREE: | ||
| 5020 | |||
| 5021 | // apple | ||
| 5022 | // appliance | ||
| 5023 | |||
| 5024 | // "appl" => [ | ||
| 5025 | // 'e', => $ | ||
| 5026 | // 'i' => "ance" => $ | ||
| 5027 | // ] | ||
| 5028 | |||
| 5029 | // OUR STUFF: | ||
| 5030 | |||
| 5031 | // AutoHashMap | ||
| 5032 | // AutoArrayHashMap | ||
| 5033 | |||
| 5034 | // "Auto" => [ | ||
| 5035 | // 'A', => "rrayHashMap" => $ | ||
| 5036 | // 'H' => "ashMap" => $ | ||
| 5037 | // ] | ||
| 5038 | |||
| 5039 | // BUT! | ||
| 5040 | |||
| 5041 | // We want to be able to search "Hash", for example! |
lib/docs/ziglexer.js+3-3| ... | @@ -1,3 +1,5 @@ | ... | @@ -1,3 +1,5 @@ |
| 1 | 'use strict'; | ||
| 2 | |||
| 1 | const Tag = { | 3 | const Tag = { |
| 2 | invalid: "invalid", | 4 | invalid: "invalid", |
| 3 | identifier: "identifier", | 5 | identifier: "identifier", |
| ... | @@ -1941,7 +1943,7 @@ function tokenize_zig_source(raw_source) { | ... | @@ -1941,7 +1943,7 @@ function tokenize_zig_source(raw_source) { |
| 1941 | 1943 | ||
| 1942 | } | 1944 | } |
| 1943 | 1945 | ||
| 1944 | toks = [] | 1946 | let toks = [] |
| 1945 | 1947 | ||
| 1946 | for (let i = 0; i < raw_source.length * 2; i++) { | 1948 | for (let i = 0; i < raw_source.length * 2; i++) { |
| 1947 | const tok = next(); | 1949 | const tok = next(); |
| ... | @@ -1960,7 +1962,6 @@ function generate_html_for_src(src) { | ... | @@ -1960,7 +1962,6 @@ function generate_html_for_src(src) { |
| 1960 | var toks = tokenize_zig_source(src); | 1962 | var toks = tokenize_zig_source(src); |
| 1961 | var html = []; | 1963 | var html = []; |
| 1962 | 1964 | ||
| 1963 | html.push("<pre>"); | ||
| 1964 | let offset = 0; | 1965 | let offset = 0; |
| 1965 | for (let z = 0; z < toks.length; z++) { | 1966 | for (let z = 0; z < toks.length; z++) { |
| 1966 | const t = toks[z]; | 1967 | const t = toks[z]; |
| ... | @@ -1980,7 +1981,6 @@ function generate_html_for_src(src) { | ... | @@ -1980,7 +1981,6 @@ function generate_html_for_src(src) { |
| 1980 | 1981 | ||
| 1981 | 1982 | ||
| 1982 | html.push(src); | 1983 | html.push(src); |
| 1983 | html.push("</pre>"); | ||
| 1984 | 1984 | ||
| 1985 | return html.join(""); | 1985 | return html.join(""); |
| 1986 | 1986 |
src/Autodoc.zig+1| ... | @@ -435,6 +435,7 @@ pub fn generateZirData(self: *Autodoc) !void { | ... | @@ -435,6 +435,7 @@ pub fn generateZirData(self: *Autodoc) !void { |
| 435 | var docs_dir = try self.comp_module.comp.zig_lib_directory.handle.openDir("docs", .{}); | 435 | var docs_dir = try self.comp_module.comp.zig_lib_directory.handle.openDir("docs", .{}); |
| 436 | defer docs_dir.close(); | 436 | defer docs_dir.close(); |
| 437 | try docs_dir.copyFile("main.js", output_dir, "main.js", .{}); | 437 | try docs_dir.copyFile("main.js", output_dir, "main.js", .{}); |
| 438 | try docs_dir.copyFile("ziglexer.js", output_dir, "ziglexer.js", .{}); | ||
| 438 | try docs_dir.copyFile("commonmark.js", output_dir, "commonmark.js", .{}); | 439 | try docs_dir.copyFile("commonmark.js", output_dir, "commonmark.js", .{}); |
| 439 | try docs_dir.copyFile("index.html", output_dir, "index.html", .{}); | 440 | try docs_dir.copyFile("index.html", output_dir, "index.html", .{}); |
| 440 | } | 441 | } |