authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-09-25 12:03:09-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2018-09-25 12:03:09-04:00
log839492d0e82e5d7b2a5cee54acb9e64b414e9817
treec44c858a7f7e625f6a69c7be5fc63a935d7d30f8
parenteafb8e85725df570056f2be09173449f802b90fc
signaturelock-open Commit is signed but in an unrecognized format.

fix not syntax highlighting builtin module


2 files changed, 16 insertions(+), 10 deletions(-)

doc/docgen.zig+15-9
......@@ -295,7 +295,7 @@ const Link = struct {
295295const Node = union(enum) {
296296 Content: []const u8,
297297 Nav,
298 Builtin,
298 Builtin: Token,
299299 HeaderOpen: HeaderOpen,
300300 SeeAlso: []const SeeAlsoItem,
301301 Code: Code,
......@@ -355,7 +355,7 @@ fn genToc(allocator: *mem.Allocator, tokenizer: *Tokenizer) !Toc {
355355 try nodes.append(Node.Nav);
356356 } else if (mem.eql(u8, tag_name, "builtin")) {
357357 _ = try eatToken(tokenizer, Token.Id.BracketClose);
358 try nodes.append(Node.Builtin);
358 try nodes.append(Node{ .Builtin = tag_token });
359359 } else if (mem.eql(u8, tag_name, "header_open")) {
360360 _ = try eatToken(tokenizer, Token.Id.Separator);
361361 const content_token = try eatToken(tokenizer, Token.Id.TagContent);
......@@ -718,8 +718,7 @@ fn isType(name: []const u8) bool {
718718 return false;
719719}
720720
721fn tokenizeAndPrint(allocator: *mem.Allocator, docgen_tokenizer: *Tokenizer, out: var, source_token: Token) !void {
722 const raw_src = docgen_tokenizer.buffer[source_token.start..source_token.end];
721fn tokenizeAndPrintRaw(docgen_tokenizer: *Tokenizer, out: var, source_token: Token, raw_src: []const u8) !void {
723722 const src = mem.trim(u8, raw_src, " \n");
724723 try out.write("<code class=\"zig\">");
725724 var tokenizer = std.zig.Tokenizer.init(src);
......@@ -928,13 +927,18 @@ fn tokenizeAndPrint(allocator: *mem.Allocator, docgen_tokenizer: *Tokenizer, out
928927 try out.write("</code>");
929928}
930929
930fn tokenizeAndPrint(docgen_tokenizer: *Tokenizer, out: var, source_token: Token) !void {
931 const raw_src = docgen_tokenizer.buffer[source_token.start..source_token.end];
932 return tokenizeAndPrintRaw(docgen_tokenizer, out, source_token, raw_src);
933}
934
931935fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var, zig_exe: []const u8) !void {
932936 var code_progress_index: usize = 0;
933937
934938 var env_map = try os.getEnvMap(allocator);
935939 try env_map.set("ZIG_DEBUG_COLOR", "1");
936940
937 const builtin_code = try escapeHtml(allocator, try getBuiltinCode(allocator, &env_map, zig_exe));
941 const builtin_code = try getBuiltinCode(allocator, &env_map, zig_exe);
938942
939943 for (toc.nodes) |node| {
940944 switch (node) {
......@@ -950,8 +954,10 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
950954 Node.Nav => {
951955 try out.write(toc.toc);
952956 },
953 Node.Builtin => {
954 try out.print("<pre><code class=\"zig\">{}</code></pre>", builtin_code);
957 Node.Builtin => |tok| {
958 try out.write("<pre>");
959 try tokenizeAndPrintRaw(tokenizer, out, tok, builtin_code);
960 try out.write("</pre>");
955961 },
956962 Node.HeaderOpen => |info| {
957963 try out.print("<h{} id=\"{}\">{}</h{}>\n", info.n, info.url, info.name, info.n);
......@@ -968,7 +974,7 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
968974 try out.write("</ul>\n");
969975 },
970976 Node.Syntax => |content_tok| {
971 try tokenizeAndPrint(allocator, tokenizer, out, content_tok);
977 try tokenizeAndPrint(tokenizer, out, content_tok);
972978 },
973979 Node.Code => |code| {
974980 code_progress_index += 1;
......@@ -980,7 +986,7 @@ fn genHtml(allocator: *mem.Allocator, tokenizer: *Tokenizer, toc: *Toc, out: var
980986 try out.print("<p class=\"file\">{}.zig</p>", code.name);
981987 }
982988 try out.write("<pre>");
983 try tokenizeAndPrint(allocator, tokenizer, out, code.source_token);
989 try tokenizeAndPrint(tokenizer, out, code.source_token);
984990 try out.write("</pre>");
985991 const name_plus_ext = try std.fmt.allocPrint(allocator, "{}.zig", code.name);
986992 const tmp_source_file_name = try os.path.join(allocator, tmp_dir_name, name_plus_ext);
doc/langref.html.in+1-1
......@@ -1963,7 +1963,7 @@ test "linked list" {
19631963 that variable.</li>
19641964 <li>If the struct is in the {#syntax#}return{#endsyntax#} expression, it gets named after
19651965 the function it is returning from, with the parameter values serialized.</li>
1966 <li>Otherwise, the struct gets a same such as {#syntax#}(anonymous struct at file.zig:7:38){#endsyntax#}.</li>
1966 <li>Otherwise, the struct gets a name such as <code>(anonymous struct at file.zig:7:38)</code>.</li>
19671967 </ul>
19681968 {#code_begin|exe|struct_name#}
19691969const std = @import("std");