Improved labeled error from plugins (#437)

* improved labeled error from plugins

* corrected span
This commit is contained in:
Fernando Herrera
2021-12-05 03:11:19 +00:00
committed by GitHub
parent 03e22b071a
commit 22469a9cb1
24 changed files with 611 additions and 208 deletions

View File

@ -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,

View File

@ -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,

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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,

View File

@ -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,

View File

@ -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,

View File

@ -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(),