Replace Scope display code.
This commit is contained in:
parent
5a75479119
commit
c2a796f9c2
@ -154,43 +154,6 @@ fn print_debug_help() {
|
|||||||
println!();
|
println!();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Display the current scope.
|
|
||||||
fn print_scope(scope: &Scope, dedup: bool) {
|
|
||||||
let flattened_clone;
|
|
||||||
let scope = if dedup {
|
|
||||||
flattened_clone = scope.clone_visible();
|
|
||||||
&flattened_clone
|
|
||||||
} else {
|
|
||||||
scope
|
|
||||||
};
|
|
||||||
|
|
||||||
for (i, (name, constant, value)) in scope.iter_raw().enumerate() {
|
|
||||||
#[cfg(not(feature = "no_closure"))]
|
|
||||||
let value_is_shared = if value.is_shared() { " (shared)" } else { "" };
|
|
||||||
#[cfg(feature = "no_closure")]
|
|
||||||
let value_is_shared = "";
|
|
||||||
|
|
||||||
if dedup {
|
|
||||||
println!(
|
|
||||||
"{}{}{} = {:?}",
|
|
||||||
if constant { "const " } else { "" },
|
|
||||||
name,
|
|
||||||
value_is_shared,
|
|
||||||
*value.read_lock::<Dynamic>().unwrap(),
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
println!(
|
|
||||||
"[{}] {}{}{} = {:?}",
|
|
||||||
i + 1,
|
|
||||||
if constant { "const " } else { "" },
|
|
||||||
name,
|
|
||||||
value_is_shared,
|
|
||||||
*value.read_lock::<Dynamic>().unwrap(),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load script to debug.
|
// Load script to debug.
|
||||||
fn load_script(engine: &Engine) -> (rhai::AST, String) {
|
fn load_script(engine: &Engine) -> (rhai::AST, String) {
|
||||||
if let Some(filename) = env::args().skip(1).next() {
|
if let Some(filename) = env::args().skip(1).next() {
|
||||||
@ -365,7 +328,7 @@ fn debug_callback(
|
|||||||
[] | ["step" | "s"] => break Ok(DebuggerCommand::StepInto),
|
[] | ["step" | "s"] => break Ok(DebuggerCommand::StepInto),
|
||||||
["over" | "o"] => break Ok(DebuggerCommand::StepOver),
|
["over" | "o"] => break Ok(DebuggerCommand::StepOver),
|
||||||
["next" | "n"] => break Ok(DebuggerCommand::Next),
|
["next" | "n"] => break Ok(DebuggerCommand::Next),
|
||||||
["scope"] => print_scope(context.scope(), false),
|
["scope"] => println!("{}", context.scope()),
|
||||||
["print" | "p", "this"] => {
|
["print" | "p", "this"] => {
|
||||||
if let Some(value) = context.this_ptr() {
|
if let Some(value) = context.this_ptr() {
|
||||||
println!("=> {:?}", value);
|
println!("=> {:?}", value);
|
||||||
@ -381,7 +344,7 @@ fn debug_callback(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
["print" | "p"] => {
|
["print" | "p"] => {
|
||||||
print_scope(context.scope(), true);
|
println!("{}", context.scope().clone_visible());
|
||||||
if let Some(value) = context.this_ptr() {
|
if let Some(value) = context.this_ptr() {
|
||||||
println!("this = {:?}", value);
|
println!("this = {:?}", value);
|
||||||
}
|
}
|
||||||
|
@ -108,27 +108,6 @@ fn print_keys() {
|
|||||||
println!();
|
println!();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Display the scope.
|
|
||||||
fn print_scope(scope: &Scope) {
|
|
||||||
for (i, (name, constant, value)) in scope.iter_raw().enumerate() {
|
|
||||||
#[cfg(not(feature = "no_closure"))]
|
|
||||||
let value_is_shared = if value.is_shared() { " (shared)" } else { "" };
|
|
||||||
#[cfg(feature = "no_closure")]
|
|
||||||
let value_is_shared = "";
|
|
||||||
|
|
||||||
println!(
|
|
||||||
"[{}] {}{}{} = {:?}",
|
|
||||||
i + 1,
|
|
||||||
if constant { "const " } else { "" },
|
|
||||||
name,
|
|
||||||
value_is_shared,
|
|
||||||
*value.read_lock::<Dynamic>().unwrap(),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
println!();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load script files specified in the command line.
|
// Load script files specified in the command line.
|
||||||
#[cfg(not(feature = "no_module"))]
|
#[cfg(not(feature = "no_module"))]
|
||||||
#[cfg(not(feature = "no_std"))]
|
#[cfg(not(feature = "no_std"))]
|
||||||
@ -458,7 +437,7 @@ fn main() {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
"scope" => {
|
"scope" => {
|
||||||
print_scope(&scope);
|
println!("{}", scope);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
#[cfg(not(feature = "no_optimize"))]
|
#[cfg(not(feature = "no_optimize"))]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user