| ... | ... | @@ -947,19 +947,8 @@ fn isType(name: []const u8) bool { |
| 947 | 947 | return false; |
| 948 | 948 | } |
| 949 | 949 | |
| 950 | | const start_line = "<span class=\"line\">"; |
| 951 | | const end_line = "</span>"; |
| 952 | | |
| 953 | 950 | fn writeEscapedLines(out: anytype, text: []const u8) !void { |
| 954 | | for (text) |char| { |
| 955 | | if (char == '\n') { |
| 956 | | try out.writeAll(end_line); |
| 957 | | try out.writeAll("\n"); |
| 958 | | try out.writeAll(start_line); |
| 959 | | } else { |
| 960 | | try writeEscaped(out, &[_]u8{char}); |
| 961 | | } |
| 962 | | } |
| 951 | return writeEscaped(out, text); |
| 963 | 952 | } |
| 964 | 953 | |
| 965 | 954 | fn tokenizeAndPrintRaw( |
| ... | ... | @@ -972,7 +961,7 @@ fn tokenizeAndPrintRaw( |
| 972 | 961 | const src_non_terminated = mem.trim(u8, raw_src, " \r\n"); |
| 973 | 962 | const src = try allocator.dupeZ(u8, src_non_terminated); |
| 974 | 963 | |
| 975 | | try out.writeAll("<code>" ++ start_line); |
| 964 | try out.writeAll("<code>"); |
| 976 | 965 | var tokenizer = std.zig.Tokenizer.init(src); |
| 977 | 966 | var index: usize = 0; |
| 978 | 967 | var next_tok_is_fn = false; |
| ... | ... | @@ -1062,6 +1051,7 @@ fn tokenizeAndPrintRaw( |
| 1062 | 1051 | }, |
| 1063 | 1052 | |
| 1064 | 1053 | .string_literal, |
| 1054 | .multiline_string_literal_line, |
| 1065 | 1055 | .char_literal, |
| 1066 | 1056 | => { |
| 1067 | 1057 | try out.writeAll("<span class=\"tok-str\">"); |
| ... | ... | @@ -1069,18 +1059,6 @@ fn tokenizeAndPrintRaw( |
| 1069 | 1059 | try out.writeAll("</span>"); |
| 1070 | 1060 | }, |
| 1071 | 1061 | |
| 1072 | | .multiline_string_literal_line => { |
| 1073 | | if (src[token.loc.end - 1] == '\n') { |
| 1074 | | try out.writeAll("<span class=\"tok-str\">"); |
| 1075 | | try writeEscaped(out, src[token.loc.start .. token.loc.end - 1]); |
| 1076 | | try out.writeAll("</span>" ++ end_line ++ "\n" ++ start_line); |
| 1077 | | } else { |
| 1078 | | try out.writeAll("<span class=\"tok-str\">"); |
| 1079 | | try writeEscaped(out, src[token.loc.start..token.loc.end]); |
| 1080 | | try out.writeAll("</span>"); |
| 1081 | | } |
| 1082 | | }, |
| 1083 | | |
| 1084 | 1062 | .builtin => { |
| 1085 | 1063 | try out.writeAll("<span class=\"tok-builtin\">"); |
| 1086 | 1064 | try writeEscaped(out, src[token.loc.start..token.loc.end]); |
| ... | ... | @@ -1211,7 +1189,7 @@ fn tokenizeAndPrintRaw( |
| 1211 | 1189 | } |
| 1212 | 1190 | index = token.loc.end; |
| 1213 | 1191 | } |
| 1214 | | try out.writeAll(end_line ++ "</code>"); |
| 1192 | try out.writeAll("</code>"); |
| 1215 | 1193 | } |
| 1216 | 1194 | |
| 1217 | 1195 | fn tokenizeAndPrint( |
| ... | ... | @@ -1234,9 +1212,9 @@ fn printSourceBlock(allocator: Allocator, docgen_tokenizer: *Tokenizer, out: any |
| 1234 | 1212 | const raw_source = docgen_tokenizer.buffer[syntax_block.source_token.start..syntax_block.source_token.end]; |
| 1235 | 1213 | const trimmed_raw_source = mem.trim(u8, raw_source, " \r\n"); |
| 1236 | 1214 | |
| 1237 | | try out.writeAll("<code>" ++ start_line); |
| 1215 | try out.writeAll("<code>"); |
| 1238 | 1216 | try writeEscapedLines(out, trimmed_raw_source); |
| 1239 | | try out.writeAll(end_line ++ "</code>"); |
| 1217 | try out.writeAll("</code>"); |
| 1240 | 1218 | }, |
| 1241 | 1219 | } |
| 1242 | 1220 | try out.writeAll("</pre></figure>"); |