From a64e487e15890b942add5cee3f794cdb1503d3a5 Mon Sep 17 00:00:00 2001 From: "Kobayasi, Hiroaki" Date: Sun, 11 Feb 2024 17:54:49 +0900 Subject: [PATCH] Add some debugging aid --- Lite/Inspector.pm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Lite/Inspector.pm b/Lite/Inspector.pm index b779078..5492444 100755 --- a/Lite/Inspector.pm +++ b/Lite/Inspector.pm @@ -820,6 +820,34 @@ sub compare_position { || $leftPos->{character} <=> $rightPos->{character}; } +sub dump_part_decllist { + (my MY $self, my ($fileName, $line)) = @_; + $line //= 0; + + (my Part $part, my Template $tmpl, my $core) + = $self->find_part_of_file_line($fileName, $line) + or return; + + $part->{decllist} +} + +sub dump_part_tree { + (my MY $self, my ($fileName, $line)) = @_; + $line //= 0; + + (my Part $part, my Template $tmpl, my $core) + = $self->find_part_of_file_line($fileName, $line) + or return; + + unless (UNIVERSAL::isa($part, 'YATT::Lite::Core::Widget')) { + Carp::croak "part $part->{cf_kind} $part->{cf_name} is not a widget"; + } + + $core->ensure_parsed($part); + my Widget $widget = $part; + $widget->{tree} +} + sub dump_tokens_at_file_position { (my MY $self, my ($fileName, $line, $column)) = @_; $line //= 0;