diff --git a/TODO.md b/TODO.md index 2b755c382..fdbf9c302 100644 --- a/TODO.md +++ b/TODO.md @@ -22,6 +22,8 @@ - [x] Detecting `$it` currently only looks at top scope but should find any free `$it` in the expression (including subexprs) - [x] Signature needs to make parameters visible in scope before block is parsed - [x] Externals +- [x] Modules and imports +- [ ] Exports - [ ] Support for `$in` - [ ] Value serialization - [ ] Handling rows with missing columns during a cell path diff --git a/crates/nu-command/src/alias.rs b/crates/nu-command/src/core_commands/alias.rs similarity index 100% rename from crates/nu-command/src/alias.rs rename to crates/nu-command/src/core_commands/alias.rs diff --git a/crates/nu-command/src/def.rs b/crates/nu-command/src/core_commands/def.rs similarity index 100% rename from crates/nu-command/src/def.rs rename to crates/nu-command/src/core_commands/def.rs diff --git a/crates/nu-command/src/do_.rs b/crates/nu-command/src/core_commands/do_.rs similarity index 100% rename from crates/nu-command/src/do_.rs rename to crates/nu-command/src/core_commands/do_.rs diff --git a/crates/nu-command/src/if_.rs b/crates/nu-command/src/core_commands/if_.rs similarity index 100% rename from crates/nu-command/src/if_.rs rename to crates/nu-command/src/core_commands/if_.rs diff --git a/crates/nu-command/src/let_.rs b/crates/nu-command/src/core_commands/let_.rs similarity index 100% rename from crates/nu-command/src/let_.rs rename to crates/nu-command/src/core_commands/let_.rs diff --git a/crates/nu-command/src/core_commands/mod.rs b/crates/nu-command/src/core_commands/mod.rs new file mode 100644 index 000000000..ac2d4af44 --- /dev/null +++ b/crates/nu-command/src/core_commands/mod.rs @@ -0,0 +1,15 @@ +mod alias; +mod def; +mod do_; +mod if_; +mod let_; +mod module; +mod use_; + +pub use alias::Alias; +pub use def::Def; +pub use do_::Do; +pub use if_::If; +pub use let_::Let; +pub use module::Module; +pub use use_::Use; diff --git a/crates/nu-command/src/module.rs b/crates/nu-command/src/core_commands/module.rs similarity index 100% rename from crates/nu-command/src/module.rs rename to crates/nu-command/src/core_commands/module.rs diff --git a/crates/nu-command/src/use_.rs b/crates/nu-command/src/core_commands/use_.rs similarity index 100% rename from crates/nu-command/src/use_.rs rename to crates/nu-command/src/core_commands/use_.rs diff --git a/crates/nu-command/src/default_context.rs b/crates/nu-command/src/default_context.rs index 48c0d05ab..618ca1c58 100644 --- a/crates/nu-command/src/default_context.rs +++ b/crates/nu-command/src/default_context.rs @@ -6,8 +6,8 @@ use nu_protocol::{ }; use crate::{ - where_::Where, Alias, Benchmark, BuildString, Def, Do, Each, External, For, Git, GitCheckout, - If, Length, Let, LetEnv, Lines, ListGitBranches, Ls, Module, Table, Use, + Alias, Benchmark, BuildString, Def, Do, Each, External, For, Git, GitCheckout, If, Length, Let, + LetEnv, Lines, ListGitBranches, Ls, Module, Table, Use, Where, }; pub fn create_default_context() -> Rc> { diff --git a/crates/nu-command/src/let_env.rs b/crates/nu-command/src/env/let_env.rs similarity index 100% rename from crates/nu-command/src/let_env.rs rename to crates/nu-command/src/env/let_env.rs diff --git a/crates/nu-command/src/env/mod.rs b/crates/nu-command/src/env/mod.rs new file mode 100644 index 000000000..fa42c1b09 --- /dev/null +++ b/crates/nu-command/src/env/mod.rs @@ -0,0 +1,3 @@ +mod let_env; + +pub use let_env::LetEnv; diff --git a/crates/nu-command/src/git.rs b/crates/nu-command/src/experimental/git.rs similarity index 100% rename from crates/nu-command/src/git.rs rename to crates/nu-command/src/experimental/git.rs diff --git a/crates/nu-command/src/git_checkout.rs b/crates/nu-command/src/experimental/git_checkout.rs similarity index 100% rename from crates/nu-command/src/git_checkout.rs rename to crates/nu-command/src/experimental/git_checkout.rs diff --git a/crates/nu-command/src/list_git_branches.rs b/crates/nu-command/src/experimental/list_git_branches.rs similarity index 100% rename from crates/nu-command/src/list_git_branches.rs rename to crates/nu-command/src/experimental/list_git_branches.rs diff --git a/crates/nu-command/src/experimental/mod.rs b/crates/nu-command/src/experimental/mod.rs new file mode 100644 index 000000000..b90a5fd0d --- /dev/null +++ b/crates/nu-command/src/experimental/mod.rs @@ -0,0 +1,7 @@ +mod git; +mod git_checkout; +mod list_git_branches; + +pub use git::Git; +pub use git_checkout::GitCheckout; +pub use list_git_branches::ListGitBranches; diff --git a/crates/nu-command/src/ls.rs b/crates/nu-command/src/filesystem/ls.rs similarity index 100% rename from crates/nu-command/src/ls.rs rename to crates/nu-command/src/filesystem/ls.rs diff --git a/crates/nu-command/src/filesystem/mod.rs b/crates/nu-command/src/filesystem/mod.rs new file mode 100644 index 000000000..d7d2f3046 --- /dev/null +++ b/crates/nu-command/src/filesystem/mod.rs @@ -0,0 +1,3 @@ +mod ls; + +pub use ls::Ls; diff --git a/crates/nu-command/src/each.rs b/crates/nu-command/src/filters/each.rs similarity index 100% rename from crates/nu-command/src/each.rs rename to crates/nu-command/src/filters/each.rs diff --git a/crates/nu-command/src/for_.rs b/crates/nu-command/src/filters/for_.rs similarity index 100% rename from crates/nu-command/src/for_.rs rename to crates/nu-command/src/filters/for_.rs diff --git a/crates/nu-command/src/length.rs b/crates/nu-command/src/filters/length.rs similarity index 100% rename from crates/nu-command/src/length.rs rename to crates/nu-command/src/filters/length.rs diff --git a/crates/nu-command/src/lines.rs b/crates/nu-command/src/filters/lines.rs similarity index 100% rename from crates/nu-command/src/lines.rs rename to crates/nu-command/src/filters/lines.rs diff --git a/crates/nu-command/src/filters/mod.rs b/crates/nu-command/src/filters/mod.rs new file mode 100644 index 000000000..143a57b65 --- /dev/null +++ b/crates/nu-command/src/filters/mod.rs @@ -0,0 +1,11 @@ +mod each; +mod for_; +mod length; +mod lines; +mod where_; + +pub use each::Each; +pub use for_::For; +pub use length::Length; +pub use lines::Lines; +pub use where_::Where; diff --git a/crates/nu-command/src/where_.rs b/crates/nu-command/src/filters/where_.rs similarity index 100% rename from crates/nu-command/src/where_.rs rename to crates/nu-command/src/filters/where_.rs diff --git a/crates/nu-command/src/lib.rs b/crates/nu-command/src/lib.rs index a96a41ec3..0bfddbcaa 100644 --- a/crates/nu-command/src/lib.rs +++ b/crates/nu-command/src/lib.rs @@ -1,44 +1,19 @@ -mod alias; -mod benchmark; -mod build_string; -mod def; +mod core_commands; mod default_context; -mod do_; -mod each; -mod for_; -mod git; -mod git_checkout; -mod if_; -mod length; -mod let_; -mod let_env; -mod lines; -mod list_git_branches; -mod ls; -mod module; -mod run_external; -mod table; -mod use_; -mod where_; +mod env; +mod experimental; +mod filesystem; +mod filters; +mod strings; +mod system; +mod viewers; -pub use alias::Alias; -pub use benchmark::Benchmark; -pub use build_string::BuildString; -pub use def::Def; -pub use default_context::create_default_context; -pub use do_::Do; -pub use each::Each; -pub use for_::For; -pub use git::Git; -pub use git_checkout::GitCheckout; -pub use if_::If; -pub use length::Length; -pub use let_::Let; -pub use let_env::LetEnv; -pub use lines::Lines; -pub use list_git_branches::ListGitBranches; -pub use ls::Ls; -pub use module::Module; -pub use run_external::External; -pub use table::Table; -pub use use_::Use; +pub use core_commands::*; +pub use default_context::*; +pub use env::*; +pub use experimental::*; +pub use filesystem::*; +pub use filters::*; +pub use strings::*; +pub use system::*; +pub use viewers::*; diff --git a/crates/nu-command/src/build_string.rs b/crates/nu-command/src/strings/build_string.rs similarity index 100% rename from crates/nu-command/src/build_string.rs rename to crates/nu-command/src/strings/build_string.rs diff --git a/crates/nu-command/src/strings/mod.rs b/crates/nu-command/src/strings/mod.rs new file mode 100644 index 000000000..8691acce1 --- /dev/null +++ b/crates/nu-command/src/strings/mod.rs @@ -0,0 +1,3 @@ +mod build_string; + +pub use build_string::BuildString; diff --git a/crates/nu-command/src/benchmark.rs b/crates/nu-command/src/system/benchmark.rs similarity index 100% rename from crates/nu-command/src/benchmark.rs rename to crates/nu-command/src/system/benchmark.rs diff --git a/crates/nu-command/src/system/mod.rs b/crates/nu-command/src/system/mod.rs new file mode 100644 index 000000000..b1d9f28e1 --- /dev/null +++ b/crates/nu-command/src/system/mod.rs @@ -0,0 +1,5 @@ +mod benchmark; +mod run_external; + +pub use benchmark::Benchmark; +pub use run_external::{External, ExternalCommand}; diff --git a/crates/nu-command/src/run_external.rs b/crates/nu-command/src/system/run_external.rs similarity index 100% rename from crates/nu-command/src/run_external.rs rename to crates/nu-command/src/system/run_external.rs diff --git a/crates/nu-command/src/viewers/mod.rs b/crates/nu-command/src/viewers/mod.rs new file mode 100644 index 000000000..0ed645008 --- /dev/null +++ b/crates/nu-command/src/viewers/mod.rs @@ -0,0 +1,3 @@ +mod table; + +pub use table::Table; diff --git a/crates/nu-command/src/table.rs b/crates/nu-command/src/viewers/table.rs similarity index 100% rename from crates/nu-command/src/table.rs rename to crates/nu-command/src/viewers/table.rs