From d9c42eb194eb48607556b459fb5a337982eafaf1 Mon Sep 17 00:00:00 2001 From: Fernando Herrera Date: Sat, 25 Sep 2021 17:28:15 +0100 Subject: [PATCH] contents declaration --- crates/nu-command/src/default_context.rs | 2 ++ crates/nu-protocol/src/engine/engine_state.rs | 5 +++++ src/main.rs | 3 +++ 3 files changed, 10 insertions(+) diff --git a/crates/nu-command/src/default_context.rs b/crates/nu-command/src/default_context.rs index 5890d791cb..9beee6c1f1 100644 --- a/crates/nu-command/src/default_context.rs +++ b/crates/nu-command/src/default_context.rs @@ -67,6 +67,8 @@ pub fn create_default_context() -> Rc> { working_set.add_decl(sig.predeclare()); let sig = Signature::build("stack"); working_set.add_decl(sig.predeclare()); + let sig = Signature::build("contents"); + working_set.add_decl(sig.predeclare()); working_set.render() }; diff --git a/crates/nu-protocol/src/engine/engine_state.rs b/crates/nu-protocol/src/engine/engine_state.rs index 6a75884289..11941fe428 100644 --- a/crates/nu-protocol/src/engine/engine_state.rs +++ b/crates/nu-protocol/src/engine/engine_state.rs @@ -113,6 +113,11 @@ impl EngineState { } } + pub fn print_contents(&self) { + let string = String::from_utf8_lossy(&self.file_contents); + println!("{}", string); + } + pub fn find_decl(&self, name: &[u8]) -> Option { for scope in self.scope.iter().rev() { if let Some(decl_id) = scope.decls.get(name) { diff --git a/src/main.rs b/src/main.rs index 8824660214..577a9c7211 100644 --- a/src/main.rs +++ b/src/main.rs @@ -102,6 +102,9 @@ fn main() -> Result<()> { } else if s.trim() == "stack" { stack.print_stack(); continue; + } else if s.trim() == "contents" { + engine_state.borrow().print_contents(); + continue; } let (block, delta) = {