forked from extern/nushell
Improved labeled error from plugins (#437)
* improved labeled error from plugins * corrected span
This commit is contained in:
@ -38,7 +38,7 @@ impl Command for Hide {
|
||||
{
|
||||
pat
|
||||
} else {
|
||||
return Err(ShellError::LabeledError(
|
||||
return Err(ShellError::SpannedLabeledError(
|
||||
"Unexpected import".into(),
|
||||
"import pattern not supported".into(),
|
||||
call.head,
|
||||
|
@ -35,7 +35,7 @@ impl Command for Use {
|
||||
{
|
||||
pat
|
||||
} else {
|
||||
return Err(ShellError::LabeledError(
|
||||
return Err(ShellError::SpannedLabeledError(
|
||||
"Unexpected import".into(),
|
||||
"import pattern not supported".into(),
|
||||
call.head,
|
||||
|
@ -83,32 +83,32 @@ impl Command for Cp {
|
||||
let prompt = format!(
|
||||
"Are you shure that you want to copy {} to {}?",
|
||||
file.as_ref()
|
||||
.map_err(|err| ShellError::LabeledError(
|
||||
.map_err(|err| ShellError::SpannedLabeledError(
|
||||
"Reference error".into(),
|
||||
err.to_string(),
|
||||
call.head
|
||||
))?
|
||||
.file_name()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"File name error".into(),
|
||||
"Unable to get file name".into(),
|
||||
call.head
|
||||
))?
|
||||
.to_str()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"Unable to get str error".into(),
|
||||
"Unable to convert to str file name".into(),
|
||||
call.head
|
||||
))?,
|
||||
destination
|
||||
.file_name()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"File name error".into(),
|
||||
"Unable to get file name".into(),
|
||||
call.head
|
||||
))?
|
||||
.to_str()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"Unable to get str error".into(),
|
||||
"Unable to convert to str file name".into(),
|
||||
call.head
|
||||
|
@ -56,7 +56,7 @@ impl Command for Ls {
|
||||
|
||||
let call_span = call.head;
|
||||
let glob = glob::glob(&pattern).map_err(|err| {
|
||||
nu_protocol::ShellError::LabeledError(
|
||||
nu_protocol::ShellError::SpannedLabeledError(
|
||||
"Error extracting glob pattern".into(),
|
||||
err.to_string(),
|
||||
call.head,
|
||||
|
@ -67,32 +67,32 @@ impl Command for Mv {
|
||||
let prompt = format!(
|
||||
"Are you shure that you want to move {} to {}?",
|
||||
file.as_ref()
|
||||
.map_err(|err| ShellError::LabeledError(
|
||||
.map_err(|err| ShellError::SpannedLabeledError(
|
||||
"Reference error".into(),
|
||||
err.to_string(),
|
||||
call.head
|
||||
))?
|
||||
.file_name()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"File name error".into(),
|
||||
"Unable to get file name".into(),
|
||||
call.head
|
||||
))?
|
||||
.to_str()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"Unable to get str error".into(),
|
||||
"Unable to convert to str file name".into(),
|
||||
call.head
|
||||
))?,
|
||||
destination
|
||||
.file_name()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"File name error".into(),
|
||||
"Unable to get file name".into(),
|
||||
call.head
|
||||
))?
|
||||
.to_str()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"Unable to get str error".into(),
|
||||
"Unable to convert to str file name".into(),
|
||||
call.head
|
||||
|
@ -126,13 +126,13 @@ fn rm(
|
||||
"Are you sure that you what to delete {}?",
|
||||
file.1
|
||||
.file_name()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"File name error".into(),
|
||||
"Unable to get file name".into(),
|
||||
call.head
|
||||
))?
|
||||
.to_str()
|
||||
.ok_or_else(|| ShellError::LabeledError(
|
||||
.ok_or_else(|| ShellError::SpannedLabeledError(
|
||||
"Unable to get str error".into(),
|
||||
"Unable to convert to str file name".into(),
|
||||
call.head
|
||||
@ -188,7 +188,7 @@ fn rm_helper(call: &Call, args: RmArgs) -> Vec<Value> {
|
||||
{
|
||||
if trash {
|
||||
let error = match call.get_flag_expr("trash").ok_or_else(|| {
|
||||
ShellError::LabeledError(
|
||||
ShellError::SpannedLabeledError(
|
||||
"Flag not found".into(),
|
||||
"trash flag not found".into(),
|
||||
call.head,
|
||||
|
@ -75,7 +75,7 @@ fn first_helper(
|
||||
match input_peek
|
||||
.peek()
|
||||
.ok_or_else(|| {
|
||||
ShellError::LabeledError(
|
||||
ShellError::SpannedLabeledError(
|
||||
"Error in first".into(),
|
||||
"unable to pick on next value".into(),
|
||||
call.head,
|
||||
|
@ -87,7 +87,7 @@ impl Command for Kill {
|
||||
left_span: call
|
||||
.get_named_arg("force")
|
||||
.ok_or_else(|| {
|
||||
ShellError::LabeledError(
|
||||
ShellError::SpannedLabeledError(
|
||||
"Flag error".into(),
|
||||
"flag force not found".into(),
|
||||
call.head,
|
||||
@ -98,7 +98,7 @@ impl Command for Kill {
|
||||
right_span: span(&[
|
||||
call.get_named_arg("signal")
|
||||
.ok_or_else(|| {
|
||||
ShellError::LabeledError(
|
||||
ShellError::SpannedLabeledError(
|
||||
"Flag error".into(),
|
||||
"flag signal not found".into(),
|
||||
call.head,
|
||||
|
@ -140,7 +140,7 @@ pub fn icon_for_file(file_path: &Path) -> Result<char, ShellError> {
|
||||
let str = file_path
|
||||
.file_name()
|
||||
.ok_or_else(|| {
|
||||
ShellError::LabeledError(
|
||||
ShellError::SpannedLabeledError(
|
||||
"File name error".into(),
|
||||
"Unable to get file name".into(),
|
||||
Span::unknown(),
|
||||
@ -148,7 +148,7 @@ pub fn icon_for_file(file_path: &Path) -> Result<char, ShellError> {
|
||||
})?
|
||||
.to_str()
|
||||
.ok_or_else(|| {
|
||||
ShellError::LabeledError(
|
||||
ShellError::SpannedLabeledError(
|
||||
"Unable to get str error".into(),
|
||||
"Unable to convert to str file name".into(),
|
||||
Span::unknown(),
|
||||
@ -164,7 +164,7 @@ pub fn icon_for_file(file_path: &Path) -> Result<char, ShellError> {
|
||||
Ok(icon)
|
||||
} else if let Some(ext) = file_path.extension().as_ref() {
|
||||
let str = ext.to_str().ok_or_else(|| {
|
||||
ShellError::LabeledError(
|
||||
ShellError::SpannedLabeledError(
|
||||
"Unable to get str error".into(),
|
||||
"Unable to convert to str file name".into(),
|
||||
Span::unknown(),
|
||||
|
Reference in New Issue
Block a user