mirror of
https://github.com/lightpanda-io/browser.git
synced 2026-03-21 20:24:42 +00:00
SemanticTree: simplify max_depth logic
This commit is contained in:
@@ -38,7 +38,7 @@ page: *Page,
|
|||||||
arena: std.mem.Allocator,
|
arena: std.mem.Allocator,
|
||||||
prune: bool = true,
|
prune: bool = true,
|
||||||
interactive_only: bool = false,
|
interactive_only: bool = false,
|
||||||
max_depth: ?u32 = null,
|
max_depth: u32 = std.math.maxInt(u32) - 1,
|
||||||
|
|
||||||
pub fn jsonStringify(self: @This(), jw: *std.json.Stringify) error{WriteFailed}!void {
|
pub fn jsonStringify(self: @This(), jw: *std.json.Stringify) error{WriteFailed}!void {
|
||||||
var visitor = JsonVisitor{ .jw = jw, .tree = self };
|
var visitor = JsonVisitor{ .jw = jw, .tree = self };
|
||||||
@@ -85,9 +85,7 @@ const NodeData = struct {
|
|||||||
};
|
};
|
||||||
|
|
||||||
fn walk(self: @This(), node: *Node, xpath_buffer: *std.ArrayList(u8), parent_name: ?[]const u8, visitor: anytype, index: usize, listener_targets: interactive.ListenerTargetMap, current_depth: u32) !void {
|
fn walk(self: @This(), node: *Node, xpath_buffer: *std.ArrayList(u8), parent_name: ?[]const u8, visitor: anytype, index: usize, listener_targets: interactive.ListenerTargetMap, current_depth: u32) !void {
|
||||||
if (self.max_depth) |max| {
|
if (current_depth > self.max_depth) return;
|
||||||
if (current_depth > max) return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 1. Skip non-content nodes
|
// 1. Skip non-content nodes
|
||||||
if (node.is(Element)) |el| {
|
if (node.is(Element)) |el| {
|
||||||
@@ -497,7 +495,7 @@ test "SemanticTree backendDOMNodeId" {
|
|||||||
.arena = testing.arena_allocator,
|
.arena = testing.arena_allocator,
|
||||||
.prune = false,
|
.prune = false,
|
||||||
.interactive_only = false,
|
.interactive_only = false,
|
||||||
.max_depth = null,
|
.max_depth = std.math.maxInt(u32) - 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
const json_str = try std.json.Stringify.valueAlloc(testing.allocator, st, .{});
|
const json_str = try std.json.Stringify.valueAlloc(testing.allocator, st, .{});
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ fn getSemanticTree(cmd: anytype) !void {
|
|||||||
.arena = cmd.arena,
|
.arena = cmd.arena,
|
||||||
.prune = params.prune orelse true,
|
.prune = params.prune orelse true,
|
||||||
.interactive_only = params.interactiveOnly orelse false,
|
.interactive_only = params.interactiveOnly orelse false,
|
||||||
.max_depth = params.maxDepth,
|
.max_depth = params.maxDepth orelse std.math.maxInt(u32) - 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (params.format) |format| {
|
if (params.format) |format| {
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ const ToolStreamingText = struct {
|
|||||||
if (registry.lookup_by_id.get(node_id)) |n| {
|
if (registry.lookup_by_id.get(node_id)) |n| {
|
||||||
root_node = n.dom;
|
root_node = n.dom;
|
||||||
} else {
|
} else {
|
||||||
log.warn(.mcp, "semantic_tree id missing", .{.id = node_id});
|
log.warn(.mcp, "semantic_tree id missing", .{ .id = node_id });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -217,7 +217,7 @@ const ToolStreamingText = struct {
|
|||||||
.page = self.page,
|
.page = self.page,
|
||||||
.arena = self.arena.?,
|
.arena = self.arena.?,
|
||||||
.prune = true,
|
.prune = true,
|
||||||
.max_depth = self.maxDepth,
|
.max_depth = self.maxDepth orelse std.math.maxInt(u32) - 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
st.textStringify(w) catch |err| {
|
st.textStringify(w) catch |err| {
|
||||||
|
|||||||
Reference in New Issue
Block a user