Commit 28ad74e8a6
Changed files (4)
lib
src
lib/docs/index.html
@@ -680,7 +680,88 @@
.banner a {
color: black;
text-decoration: underline;
+ }
+
+ </style>
+
+ <style>
+ pre{
+ --zig-keyword: #333;
+ --zig-identifier: 'black';
+ }
+
+ @media (prefers-color-scheme: dark) {
+ pre {
+ --zig-keyword: 'white';
+ --zig-identifier: 'purple';
+ }
+ }
+
+ .zig_keyword_addrspace,
+ .zig_keyword_align,
+ .zig_keyword_allowzero,
+ .zig_keyword_and,
+ .zig_keyword_anyframe,
+ .zig_keyword_anytype,
+ .zig_keyword_asm,
+ .zig_keyword_async,
+ .zig_keyword_await,
+ .zig_keyword_break,
+ .zig_keyword_callconv,
+ .zig_keyword_catch,
+ .zig_keyword_comptime,
+ .zig_keyword_const,
+ .zig_keyword_continue,
+ .zig_keyword_defer,
+ .zig_keyword_else,
+ .zig_keyword_enum,
+ .zig_keyword_errdefer,
+ .zig_keyword_error,
+ .zig_keyword_export,
+ .zig_keyword_extern,
+ .zig_keyword_fn,
+ .zig_keyword_for,
+ .zig_keyword_if,
+ .zig_keyword_inline,
+ .zig_keyword_noalias,
+ .zig_keyword_noinline,
+ .zig_keyword_nosuspend,
+ .zig_keyword_opaque,
+ .zig_keyword_or,
+ .zig_keyword_orelse,
+ .zig_keyword_packed,
+ .zig_keyword_pub,
+ .zig_keyword_resume,
+ .zig_keyword_return,
+ .zig_keyword_linksection,
+ .zig_keyword_struct,
+ .zig_keyword_suspend,
+ .zig_keyword_switch,
+ .zig_keyword_test,
+ .zig_keyword_threadlocal,
+ .zig_keyword_try,
+ .zig_keyword_union,
+ .zig_keyword_unreachable,
+ .zig_keyword_usingnamespace,
+ .zig_keyword_var,
+ .zig_keyword_volatile,
+ .zig_keyword_while {
+ color: var(--zig-keyword);
+ font-weight: bold;
+ }
+
+ .zig_doc_comment, .zig_container_doc_comment {
+ color: #545454;
+ font-style: italic;
+ }
+
+ .zig_builtin {
+ color: #005C7A;
}
+
+ .zig_string_literal {
+ color: #d14;
+ }
</style>
</head>
<body class="canvas">
@@ -906,6 +987,7 @@
</div>
<script src="data.js"></script>
<script src="commonmark.js"></script>
+ <script src="ziglexer.js"></script>
<script src="main.js"></script>
</body>
</html>
lib/docs/main.js
@@ -660,25 +660,7 @@ const NAV_MODES = {
if (!decl.decltest) return;
const astNode = getAstNode(decl.decltest);
domSectDocTests.classList.remove("hidden");
- domDocTestsCode.innerHTML = renderZigSource(astNode.code);
- }
-
- function renderZigSource(code) {
- let lines = code.split("\n");
- let result = "";
- let indent_level = 0;
- for (let i = 0; i < lines.length; i += 1) {
- let line = lines[i].trim();
- if (line[0] == "}") indent_level -= 1;
- for (let j = 0; j < indent_level; j += 1) {
- result += " ";
- }
- if (line.startsWith("\\\\")) result += " "
- result += line;
- if (i != lines.length - 1) result += "\n";
- if (line[line.length - 1] == "{") indent_level += 1;
- }
- return result;
+ domDocTestsCode.innerHTML = generate_html_for_src(astNode.code);
}
function renderUnknownDecl(decl) {
@@ -1774,7 +1756,7 @@ const NAV_MODES = {
return payloadHtml + "}";
}
case "comptimeExpr": {
- return renderZigSource(zigAnalysis.comptimeExprs[expr.comptimeExpr].code);
+ return generate_html_for_src(zigAnalysis.comptimeExprs[expr.comptimeExpr].code);
}
case "call": {
let call = zigAnalysis.calls[expr.call];
@@ -5016,26 +4998,3 @@ function RadixTree() {
}
}
-// RADIX TREE:
-
-// apple
-// appliance
-
-// "appl" => [
-// 'e', => $
-// 'i' => "ance" => $
-// ]
-
-// OUR STUFF:
-
-// AutoHashMap
-// AutoArrayHashMap
-
-// "Auto" => [
-// 'A', => "rrayHashMap" => $
-// 'H' => "ashMap" => $
-// ]
-
-// BUT!
-
-// We want to be able to search "Hash", for example!
lib/docs/ziglexer.js
@@ -1,3 +1,5 @@
+'use strict';
+
const Tag = {
invalid: "invalid",
identifier: "identifier",
@@ -1941,7 +1943,7 @@ function tokenize_zig_source(raw_source) {
}
- toks = []
+ let toks = []
for (let i = 0; i < raw_source.length * 2; i++) {
const tok = next();
@@ -1960,7 +1962,6 @@ function generate_html_for_src(src) {
var toks = tokenize_zig_source(src);
var html = [];
- html.push("<pre>");
let offset = 0;
for (let z = 0; z < toks.length; z++) {
const t = toks[z];
@@ -1980,7 +1981,6 @@ function generate_html_for_src(src) {
html.push(src);
- html.push("</pre>");
return html.join("");
src/Autodoc.zig
@@ -435,6 +435,7 @@ pub fn generateZirData(self: *Autodoc) !void {
var docs_dir = try self.comp_module.comp.zig_lib_directory.handle.openDir("docs", .{});
defer docs_dir.close();
try docs_dir.copyFile("main.js", output_dir, "main.js", .{});
+ try docs_dir.copyFile("ziglexer.js", output_dir, "ziglexer.js", .{});
try docs_dir.copyFile("commonmark.js", output_dir, "commonmark.js", .{});
try docs_dir.copyFile("index.html", output_dir, "index.html", .{});
}