forked from extern/nushell
Allow open to work with 'from ...' block commands (#5049)
* Remove panic from BlockCommands run function Instead of panicing, the run method now returns an error to prevent nushell from unexpected termination. * Add ability to open command to run with blocks The open command tries to parse the content of the file if there is a command called 'from (file ending)'. This works fine if the command was 'built in' because the run method doesn't fail in this case. It did fail on a BlockCommand, though. This change will first probe if the command contains a block and evaluate it, if this is the case. If there is no block, it will run the command the same way as before. * Add test open files with BlockCommands * Update open.rs * Adjust file type on open with BlockCommand parser Co-authored-by: JT <547158+jntrnr@users.noreply.github.com>
This commit is contained in:
@ -8,6 +8,7 @@ use crate::engine::EngineState;
|
||||
use crate::engine::Stack;
|
||||
use crate::BlockId;
|
||||
use crate::PipelineData;
|
||||
use crate::ShellError;
|
||||
use crate::SyntaxShape;
|
||||
use crate::VarId;
|
||||
|
||||
@ -548,7 +549,9 @@ impl Command for BlockCommand {
|
||||
_call: &Call,
|
||||
_input: PipelineData,
|
||||
) -> Result<crate::PipelineData, crate::ShellError> {
|
||||
panic!("Internal error: can't run custom command with 'run', use block_id");
|
||||
Err(ShellError::UnlabeledError(
|
||||
"Internal error: can't run custom command with 'run', use block_id".to_string(),
|
||||
))
|
||||
}
|
||||
|
||||
fn get_block_id(&self) -> Option<BlockId> {
|
||||
|
Reference in New Issue
Block a user