mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 14:40:06 +02:00
Better generic errors for plugins (and perhaps scripts) (#12236)
# Description This makes `LabeledError` much more capable of representing close to everything a `miette::Diagnostic` can, including `ShellError`, and allows plugins to generate multiple error spans, codes, help, etc. `LabeledError` is now embeddable within `ShellError` as a transparent variant. This could also be used to improve `error make` and `try/catch` to reflect `LabeledError` exactly in the future. Also cleaned up some errors in existing plugins. # User-Facing Changes Breaking change for plugins. Nicer errors for users.
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, LabeledError, SimplePluginCommand};
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, SimplePluginCommand};
|
||||
use nu_protocol::{
|
||||
record, Category, CustomValue, PluginSignature, ShellError, Span, SyntaxShape, Value,
|
||||
record, Category, CustomValue, LabeledError, PluginSignature, ShellError, Span, SyntaxShape,
|
||||
Value,
|
||||
};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
use crate::{cool_custom_value::CoolCustomValue, CustomValuePlugin};
|
||||
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, LabeledError, SimplePluginCommand};
|
||||
use nu_protocol::{Category, PluginExample, PluginSignature, Span, Value};
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, SimplePluginCommand};
|
||||
use nu_protocol::{Category, LabeledError, PluginExample, PluginSignature, Span, Value};
|
||||
|
||||
pub struct Generate;
|
||||
|
||||
|
@ -1,7 +1,9 @@
|
||||
use crate::{second_custom_value::SecondCustomValue, CustomValuePlugin};
|
||||
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, LabeledError, SimplePluginCommand};
|
||||
use nu_protocol::{Category, PluginExample, PluginSignature, Span, SyntaxShape, Value};
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, SimplePluginCommand};
|
||||
use nu_protocol::{
|
||||
Category, LabeledError, PluginExample, PluginSignature, Span, SyntaxShape, Value,
|
||||
};
|
||||
|
||||
pub struct Generate2;
|
||||
|
||||
|
@ -1,6 +1,4 @@
|
||||
use nu_plugin::{
|
||||
serve_plugin, EngineInterface, LabeledError, MsgPackSerializer, Plugin, PluginCommand,
|
||||
};
|
||||
use nu_plugin::{serve_plugin, EngineInterface, MsgPackSerializer, Plugin, PluginCommand};
|
||||
|
||||
mod cool_custom_value;
|
||||
mod second_custom_value;
|
||||
@ -14,7 +12,7 @@ mod update_arg;
|
||||
use drop_check::{DropCheck, DropCheckValue};
|
||||
use generate::Generate;
|
||||
use generate2::Generate2;
|
||||
use nu_protocol::CustomValue;
|
||||
use nu_protocol::{CustomValue, LabeledError};
|
||||
use update::Update;
|
||||
use update_arg::UpdateArg;
|
||||
|
||||
|
@ -2,8 +2,10 @@ use crate::{
|
||||
cool_custom_value::CoolCustomValue, second_custom_value::SecondCustomValue, CustomValuePlugin,
|
||||
};
|
||||
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, LabeledError, SimplePluginCommand};
|
||||
use nu_protocol::{Category, PluginExample, PluginSignature, ShellError, Span, Value};
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, SimplePluginCommand};
|
||||
use nu_protocol::{
|
||||
Category, LabeledError, PluginExample, PluginSignature, ShellError, Span, Value,
|
||||
};
|
||||
|
||||
pub struct Update;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
use crate::{update::Update, CustomValuePlugin};
|
||||
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, LabeledError, SimplePluginCommand};
|
||||
use nu_protocol::{Category, PluginSignature, SyntaxShape, Value};
|
||||
use nu_plugin::{EngineInterface, EvaluatedCall, SimplePluginCommand};
|
||||
use nu_protocol::{Category, LabeledError, PluginSignature, SyntaxShape, Value};
|
||||
|
||||
pub struct UpdateArg;
|
||||
|
||||
|
Reference in New Issue
Block a user