mirror of
https://github.com/nushell/nushell
synced 2025-01-15 14:44:14 +00:00
use the tools from pipeline_data.rs
to print true tables
This commit uses the construct from `PipelineData::print` to - get the "declaration ID" of the `table` command - execute that command on the example outputs Then we use the construct from `PipelineData::write_all_and_flush` to - iterate over all the items of the table - print them in a pretty way .# Example output ```nushell > help merge ... Add an 'index' column to the input table > [a b c] | wrap name | merge ( [1 2 3] | wrap index ) ╭───┬──────╮ │ # │ name │ ├───┼──────┤ │ 1 │ a │ │ 2 │ b │ │ 3 │ c │ ╰───┴──────╯ ``` .## Limitations - the format is not perfect for now - the use of private method bodies from `PipelineData` is not ideal
This commit is contained in:
parent
d2633cc59b
commit
005511b424
1 changed files with 14 additions and 3 deletions
|
@ -213,11 +213,22 @@ fn get_documentation(
|
|||
|
||||
match &example.result {
|
||||
Some(result) => {
|
||||
for item in PipelineData::Value(result.clone(), None) {
|
||||
let decl_id = engine_state.find_decl("table".as_bytes(), &[]).unwrap();
|
||||
let table = engine_state
|
||||
.get_decl(decl_id)
|
||||
.run(
|
||||
engine_state,
|
||||
stack,
|
||||
&Call::new(Span::new(0, 0)),
|
||||
PipelineData::Value(result.clone(), None),
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
for item in table {
|
||||
let _ = write!(
|
||||
long_desc,
|
||||
"{}\n",
|
||||
item.into_string("\n", engine_state.get_config())
|
||||
" {}\n",
|
||||
item.into_string("\n ", engine_state.get_config())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue