Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/_build/steps/PathCopy.zig
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
//! during the build.

const std = @import("std");
const ArrayList = std.ArrayListUnmanaged;
const ArrayList = std.ArrayList;

const PathCopy = @This();

Expand Down
33 changes: 16 additions & 17 deletions src/autodoc/wasm/Decl.zig
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const ArrayList = std.ArrayListUnmanaged;
const ArrayList = std.ArrayList;
const Decl = @This();
const std = @import("std");
const Ast = std.zig.Ast;
Expand Down Expand Up @@ -229,7 +229,7 @@ pub fn lookup(decl: *const Decl, name: []const u8) ?Decl.Index {
}

/// Appends the fully qualified name to `out`.
pub fn fqn(decl: *const Decl, out: *std.ArrayListUnmanaged(u8)) Oom!void {
pub fn fqn(decl: *const Decl, out: *std.ArrayList(u8)) Oom!void {
const name = decl.extra_info().name;

if (std.mem.eql(u8, name, "std") or
Expand All @@ -246,7 +246,7 @@ pub fn fqn(decl: *const Decl, out: *std.ArrayListUnmanaged(u8)) Oom!void {
}

/// Appends the fully qualified name to `out`.
pub fn fqn2(decl: *const Decl, parent_idx: Decl.Index, out: *std.ArrayListUnmanaged(u8)) Oom!void {
pub fn fqn2(decl: *const Decl, parent_idx: Decl.Index, out: *std.ArrayList(u8)) Oom!void {
const name = decl.extra_info().name;

if (std.mem.eql(u8, name, "std") or
Expand All @@ -268,7 +268,7 @@ pub fn fqn2(decl: *const Decl, parent_idx: Decl.Index, out: *std.ArrayListUnmana
/// Appends the fully qualified name to `out`.
pub fn fqnWrite(
decl: *const Decl,
out: std.ArrayListUnmanaged(u8).Writer,
out: std.ArrayList(u8).Writer,
) !void {
const name = decl.extra_info().name;

Expand All @@ -289,8 +289,8 @@ pub fn fqnWrite(
pub fn fqn2Write(
decl: *const Decl,
parent_idx: Decl.Index,
out: std.ArrayListUnmanaged(u8).Writer,
) Oom!void {
out: *std.Io.Writer,
) !void {
const name = decl.extra_info().name;

if (std.mem.eql(u8, name, "std") or
Expand All @@ -299,7 +299,7 @@ pub fn fqn2Write(

if (parent_idx == .none) {
try decl.appendPath(out);
out.context.self.items.len -= 1; // remove the trailing '.'
out.end -= 1; // remove the trailing '.'
return;
}

Expand All @@ -309,12 +309,12 @@ pub fn fqn2Write(
try out.writeAll(name);
}

pub fn reset_with_path(decl: *const Decl, list: *std.ArrayListUnmanaged(u8)) Oom!void {
pub fn reset_with_path(decl: *const Decl, list: *std.ArrayList(u8)) Oom!void {
list.clearRetainingCapacity();
try append_path(decl, list);
}

pub fn append_path(decl: *const Decl, list: *std.ArrayListUnmanaged(u8)) Oom!void {
pub fn append_path(decl: *const Decl, list: *std.ArrayList(u8)) Oom!void {
const start = list.items.len;
// Prefer the module name alias.
for (Walk.modules.keys(), Walk.modules.values()) |pkg_name, pkg_file| {
Expand Down Expand Up @@ -342,9 +342,9 @@ pub fn append_path(decl: *const Decl, list: *std.ArrayListUnmanaged(u8)) Oom!voi

pub fn appendPath(
decl: *const Decl,
out: std.ArrayListUnmanaged(u8).Writer,
out: *std.Io.Writer,
) !void {
const start = out.context.self.items.len;
const start = out.end;
// Prefer the module name alias.
for (Walk.modules.keys(), Walk.modules.values()) |pkg_name, pkg_file| {
if (pkg_file == decl.file) {
Expand All @@ -358,19 +358,18 @@ pub fn appendPath(
// try out.ensureUnusedCapacity(gpa, file_path.len + 1);
try out.writeAll(file_path);

const list = out.context.self;
for (list.items[start..]) |*byte| switch (byte.*) {
for (out.buffer[start..]) |*byte| switch (byte.*) {
'/' => byte.* = '.',
else => continue,
};
if (std.mem.endsWith(u8, list.items, ".zig")) {
list.items.len -= 3;
if (std.mem.endsWith(u8, out.buffered(), ".zig")) {
out.end -= 3;
} else {
try out.writeByte('.');
}
}

pub fn append_parent_ns(list: *std.ArrayListUnmanaged(u8), parent: Decl.Index) Oom!void {
pub fn append_parent_ns(list: *std.ArrayList(u8), parent: Decl.Index) Oom!void {
assert(parent != .none);
const decl = parent.get();
if (decl.parent != .none) {
Expand All @@ -380,7 +379,7 @@ pub fn append_parent_ns(list: *std.ArrayListUnmanaged(u8), parent: Decl.Index) O
}
}

pub fn appendParentNs(out: std.ArrayListUnmanaged(u8).Writer, parent: Decl.Index) !void {
pub fn appendParentNs(out: std.ArrayList(u8).Writer, parent: Decl.Index) !void {
assert(parent != .none);
const decl = parent.get();
if (decl.parent != .none) {
Expand Down
2 changes: 1 addition & 1 deletion src/autodoc/wasm/Walk.zig
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ const Oom = error{OutOfMemory};
pub const Decl = @import("Decl.zig");

pub var files: std.StringArrayHashMapUnmanaged(File) = .empty;
pub var decls: std.ArrayListUnmanaged(Decl) = .empty;
pub var decls: std.ArrayList(Decl) = .empty;
pub var modules: std.StringArrayHashMapUnmanaged(File.Index) = .empty;

file: File.Index,
Expand Down
16 changes: 8 additions & 8 deletions src/autodoc/wasm/html_render.zig
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@ pub const Annotation = struct {

pub fn fileSourceHtml(
file_index: Walk.File.Index,
out: *std.ArrayListUnmanaged(u8),
out: *std.ArrayList(u8),
root_node: Ast.Node.Index,
options: RenderSourceOptions,
) !void {
const ast = file_index.get_ast();
const file = file_index.get();

const g = struct {
var field_access_buffer: std.ArrayListUnmanaged(u8) = .empty;
var field_access_buffer: std.ArrayList(u8) = .empty;
};

const start_token = ast.firstToken(root_node);
Expand Down Expand Up @@ -117,7 +117,7 @@ pub fn fileSourceHtml(
if (next_annotate_index >= options.source_location_annotations.len) break;
const next_annotation = options.source_location_annotations[next_annotate_index];
if (cursor <= next_annotation.file_byte_offset) break;
try out.writer(gpa).print("<span id=\"{s}{d}\"></span>", .{
try out.print(gpa, "<span id=\"{s}{d}\"></span>", .{
options.annotation_prefix, next_annotation.dom_id,
});
next_annotate_index += 1;
Expand Down Expand Up @@ -387,7 +387,7 @@ pub fn fileSourceHtml(
}

fn appendUnindented(
out: *std.ArrayListUnmanaged(u8),
out: *std.ArrayList(u8),
s: []const u8,
indent: usize,
) !void {
Expand All @@ -404,7 +404,7 @@ fn appendUnindented(
}
}

pub fn appendEscaped(out: *std.ArrayListUnmanaged(u8), s: []const u8) !void {
pub fn appendEscaped(out: *std.ArrayList(u8), s: []const u8) !void {
for (s) |c| {
try out.ensureUnusedCapacity(gpa, 6);
switch (c) {
Expand All @@ -419,7 +419,7 @@ pub fn appendEscaped(out: *std.ArrayListUnmanaged(u8), s: []const u8) !void {

fn walkFieldAccesses(
file_index: Walk.File.Index,
out: *std.ArrayListUnmanaged(u8),
out: *std.ArrayList(u8),
node: Ast.Node.Index,
) Oom!void {
const ast = file_index.get_ast();
Expand All @@ -443,7 +443,7 @@ fn walkFieldAccesses(

fn resolveIdentLink(
file_index: Walk.File.Index,
out: *std.ArrayListUnmanaged(u8),
out: *std.ArrayList(u8),
ident_token: Ast.TokenIndex,
) Oom!void {
const decl_index = file_index.get().lookup_token(ident_token);
Expand All @@ -463,7 +463,7 @@ fn unindent(s: []const u8, indent: usize) []const u8 {
return s[indent_idx..];
}

pub fn resolveDeclLink(decl_index: Decl.Index, out: *std.ArrayListUnmanaged(u8)) Oom!void {
pub fn resolveDeclLink(decl_index: Decl.Index, out: *std.ArrayList(u8)) Oom!void {
const decl = decl_index.get();
switch (decl.categorize()) {
.alias => |alias_decl| try alias_decl.get().fqn(out),
Expand Down
53 changes: 30 additions & 23 deletions src/autodoc/wasm/main.zig
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const ArrayList = std.ArrayListUnmanaged;
const ArrayList = std.ArrayList;
const std = @import("std");
const log = std.log;
const assert = std.debug.assert;
Expand Down Expand Up @@ -68,8 +68,8 @@ export fn unpack(tar_ptr: [*]u8, tar_len: usize) void {
};
}

var query_string: std.ArrayListUnmanaged(u8) = .empty;
var query_results: std.ArrayListUnmanaged(Decl.Index) = .empty;
var query_string: std.ArrayList(u8) = .empty;
var query_results: std.ArrayList(Decl.Index) = .empty;

/// Resizes the query string to be the correct length; returns the pointer to
/// the query string.
Expand Down Expand Up @@ -101,11 +101,11 @@ fn query_exec_fallible(query: []const u8, ignore_case: bool) !void {
segments: u16,
};
const g = struct {
var full_path_search_text: std.ArrayListUnmanaged(u8) = .empty;
var full_path_search_text_lower: std.ArrayListUnmanaged(u8) = .empty;
var doc_search_text: std.ArrayListUnmanaged(u8) = .empty;
var full_path_search_text: std.ArrayList(u8) = .empty;
var full_path_search_text_lower: std.ArrayList(u8) = .empty;
var doc_search_text: std.ArrayList(u8) = .empty;
/// Each element matches a corresponding query_results element.
var scores: std.ArrayListUnmanaged(Score) = .empty;
var scores: std.ArrayList(Score) = .empty;
};

// First element stores the size of the list.
Expand Down Expand Up @@ -239,7 +239,7 @@ const ErrorIdentifier = packed struct(u64) {
fn html(
ei: ErrorIdentifier,
base_decl: Decl.Index,
out: *std.ArrayListUnmanaged(u8),
out: *std.ArrayList(u8),
) !void {
const decl_index = ei.decl_index;
const ast = decl_index.get().file.get_ast();
Expand All @@ -266,7 +266,7 @@ const ErrorIdentifier = packed struct(u64) {
}
};

var string_result: std.ArrayListUnmanaged(u8) = .empty;
var string_result: std.ArrayList(u8) = .empty;
var error_set_result: std.StringArrayHashMapUnmanaged(ErrorIdentifier) = .empty;

export fn decl_error_set(decl_index: Decl.Index) Slice(ErrorIdentifier) {
Expand Down Expand Up @@ -435,7 +435,7 @@ fn decl_fields_fallible(decl_index: Decl.Index) ![]Ast.Node.Index {

fn ast_decl_fields_fallible(ast: *Ast, ast_index: Ast.Node.Index) ![]Ast.Node.Index {
const g = struct {
var result: std.ArrayListUnmanaged(Ast.Node.Index) = .empty;
var result: std.ArrayList(Ast.Node.Index) = .empty;
};
g.result.clearRetainingCapacity();
var buf: [2]Ast.Node.Index = undefined;
Expand All @@ -453,7 +453,7 @@ fn ast_decl_fields_fallible(ast: *Ast, ast_index: Ast.Node.Index) ![]Ast.Node.In

fn decl_params_fallible(decl_index: Decl.Index) ![]Ast.Node.Index {
const g = struct {
var result: std.ArrayListUnmanaged(Ast.Node.Index) = .empty;
var result: std.ArrayList(Ast.Node.Index) = .empty;
};
g.result.clearRetainingCapacity();
const decl = decl_index.get();
Expand Down Expand Up @@ -498,7 +498,7 @@ export fn decl_param_html(decl_index: Decl.Index, param_node: Ast.Node.Index) St
}

fn decl_field_html_fallible(
out: *std.ArrayListUnmanaged(u8),
out: *std.ArrayList(u8),
decl_index: Decl.Index,
field_node: Ast.Node.Index,
) !void {
Expand All @@ -518,7 +518,7 @@ fn decl_field_html_fallible(
}

fn decl_param_html_fallible(
out: *std.ArrayListUnmanaged(u8),
out: *std.ArrayList(u8),
decl_index: Decl.Index,
param_node: Ast.Node.Index,
) !void {
Expand Down Expand Up @@ -754,7 +754,7 @@ export fn decl_docs_html(decl_index: Decl.Index, short: bool) String {
}

fn collect_docs(
list: *std.ArrayListUnmanaged(u8),
list: *std.ArrayList(u8),
ast: *const Ast,
first_doc_comment: Ast.TokenIndex,
) Oom!void {
Expand All @@ -772,7 +772,7 @@ fn collect_docs(
}

fn render_docs(
out: *std.ArrayListUnmanaged(u8),
out: *std.ArrayList(u8),
decl_index: Decl.Index,
first_doc_comment: Ast.TokenIndex,
short: bool,
Expand All @@ -799,10 +799,17 @@ fn render_docs(
.context = decl_index,
.renderFn = renderMarkdownNode,
};
try renderer.render(parsed_doc, out.writer(gpa));

var allocating = std.Io.Writer.Allocating.fromArrayList(gpa, out);
defer out.* = allocating.toArrayList();

renderer.render(parsed_doc, &allocating.writer) catch |err| switch (err) {
error.WriteFailed => return error.OutOfMemory,
else => return err,
};
}

const MarkdownWriter = std.ArrayListUnmanaged(u8).Writer;
const MarkdownWriter = *std.Io.Writer;
const MarkdownRenderer = markdown.Renderer(MarkdownWriter, Decl.Index);

fn renderMarkdownNode(
Expand All @@ -812,7 +819,7 @@ fn renderMarkdownNode(
writer: MarkdownWriter,
) !void {
const g = struct {
var link_buffer: std.ArrayListUnmanaged(u8) = .empty;
var link_buffer: std.ArrayList(u8) = .empty;
};

const data = doc.nodes.items(.data)[@intFromEnum(node)];
Expand All @@ -839,7 +846,7 @@ fn renderMarkdownNode(
return MarkdownRenderer.renderDefault(r, doc, node, writer);
}

// var virtual_file_name = std.ArrayListUnmanaged(u8).empty;
// var virtual_file_name = std.ArrayList(u8).empty;
// try r.context.get().fqn(&virtual_file_name);
// try virtual_file_name.writer(gpa).print("/snippet", .{});
// log.info("adding virtual file: {s}", .{virtual_file_name.items});
Expand Down Expand Up @@ -1034,7 +1041,7 @@ export fn find_module_root(pkg: Walk.ModuleIndex) Decl.Index {
}

/// Set by `set_input_string`.
var input_string: std.ArrayListUnmanaged(u8) = .empty;
var input_string: std.ArrayList(u8) = .empty;

export fn set_input_string(len: usize) [*]u8 {
input_string.resize(gpa, len) catch @panic("OOM");
Expand All @@ -1058,7 +1065,7 @@ export fn find_decl() Decl.Index {
if (result != .none) return result;

const g = struct {
var match_fqn: std.ArrayListUnmanaged(u8) = .empty;
var match_fqn: std.ArrayList(u8) = .empty;
};
for (Walk.decls.items, 0..) |*decl, decl_index| {
g.match_fqn.clearRetainingCapacity();
Expand Down Expand Up @@ -1120,7 +1127,7 @@ export fn namespace_members(
include_private: bool,
) Slice(Decl.Index) {
const g = struct {
var members: std.ArrayListUnmanaged(Decl.Index) = .empty;
var members: std.ArrayList(Decl.Index) = .empty;
};

g.members.clearRetainingCapacity();
Expand All @@ -1133,7 +1140,7 @@ export fn namespace_members(
fn namespaceMembersInner(
parent_idx: Decl.Index,
include_private: bool,
out_members: *std.ArrayListUnmanaged(Decl.Index),
out_members: *std.ArrayList(Decl.Index),
) void {
const parent = parent_idx.get();
switch (parent.categorize()) {
Expand Down
4 changes: 2 additions & 2 deletions src/autodoc/wasm/markdown.zig
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ fn mainImpl() !void {
var parser = try Parser.init(gpa);
defer parser.deinit();

var stdin_buf = std.io.bufferedReader(std.io.getStdIn().reader());
var stdin_buf = std.Io.bufferedReader(std.Io.getStdIn().reader());
var line_buf = std.ArrayList(u8).init(gpa);
defer line_buf.deinit();
while (stdin_buf.reader().streamUntilDelimiter(line_buf.writer(), '\n', null)) {
Expand All @@ -160,7 +160,7 @@ fn mainImpl() !void {
var doc = try parser.endInput();
defer doc.deinit(gpa);

var stdout_buf = std.io.bufferedWriter(std.io.getStdOut().writer());
var stdout_buf = std.Io.bufferedWriter(std.Io.getStdOut().writer());
try doc.render(stdout_buf.writer());
try stdout_buf.flush();
}
Expand Down
Loading