diff --git a/Cargo.toml b/Cargo.toml index 5181af9..6380023 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,11 +10,12 @@ authors = ["trivernis "] # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -miette = "5.5.0" -nu-command = "0.75.0" -nu-engine = "0.75.0" -nu-parser = "0.75.0" -nu-protocol = "0.75.0" -paste = "1.0.11" +miette = "5.7.0" +nu-cmd-lang = "0.78.0" +nu-command = "0.78.0" +nu-engine = "0.78.0" +nu-parser = "0.78.0" +nu-protocol = "0.78.0" +paste = "1.0.12" rusty-value = { version = "0.6.0", features = ["derive"] } -thiserror = "1.0.38" +thiserror = "1.0.40" diff --git a/src/context/bindings.rs b/src/context/bindings.rs index b9953d1..4557754 100644 --- a/src/context/bindings.rs +++ b/src/context/bindings.rs @@ -1,25 +1,27 @@ +use nu_cmd_lang::*; use nu_command::*; use nu_protocol::engine::{EngineState, StateWorkingSet}; use crate::error::CrateResult; macro_rules! bind_commands { - ($engine_state:expr, $( $command:expr),* $(,)? ) => { - bind($engine_state, |working_set| { - $( working_set.add_decl(Box::new($command)); )* - }) - }; - } + ($engine_state:expr, $( $command:expr),* $(,)? ) => { + bind($engine_state, |working_set| { + $( working_set.add_decl(Box::new($command)); )* + }) + }; +} pub fn bind_core_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands!( engine_state, + Metadata, Alias, - Ast, Break, + Collect, Commandline, + Const, Continue, - Debug, Def, DefEnv, Describe, @@ -35,6 +37,10 @@ pub fn bind_core_commands(engine_state: &mut EngineState) -> CrateResult<()> { Extern, For, Help, + HelpAliases, + HelpCommands, + HelpModules, + HelpExterns, HelpOperators, Hide, HideEnv, @@ -46,7 +52,8 @@ pub fn bind_core_commands(engine_state: &mut EngineState) -> CrateResult<()> { OverlayNew, OverlayHide, Let, - Metadata, + Loop, + Match, Module, Mut, Return, @@ -57,6 +64,23 @@ pub fn bind_core_commands(engine_state: &mut EngineState) -> CrateResult<()> { ) } +pub fn bind_debug_commands(engine_state: &mut EngineState) -> CrateResult<()> { + bind_commands!( + engine_state, + Ast, + Debug, + Explain, + Inspect, + Metadata, + Profile, + TimeIt, + View, + ViewFiles, + ViewSource, + ViewSpan, + ) +} + pub fn bind_chart_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands!(engine_state, Histogram) } @@ -64,67 +88,72 @@ pub fn bind_chart_commands(engine_state: &mut EngineState) -> CrateResult<()> { pub fn bind_filter_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - All, - Any, - Append, - Collect, - Columns, - Compact, - Default, - Drop, - DropColumn, - DropNth, - Each, - EachWhile, - Empty, - Every, - Find, - First, - Flatten, - Get, - Group, - GroupBy, - Headers, - Insert, - SplitBy, - Take, - Merge, - Move, - TakeWhile, - TakeUntil, - Last, - Length, - Lines, - ParEach, - Prepend, - Range, - Reduce, - Reject, - Rename, - Reverse, - Roll, - RollDown, - RollUp, - RollLeft, - RollRight, - Rotate, - Select, - Shuffle, - Skip, - SkipUntil, - SkipWhile, - Sort, - SortBy, - SplitList, - Transpose, - Uniq, - Upsert, - Update, - UpdateCells, - Where, - Window, - Wrap, - Zip, } + All, + Any, + Append, + Columns, + Compact, + Default, + Drop, + DropColumn, + DropNth, + Each, + EachWhile, + Empty, + Enumerate, + Every, + Filter, + Find, + First, + Flatten, + Get, + Group, + GroupBy, + Headers, + Insert, + Join, + SplitBy, + Take, + Merge, + Move, + TakeWhile, + TakeUntil, + Last, + Length, + Lines, + ParEach, + Prepend, + Range, + Reduce, + Reject, + Rename, + Reverse, + Roll, + RollDown, + RollUp, + RollLeft, + RollRight, + Rotate, + Select, + Shuffle, + Skip, + SkipUntil, + SkipWhile, + Sort, + SortBy, + SplitList, + Transpose, + Uniq, + UniqBy, + Upsert, + Update, + UpdateCells, + Values, + Where, + Window, + Wrap, + Zip, + } } pub fn bind_misc_commands(engine_state: &mut EngineState) -> CrateResult<()> { @@ -134,16 +163,16 @@ pub fn bind_misc_commands(engine_state: &mut EngineState) -> CrateResult<()> { pub fn bind_path_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - Path, - PathBasename, - PathDirname, - PathExists, - PathExpand, - PathJoin, - PathParse, - PathRelativeTo, - PathSplit, - PathType, + Path, + PathBasename, + PathDirname, + PathExists, + PathExpand, + PathJoin, + PathParse, + PathRelativeTo, + PathSplit, + PathType, } } @@ -151,7 +180,6 @@ pub fn bind_path_commands(engine_state: &mut EngineState) -> CrateResult<()> { pub fn bind_system_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - Benchmark, Complete, External, NuCheck, @@ -166,7 +194,6 @@ pub fn bind_system_commands(engine_state: &mut EngineState) -> CrateResult<()> { pub fn bind_system_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - Benchmark, Complete, External, NuCheck, @@ -181,7 +208,6 @@ pub fn bind_system_commands(engine_state: &mut EngineState) -> CrateResult<()> { pub fn bind_system_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - Benchmark, Complete, External, NuCheck, @@ -194,45 +220,44 @@ pub fn bind_system_commands(engine_state: &mut EngineState) -> CrateResult<()> { pub fn bind_string_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - Char, - Decode, - Encode, - DecodeBase64, - EncodeBase64, - DetectColumns, - Format, - FileSize, - Parse, - Size, - Split, - SplitChars, - SplitColumn, - SplitRow, - SplitWords, - Str, - StrCamelCase, - StrCapitalize, - StrCollect, - StrContains, - StrDistance, - StrDowncase, - StrEndswith, - StrJoin, - StrReplace, - StrIndexOf, - StrKebabCase, - StrLength, - StrLpad, - StrPascalCase, - StrReverse, - StrRpad, - StrScreamingSnakeCase, - StrSnakeCase, - StrStartsWith, - StrSubstring, - StrTrim, - StrTitleCase, - StrUpcase, + Char, + Decode, + Encode, + DecodeBase64, + EncodeBase64, + DecodeHex, + EncodeHex, + DetectColumns, + Format, + FileSize, + Parse, + Size, + Split, + SplitChars, + SplitColumn, + SplitRow, + SplitWords, + Str, + StrCamelCase, + StrCapitalize, + StrContains, + StrDistance, + StrDowncase, + StrEndswith, + StrJoin, + StrReplace, + StrIndexOf, + StrKebabCase, + StrLength, + StrPascalCase, + StrReverse, + StrScreamingSnakeCase, + StrSnakeCase, + StrStartsWith, + StrSubstring, + StrTrim, + StrTitleCase, + StrUpcase } } @@ -334,38 +359,33 @@ pub fn bind_shell_commands(engine_state: &mut EngineState) -> CrateResult<()> { pub fn bind_format_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - From, - FromCsv, - FromEml, - FromIcs, - FromIni, - FromJson, - FromNuon, - FromOds, - FromSsv, - FromToml, - FromTsv, - FromUrl, - FromVcf, - FromXlsx, - FromXml, - FromYaml, - FromYml, - To, - ToCsv, - ToHtml, - ToJson, - ToMd, - ToNuon, - ToText, - ToToml, - ToTsv, - Touch, - Use, - Upsert, - Where, - ToXml, - ToYaml, + From, + FromCsv, + FromJson, + FromNuon, + FromOds, + FromSsv, + FromToml, + FromTsv, + FromUrl, + FromXlsx, + FromXml, + FromYaml, + FromYml, + To, + ToCsv, + ToHtml, + ToJson, + ToMd, + ToNuon, + ToText, + ToToml, + ToTsv, + Touch, + Upsert, + Where, + ToXml, + ToYaml, } } @@ -374,12 +394,14 @@ pub fn bind_viewer_commands(engine_state: &mut EngineState) -> CrateResult<()> { engine_state, Griddle, Table, + Explore, } } pub fn bind_conversion_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, + Fill, Fmt, Into, IntoBool, @@ -397,12 +419,11 @@ pub fn bind_conversion_commands(engine_state: &mut EngineState) -> CrateResult<( pub fn bind_environment_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - Env, - ExportEnv, - LetEnv, - LoadEnv, - SourceEnv, - WithEnv, + ExportEnv, + LetEnv, + LoadEnv, + SourceEnv, + WithEnv, // nu config commands have been removed as editing isn't possible // in this environment } @@ -411,30 +432,58 @@ pub fn bind_environment_commands(engine_state: &mut EngineState) -> CrateResult< pub fn bind_math_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - Math, - MathAbs, - MathAvg, - MathCeil, - MathFloor, - MathMax, - MathMedian, - MathMin, - MathMode, - MathProduct, - MathRound, - MathSqrt, - MathStddev, - MathSum, - MathVariance, + Math, + MathAbs, + MathAvg, + MathCeil, + MathFloor, + MathMax, + MathMedian, + MathMin, + MathMode, + MathProduct, + MathRound, + MathSqrt, + MathStddev, + MathSum, + MathVariance, + MathSin, + MathCos, + MathTan, + MathSinH, + MathCosH, + MathTanH, + MathArcSin, + MathArcCos, + MathArcTan, + MathArcSinH, + MathArcCosH, + MathArcTanH, + MathPi, + MathTau, + MathEuler, + MathExp, + MathLn, + MathLog, } } pub fn bind_network_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - Url, - UrlParse, - Port, + Http, + HttpDelete, + HttpGet, + HttpHead, + HttpPatch, + HttpPost, + HttpPut, + Url, + UrlBuildQuery, + UrlEncode, + UrlJoin, + UrlParse, + Port, } } @@ -473,7 +522,6 @@ pub fn bind_hash_commands(engine_state: &mut EngineState) -> CrateResult<()> { pub fn bind_experimental_commands(engine_state: &mut EngineState) -> CrateResult<()> { bind_commands! { engine_state, - ViewSource, IsAdmin, } } diff --git a/src/context/builder.rs b/src/context/builder.rs index c28d5e1..8ad6993 100644 --- a/src/context/builder.rs +++ b/src/context/builder.rs @@ -47,6 +47,7 @@ impl ContextBuilder { toggle_command_groups!( core, + debug, filter, chart, misc, diff --git a/src/context/command_group_config.rs b/src/context/command_group_config.rs index 7eb8acc..f69fb1d 100644 --- a/src/context/command_group_config.rs +++ b/src/context/command_group_config.rs @@ -36,6 +36,8 @@ macro_rules! command_group_config { command_group_config!( /// Enables core commands core, + /// Enables debug commands + debug, /// Enables filter commands filter, /// Enables chart commands