From 0377efdc16335d2fdd741e0b740e7767dce2fbd6 Mon Sep 17 00:00:00 2001 From: Lander Brandt Date: Tue, 24 Sep 2019 18:01:38 -0700 Subject: [PATCH 01/11] feat(cli): add `ctrlc_exit` config option This feature allows a user to set `ctrlc_exit` to `true` or `false` in their config to override how multiple CTRL-C invocations are handled. Without this change pressing CTRL-C multiple times will exit nu. With this change applied the user can configure the behavior to behave like other shells where multiple invocations will essentially clear the line. This fixes #457. --- src/cli.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/cli.rs b/src/cli.rs index 31017ac6a..b78c44c78 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -405,6 +405,18 @@ pub async fn cli() -> Result<(), Box> { } LineResult::CtrlC => { + let config_ctrlc_exit = config::config(Tag::unknown())? + .get("ctrlc_exit") + .map(|s| match s.as_string().unwrap().as_ref() { + "true" => true, + _ => false, + }) + .unwrap_or(false); // default behavior is to allow CTRL-C spamming similar to other shells + + if !config_ctrlc_exit { + continue; + } + if ctrlcbreak { let _ = rl.save_history(&History::path()); std::process::exit(0); From a492b019fe6e545273edd0332eb31d5fd7658314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20N=2E=20Robalino?= Date: Wed, 25 Sep 2019 11:15:00 -0500 Subject: [PATCH 02/11] Commands documenting instructions. --- docs/commands/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 docs/commands/README.md diff --git a/docs/commands/README.md b/docs/commands/README.md new file mode 100644 index 000000000..d3834c314 --- /dev/null +++ b/docs/commands/README.md @@ -0,0 +1,19 @@ +# How do I get started? + +Pick any command from the checklist and write a comment acknowleding you started work. + +# Instructions for documenting a Nu command of your choosing + +Name the file after the command, like so: + +`command.md` + +Example: If you want to add documentation for the Nu command `enter`, create a file named `enter.md`, write documentation, save and create your pull request. + +# What kind of documentation should I write? + +Anything you want that you believe it *best* documents the command and the way you would like to see it. Here are some of our ideas of documentation we would *love* to see (feel free to add yours): + +* Examples of using the command (max creativity welcomed!) +* Description of the command + From f85968aba41ea62ecae4cf255d17a6c112d72fd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20N=2E=20Robalino?= Date: Wed, 25 Sep 2019 11:35:58 -0500 Subject: [PATCH 03/11] More command documentation instructions. --- docs/commands/README.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/commands/README.md b/docs/commands/README.md index d3834c314..68ef658ca 100644 --- a/docs/commands/README.md +++ b/docs/commands/README.md @@ -1,6 +1,6 @@ # How do I get started? -Pick any command from the checklist and write a comment acknowleding you started work. +Pick any command from the checklist and write a comment acknowledging you started work. # Instructions for documenting a Nu command of your choosing @@ -8,12 +8,18 @@ Name the file after the command, like so: `command.md` -Example: If you want to add documentation for the Nu command `enter`, create a file named `enter.md`, write documentation, save and create your pull request. +Example: If you want to add documentation for the Nu command `enter`, create a file named `enter.md`, write documentation, save it at `/docs/commands/[your_command_picked].md` as and create your pull request. # What kind of documentation should I write? Anything you want that you believe it *best* documents the command and the way you would like to see it. Here are some of our ideas of documentation we would *love* to see (feel free to add yours): * Examples of using the command (max creativity welcomed!) -* Description of the command +* Description of the command. +* Command usage. +# Anything else? + +Of course! (These are drafts) so feel free to leave feedback and suggestions in the same file. + +Happy Documenting. From 9891e5ab81b117661f1ffee32605522acc66fa63 Mon Sep 17 00:00:00 2001 From: est31 Date: Thu, 26 Sep 2019 02:22:17 +0200 Subject: [PATCH 04/11] Use async-stream crate to replace most async_stream_block invocations --- Cargo.lock | 22 ++++++++++++++++++++++ Cargo.toml | 1 + src/commands/enter.rs | 2 +- src/commands/fetch.rs | 2 +- src/commands/from_bson.rs | 2 +- src/commands/from_csv.rs | 2 +- src/commands/from_ini.rs | 2 +- src/commands/from_json.rs | 2 +- src/commands/from_sqlite.rs | 2 +- src/commands/from_toml.rs | 2 +- src/commands/from_tsv.rs | 2 +- src/commands/from_url.rs | 2 +- src/commands/from_xml.rs | 2 +- src/commands/from_yaml.rs | 2 +- src/commands/last.rs | 2 +- src/commands/open.rs | 2 +- src/commands/pivot.rs | 2 +- src/commands/post.rs | 2 +- src/commands/sort_by.rs | 2 +- src/commands/to_bson.rs | 2 +- src/commands/to_csv.rs | 2 +- src/commands/to_json.rs | 2 +- src/commands/to_sqlite.rs | 2 +- src/commands/to_toml.rs | 2 +- src/commands/to_tsv.rs | 2 +- src/commands/to_url.rs | 2 +- src/commands/to_yaml.rs | 2 +- src/lib.rs | 1 + src/prelude.rs | 1 + 29 files changed, 50 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8db4a1808..c0730ef12 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -53,6 +53,25 @@ dependencies = [ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ] +[[package]] +name = "async-stream" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "async-stream-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "futures-core-preview 0.3.0-alpha.18 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "async-stream-impl" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", + "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", + "syn 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "atty" version = "0.2.13" @@ -1516,6 +1535,7 @@ version = "0.3.0" dependencies = [ "ansi_term 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", "app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "async-stream 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", "battery 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "bigdecimal 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3003,6 +3023,8 @@ dependencies = [ "checksum app_dirs 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e73a24bad9bd6a94d6395382a6c69fe071708ae4409f763c5475e14ee896313d" "checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee" "checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba" +"checksum async-stream 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "650be9b667e47506c42ee53034fb1935443cb2447a3a5c0a75e303d2e756fa73" +"checksum async-stream-impl 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4f0d8c5b411e36dcfb04388bacfec54795726b1f0148adcb0f377a96d6747e0e" "checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90" "checksum autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "22130e92352b948e7e82a49cdb0aa94f2211761117f29e052dd397c1ac33542b" "checksum backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)" = "b5164d292487f037ece34ec0de2fcede2faa162f085dd96d2385ab81b12765ba" diff --git a/Cargo.toml b/Cargo.toml index 132aad239..84b84ca41 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,6 +28,7 @@ byte-unit = "3.0.1" base64 = "0.10.1" futures-preview = { version = "=0.3.0-alpha.18", features = ["compat", "io-compat"] } futures-async-stream = "=0.1.0-alpha.5" +async-stream = "0.1.1" futures_codec = "0.2.5" num-traits = "0.2.8" term = "0.5.2" diff --git a/src/commands/enter.rs b/src/commands/enter.rs index 9388abb94..923715d13 100644 --- a/src/commands/enter.rs +++ b/src/commands/enter.rs @@ -61,7 +61,7 @@ impl PerItemCommand for Enter { )))] .into()) } else { - let stream = async_stream_block! { + let stream = async_stream! { // If it's a file, attempt to open the file as a value and enter it let cwd = raw_args.shell_manager.path(); diff --git a/src/commands/fetch.rs b/src/commands/fetch.rs index 79806e76b..886d6bd95 100644 --- a/src/commands/fetch.rs +++ b/src/commands/fetch.rs @@ -58,7 +58,7 @@ fn run( let registry = registry.clone(); let raw_args = raw_args.clone(); - let stream = async_stream_block! { + let stream = async_stream! { let result = fetch(&path_str, path_span).await; diff --git a/src/commands/from_bson.rs b/src/commands/from_bson.rs index a4171e3fe..7dd00983f 100644 --- a/src/commands/from_bson.rs +++ b/src/commands/from_bson.rs @@ -201,7 +201,7 @@ fn from_bson(args: CommandArgs, registry: &CommandRegistry) -> Result> = input.values.collect().await; for value in values { diff --git a/src/commands/from_csv.rs b/src/commands/from_csv.rs index 68296eb11..ea90ab3de 100644 --- a/src/commands/from_csv.rs +++ b/src/commands/from_csv.rs @@ -88,7 +88,7 @@ fn from_csv( ) -> Result { let name_tag = name; - let stream = async_stream_block! { + let stream = async_stream! { let values: Vec> = input.values.collect().await; let mut concat_string = String::new(); diff --git a/src/commands/from_ini.rs b/src/commands/from_ini.rs index 8409cf848..d53ad6777 100644 --- a/src/commands/from_ini.rs +++ b/src/commands/from_ini.rs @@ -67,7 +67,7 @@ fn from_ini(args: CommandArgs, registry: &CommandRegistry) -> Result> = input.values.collect().await; let mut concat_string = String::new(); diff --git a/src/commands/from_json.rs b/src/commands/from_json.rs index ab70685f2..dae288a89 100644 --- a/src/commands/from_json.rs +++ b/src/commands/from_json.rs @@ -74,7 +74,7 @@ fn from_json( ) -> Result { let name_tag = name; - let stream = async_stream_block! { + let stream = async_stream! { let values: Vec> = input.values.collect().await; let mut concat_string = String::new(); diff --git a/src/commands/from_sqlite.rs b/src/commands/from_sqlite.rs index e88057191..20d087bd5 100644 --- a/src/commands/from_sqlite.rs +++ b/src/commands/from_sqlite.rs @@ -131,7 +131,7 @@ fn from_sqlite(args: CommandArgs, registry: &CommandRegistry) -> Result> = input.values.collect().await; for value in values { diff --git a/src/commands/from_toml.rs b/src/commands/from_toml.rs index 29db38a77..c0098d926 100644 --- a/src/commands/from_toml.rs +++ b/src/commands/from_toml.rs @@ -71,7 +71,7 @@ pub fn from_toml( let tag = args.name_tag(); let input = args.input; - let stream = async_stream_block! { + let stream = async_stream! { let values: Vec> = input.values.collect().await; let mut concat_string = String::new(); diff --git a/src/commands/from_tsv.rs b/src/commands/from_tsv.rs index 66f070a5d..bba532d17 100644 --- a/src/commands/from_tsv.rs +++ b/src/commands/from_tsv.rs @@ -89,7 +89,7 @@ fn from_tsv( ) -> Result { let name_tag = name; - let stream = async_stream_block! { + let stream = async_stream! { let values: Vec> = input.values.collect().await; let mut concat_string = String::new(); diff --git a/src/commands/from_url.rs b/src/commands/from_url.rs index 81113a83d..662508deb 100644 --- a/src/commands/from_url.rs +++ b/src/commands/from_url.rs @@ -31,7 +31,7 @@ fn from_url(args: CommandArgs, registry: &CommandRegistry) -> Result> = input.values.collect().await; let mut concat_string = String::new(); diff --git a/src/commands/from_xml.rs b/src/commands/from_xml.rs index f80d428f4..5bba67b42 100644 --- a/src/commands/from_xml.rs +++ b/src/commands/from_xml.rs @@ -86,7 +86,7 @@ fn from_xml(args: CommandArgs, registry: &CommandRegistry) -> Result> = input.values.collect().await; let mut concat_string = String::new(); diff --git a/src/commands/from_yaml.rs b/src/commands/from_yaml.rs index 9bd2bf562..9e156bbc7 100644 --- a/src/commands/from_yaml.rs +++ b/src/commands/from_yaml.rs @@ -100,7 +100,7 @@ fn from_yaml(args: CommandArgs, registry: &CommandRegistry) -> Result> = input.values.collect().await; let mut concat_string = String::new(); diff --git a/src/commands/last.rs b/src/commands/last.rs index fd7a3ecea..4813c555a 100644 --- a/src/commands/last.rs +++ b/src/commands/last.rs @@ -36,7 +36,7 @@ fn last( LastArgs { amount }: LastArgs, context: RunnableContext, ) -> Result { - let stream = async_stream_block! { + let stream = async_stream! { let v: Vec<_> = context.input.into_vec().await; let k = v.len() - (*amount as usize); for x in v[k..].iter() { diff --git a/src/commands/open.rs b/src/commands/open.rs index 603bb4da0..78aa35db0 100644 --- a/src/commands/open.rs +++ b/src/commands/open.rs @@ -59,7 +59,7 @@ fn run( let registry = registry.clone(); let raw_args = raw_args.clone(); - let stream = async_stream_block! { + let stream = async_stream! { let result = fetch(&full_path, &path_str, path_span).await; diff --git a/src/commands/pivot.rs b/src/commands/pivot.rs index 0232f2d59..1a6bb901f 100644 --- a/src/commands/pivot.rs +++ b/src/commands/pivot.rs @@ -52,7 +52,7 @@ fn merge_descriptors(values: &[Tagged]) -> Vec { } pub fn pivot(args: PivotArgs, context: RunnableContext) -> Result { - let stream = async_stream_block! { + let stream = async_stream! { let input = context.input.into_vec().await; let descs = merge_descriptors(&input); diff --git a/src/commands/post.rs b/src/commands/post.rs index 6d5627a65..1bff755d9 100644 --- a/src/commands/post.rs +++ b/src/commands/post.rs @@ -73,7 +73,7 @@ fn run( let registry = registry.clone(); let raw_args = raw_args.clone(); - let stream = async_stream_block! { + let stream = async_stream! { let (file_extension, contents, contents_tag, span_source) = post(&path_str, &body, user, password, path_span, ®istry, &raw_args).await.unwrap(); diff --git a/src/commands/sort_by.rs b/src/commands/sort_by.rs index 8058b7889..1e6b87491 100644 --- a/src/commands/sort_by.rs +++ b/src/commands/sort_by.rs @@ -35,7 +35,7 @@ fn sort_by( SortByArgs { rest }: SortByArgs, mut context: RunnableContext, ) -> Result { - Ok(OutputStream::new(async_stream_block! { + Ok(OutputStream::new(async_stream! { let mut vec = context.input.drain_vec().await; let calc_key = |item: &Tagged| { diff --git a/src/commands/to_bson.rs b/src/commands/to_bson.rs index 0cec59926..a36d99c07 100644 --- a/src/commands/to_bson.rs +++ b/src/commands/to_bson.rs @@ -233,7 +233,7 @@ fn bson_value_to_bytes(bson: Bson, tag: Tag) -> Result, ShellError> { fn to_bson(args: CommandArgs, registry: &CommandRegistry) -> Result { let args = args.evaluate_once(registry)?; let name_tag = args.name_tag(); - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = args.input.values.collect().await; let to_process_input = if input.len() > 1 { diff --git a/src/commands/to_csv.rs b/src/commands/to_csv.rs index fd77fdcb6..1897fb86b 100644 --- a/src/commands/to_csv.rs +++ b/src/commands/to_csv.rs @@ -135,7 +135,7 @@ fn to_csv( RunnableContext { input, name, .. }: RunnableContext, ) -> Result { let name_tag = name; - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = input.values.collect().await; let to_process_input = if input.len() > 1 { diff --git a/src/commands/to_json.rs b/src/commands/to_json.rs index d8aaa9679..9c06299aa 100644 --- a/src/commands/to_json.rs +++ b/src/commands/to_json.rs @@ -81,7 +81,7 @@ fn json_list(input: &Vec>) -> Result, Shell fn to_json(args: CommandArgs, registry: &CommandRegistry) -> Result { let args = args.evaluate_once(registry)?; let name_tag = args.name_tag(); - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = args.input.values.collect().await; let to_process_input = if input.len() > 1 { diff --git a/src/commands/to_sqlite.rs b/src/commands/to_sqlite.rs index c695667ca..4f9181ec7 100644 --- a/src/commands/to_sqlite.rs +++ b/src/commands/to_sqlite.rs @@ -201,7 +201,7 @@ fn sqlite_input_stream_to_bytes( fn to_sqlite(args: CommandArgs, registry: &CommandRegistry) -> Result { let args = args.evaluate_once(registry)?; let name_tag = args.name_tag(); - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = args.input.values.collect().await; match sqlite_input_stream_to_bytes(input) { diff --git a/src/commands/to_toml.rs b/src/commands/to_toml.rs index a30c9d3cf..6c8904e0c 100644 --- a/src/commands/to_toml.rs +++ b/src/commands/to_toml.rs @@ -76,7 +76,7 @@ fn collect_values(input: &Vec>) -> Result, ShellE fn to_toml(args: CommandArgs, registry: &CommandRegistry) -> Result { let args = args.evaluate_once(registry)?; let name_tag = args.name_tag(); - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = args.input.values.collect().await; let to_process_input = if input.len() > 1 { diff --git a/src/commands/to_tsv.rs b/src/commands/to_tsv.rs index 7bce174d0..4edc26fac 100644 --- a/src/commands/to_tsv.rs +++ b/src/commands/to_tsv.rs @@ -134,7 +134,7 @@ fn to_tsv( RunnableContext { input, name, .. }: RunnableContext, ) -> Result { let name_tag = name; - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = input.values.collect().await; let to_process_input = if input.len() > 1 { diff --git a/src/commands/to_url.rs b/src/commands/to_url.rs index d98a765a2..dfba5faf4 100644 --- a/src/commands/to_url.rs +++ b/src/commands/to_url.rs @@ -31,7 +31,7 @@ fn to_url(args: CommandArgs, registry: &CommandRegistry) -> Result> = input.values.collect().await; for value in input { diff --git a/src/commands/to_yaml.rs b/src/commands/to_yaml.rs index db54af6e8..a72ab9ffc 100644 --- a/src/commands/to_yaml.rs +++ b/src/commands/to_yaml.rs @@ -77,7 +77,7 @@ pub fn value_to_yaml_value(v: &Tagged) -> Result Result { let args = args.evaluate_once(registry)?; let name_tag = args.name_tag(); - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = args.input.values.collect().await; let to_process_input = if input.len() > 1 { diff --git a/src/lib.rs b/src/lib.rs index f4ccb4e4e..ef7f3c381 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,6 @@ #![feature(generators)] #![feature(proc_macro_hygiene)] +#![recursion_limit = "512"] #[macro_use] mod prelude; diff --git a/src/prelude.rs b/src/prelude.rs index d58e7989a..b80e21f03 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -72,6 +72,7 @@ pub(crate) use crate::shell::value_shell::ValueShell; pub(crate) use crate::stream::{InputStream, OutputStream}; pub(crate) use crate::traits::{HasTag, ToDebug}; pub(crate) use crate::Text; +pub(crate) use async_stream::stream as async_stream; pub(crate) use bigdecimal::BigDecimal; pub(crate) use futures::stream::BoxStream; pub(crate) use futures::{FutureExt, Stream, StreamExt}; From 6aad0b8443e1f750cfeff528ad01cc8283746fcc Mon Sep 17 00:00:00 2001 From: est31 Date: Thu, 26 Sep 2019 02:35:38 +0200 Subject: [PATCH 05/11] Remove async_stream_block from the prelude ... to indicate deprecation of its use --- src/commands/autoview.rs | 1 + src/commands/plugin.rs | 1 + src/commands/save.rs | 1 + src/prelude.rs | 1 - 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/commands/autoview.rs b/src/commands/autoview.rs index b9b9d8941..e715491e9 100644 --- a/src/commands/autoview.rs +++ b/src/commands/autoview.rs @@ -1,6 +1,7 @@ use crate::commands::{RawCommandArgs, WholeStreamCommand}; use crate::errors::ShellError; use crate::prelude::*; +use futures_async_stream::async_stream_block; pub struct Autoview; diff --git a/src/commands/plugin.rs b/src/commands/plugin.rs index ae9b2ec64..4e30b68f4 100644 --- a/src/commands/plugin.rs +++ b/src/commands/plugin.rs @@ -3,6 +3,7 @@ use crate::errors::ShellError; use crate::parser::registry; use crate::prelude::*; use derive_new::new; +use futures_async_stream::async_stream_block; use log::trace; use serde::{self, Deserialize, Serialize}; use std::io::prelude::*; diff --git a/src/commands/save.rs b/src/commands/save.rs index 9c12fd241..982e578a8 100644 --- a/src/commands/save.rs +++ b/src/commands/save.rs @@ -2,6 +2,7 @@ use crate::commands::{UnevaluatedCallInfo, WholeStreamCommand}; use crate::data::Value; use crate::errors::ShellError; use crate::prelude::*; +use futures_async_stream::async_stream_block; use std::path::{Path, PathBuf}; pub struct Save; diff --git a/src/prelude.rs b/src/prelude.rs index b80e21f03..56cd21b33 100644 --- a/src/prelude.rs +++ b/src/prelude.rs @@ -76,7 +76,6 @@ pub(crate) use async_stream::stream as async_stream; pub(crate) use bigdecimal::BigDecimal; pub(crate) use futures::stream::BoxStream; pub(crate) use futures::{FutureExt, Stream, StreamExt}; -pub(crate) use futures_async_stream::async_stream_block; pub(crate) use num_bigint::BigInt; pub(crate) use num_traits::cast::{FromPrimitive, ToPrimitive}; pub(crate) use num_traits::identities::Zero; From def33206d989a142b2ab8e4e49d79eb5fccf6a6a Mon Sep 17 00:00:00 2001 From: BradyBromley <51128276+BradyBromley@users.noreply.github.com> Date: Fri, 27 Sep 2019 09:48:26 -0700 Subject: [PATCH 06/11] Changed wording in README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 85b4dc30b..50f2e5100 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Nu comes with a set of built-in commands (listed below). If a command is unknown # Learning more -There are a few good resources to learn about Nu. First, there is a [book](https://book.nushell.sh) about Nu, currently in progress. The book focuses on using Nu and its core concepts. +There are a few good resources to learn about Nu. There is a [book](https://book.nushell.sh) about Nu that is currently in progress. The book focuses on using Nu and its core concepts. If you're a developer who would like to contribute to Nu, we're also working on a [book for developers](https://github.com/nushell/contributor-book/tree/master/en) to help get started. There are also [good first issues](https://github.com/nushell/nushell/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) to help you dive in. @@ -181,7 +181,7 @@ Here we use the variable `$it` to refer to the value being piped to the external ## Shells -By default, Nu will work inside of a single directory and allow you to navigate around your filesystem. Sometimes, you'll want to work in multiple directories at the same time. For this, Nu offers a way of adding additional working directories that you can jump between. +Nu will work inside of a single directory and allow you to navigate around your filesystem by default. Nu also offers a way of adding additional working directories that you can jump between, allowing you to work in multiple directories at the same time. To do so, use the `enter` command, which will allow you create a new "shell" and enter it at the specified path. You can toggle between this new shell and the original shell with the `p` (for previous) and `n` (for next), allowing you to navigate around a ring buffer of shells. Once you're done with a shell, you can `exit` it and remove it from the ring buffer. From 1183d28b1519c2b5fe92d6375baf9e0abfd6c7a2 Mon Sep 17 00:00:00 2001 From: est31 Date: Sat, 28 Sep 2019 02:05:18 +0200 Subject: [PATCH 07/11] Remove uses of async_stream_block --- src/commands/autoview.rs | 8 +++- src/commands/clip.rs | 8 ++-- src/commands/plugin.rs | 8 +++- src/commands/save.rs | 79 +++++++++++++++++++++------------------- src/commands/table.rs | 7 +++- 5 files changed, 63 insertions(+), 47 deletions(-) diff --git a/src/commands/autoview.rs b/src/commands/autoview.rs index e715491e9..c3702b3f1 100644 --- a/src/commands/autoview.rs +++ b/src/commands/autoview.rs @@ -1,7 +1,6 @@ use crate::commands::{RawCommandArgs, WholeStreamCommand}; use crate::errors::ShellError; use crate::prelude::*; -use futures_async_stream::async_stream_block; pub struct Autoview; @@ -35,7 +34,7 @@ pub fn autoview( mut context: RunnableContext, raw: RawCommandArgs, ) -> Result { - Ok(OutputStream::new(async_stream_block! { + Ok(OutputStream::new(async_stream! { let input = context.input.drain_vec().await; if input.len() > 0 { @@ -89,6 +88,11 @@ pub fn autoview( result.collect::>().await; } } + + // Needed for async_stream to type check + if false { + yield ReturnSuccess::value(Value::nothing().tagged_unknown()); + } })) } diff --git a/src/commands/clip.rs b/src/commands/clip.rs index 2ef5bfac1..ac3ded1d4 100644 --- a/src/commands/clip.rs +++ b/src/commands/clip.rs @@ -5,7 +5,6 @@ pub mod clipboard { use crate::errors::ShellError; use crate::prelude::*; use futures::stream::StreamExt; - use futures_async_stream::async_stream_block; use clipboard::{ClipboardContext, ClipboardProvider}; @@ -40,10 +39,13 @@ pub mod clipboard { ClipArgs {}: ClipArgs, RunnableContext { input, name, .. }: RunnableContext, ) -> Result { - let stream = async_stream_block! { + let stream = async_stream! { let values: Vec> = input.values.collect().await; - inner_clip(values, name).await; + let mut clip_stream = inner_clip(values, name).await; + while let Some(value) = clip_stream.next().await { + yield value; + } }; let stream: BoxStream<'static, ReturnValue> = stream.boxed(); diff --git a/src/commands/plugin.rs b/src/commands/plugin.rs index 4e30b68f4..e769a7b5c 100644 --- a/src/commands/plugin.rs +++ b/src/commands/plugin.rs @@ -3,7 +3,6 @@ use crate::errors::ShellError; use crate::parser::registry; use crate::prelude::*; use derive_new::new; -use futures_async_stream::async_stream_block; use log::trace; use serde::{self, Deserialize, Serialize}; use std::io::prelude::*; @@ -298,7 +297,7 @@ pub fn sink_plugin( let args = args.evaluate_once(registry)?; let call_info = args.call_info.clone(); - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = args.input.values.collect().await; let request = JsonRpc::new("sink", (call_info.clone(), input)); @@ -313,6 +312,11 @@ pub fn sink_plugin( .expect("Failed to spawn child process"); let _ = child.wait(); + + // Needed for async_stream to type check + if false { + yield ReturnSuccess::value(Value::nothing().tagged_unknown()); + } }; Ok(OutputStream::new(stream)) } diff --git a/src/commands/save.rs b/src/commands/save.rs index 982e578a8..e41116d68 100644 --- a/src/commands/save.rs +++ b/src/commands/save.rs @@ -2,13 +2,12 @@ use crate::commands::{UnevaluatedCallInfo, WholeStreamCommand}; use crate::data::Value; use crate::errors::ShellError; use crate::prelude::*; -use futures_async_stream::async_stream_block; use std::path::{Path, PathBuf}; pub struct Save; macro_rules! process_string { - ($input:ident, $name_tag:ident) => {{ + ($scope:tt, $input:ident, $name_tag:ident) => {{ let mut result_string = String::new(); for res in $input { match res { @@ -19,11 +18,11 @@ macro_rules! process_string { result_string.push_str(&s); } _ => { - yield core::task::Poll::Ready(Err(ShellError::labeled_error( + break $scope Err(ShellError::labeled_error( "Save could not successfully save", "unexpected data during save", $name_tag, - ))); + )); } } } @@ -32,7 +31,7 @@ macro_rules! process_string { } macro_rules! process_string_return_success { - ($result_vec:ident, $name_tag:ident) => {{ + ($scope:tt, $result_vec:ident, $name_tag:ident) => {{ let mut result_string = String::new(); for res in $result_vec { match res { @@ -43,11 +42,11 @@ macro_rules! process_string_return_success { result_string.push_str(&s); } _ => { - yield core::task::Poll::Ready(Err(ShellError::labeled_error( + break $scope Err(ShellError::labeled_error( "Save could not successfully save", "unexpected data during text save", $name_tag, - ))); + )); } } } @@ -56,7 +55,7 @@ macro_rules! process_string_return_success { } macro_rules! process_binary_return_success { - ($result_vec:ident, $name_tag:ident) => {{ + ($scope:tt, $result_vec:ident, $name_tag:ident) => {{ let mut result_binary: Vec = Vec::new(); for res in $result_vec { match res { @@ -69,11 +68,11 @@ macro_rules! process_binary_return_success { } } _ => { - yield core::task::Poll::Ready(Err(ShellError::labeled_error( + break $scope Err(ShellError::labeled_error( "Save could not successfully save", "unexpected data during binary save", $name_tag, - ))); + )); } } } @@ -131,7 +130,7 @@ fn save( let name_tag = name; let source_map = source_map.clone(); - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = input.values.collect().await; if path.is_none() { // If there is no filename, check the metadata for the origin filename @@ -171,39 +170,43 @@ fn save( } } - let content : Result, ShellError> = if !save_raw { - if let Some(extension) = full_path.extension() { - let command_name = format!("to-{}", extension.to_str().unwrap()); - if let Some(converter) = registry.get_command(&command_name) { - let new_args = RawCommandArgs { - host, - shell_manager, - call_info: UnevaluatedCallInfo { - args: crate::parser::hir::Call { - head: raw_args.call_info.args.head, - positional: None, - named: None - }, - source: raw_args.call_info.source, - source_map: raw_args.call_info.source_map, - name_tag: raw_args.call_info.name_tag, + // TODO use label_break_value once it is stable: + // https://github.com/rust-lang/rust/issues/48594 + let content : Result, ShellError> = 'scope: loop { + break if !save_raw { + if let Some(extension) = full_path.extension() { + let command_name = format!("to-{}", extension.to_str().unwrap()); + if let Some(converter) = registry.get_command(&command_name) { + let new_args = RawCommandArgs { + host, + shell_manager, + call_info: UnevaluatedCallInfo { + args: crate::parser::hir::Call { + head: raw_args.call_info.args.head, + positional: None, + named: None + }, + source: raw_args.call_info.source, + source_map: raw_args.call_info.source_map, + name_tag: raw_args.call_info.name_tag, + } + }; + let mut result = converter.run(new_args.with_input(input), ®istry, false); + let result_vec: Vec> = result.drain_vec().await; + if converter.is_binary() { + process_binary_return_success!('scope, result_vec, name_tag) + } else { + process_string_return_success!('scope, result_vec, name_tag) } - }; - let mut result = converter.run(new_args.with_input(input), ®istry, false); - let result_vec: Vec> = result.drain_vec().await; - if converter.is_binary() { - process_binary_return_success!(result_vec, name_tag) } else { - process_string_return_success!(result_vec, name_tag) + process_string!('scope, input, name_tag) } } else { - process_string!(input, name_tag) + process_string!('scope, input, name_tag) } } else { - process_string!(input, name_tag) - } - } else { - Ok(string_from(&input).into_bytes()) + Ok(string_from(&input).into_bytes()) + }; }; match content { diff --git a/src/commands/table.rs b/src/commands/table.rs index 4efd6f821..e9fbe35f2 100644 --- a/src/commands/table.rs +++ b/src/commands/table.rs @@ -2,7 +2,6 @@ use crate::commands::WholeStreamCommand; use crate::errors::ShellError; use crate::format::TableView; use crate::prelude::*; -use futures_async_stream::async_stream_block; pub struct Table; @@ -32,7 +31,7 @@ impl WholeStreamCommand for Table { } pub fn table(_args: TableArgs, context: RunnableContext) -> Result { - let stream = async_stream_block! { + let stream = async_stream! { let input: Vec> = context.input.into_vec().await; if input.len() > 0 { let mut host = context.host.lock().unwrap(); @@ -41,6 +40,10 @@ pub fn table(_args: TableArgs, context: RunnableContext) -> Result Date: Sat, 28 Sep 2019 02:07:09 +0200 Subject: [PATCH 08/11] Remove use of nightly features --- src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index ef7f3c381..b17e6c0b3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,3 @@ -#![feature(generators)] -#![feature(proc_macro_hygiene)] #![recursion_limit = "512"] #[macro_use] From 1801c006ec893fbe6ad373b17987e3ab81401cf7 Mon Sep 17 00:00:00 2001 From: est31 Date: Sat, 28 Sep 2019 02:07:28 +0200 Subject: [PATCH 09/11] Remove futures-async-stream dependency --- Cargo.lock | 43 ------------------------------------------- Cargo.toml | 1 - 2 files changed, 44 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c0730ef12..47348cd57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -739,26 +739,6 @@ name = "futures" version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -[[package]] -name = "futures-async-stream" -version = "0.1.0-alpha.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "futures-async-stream-macro 0.1.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-core-preview 0.3.0-alpha.18 (registry+https://github.com/rust-lang/crates.io-index)", - "pin-project 0.4.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "futures-async-stream-macro" -version = "0.1.0-alpha.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "futures-channel-preview" version = "0.3.0-alpha.18" @@ -1553,7 +1533,6 @@ dependencies = [ "dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "dunce 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "enum-utils 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - "futures-async-stream 0.1.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", "futures-preview 0.3.0-alpha.18 (registry+https://github.com/rust-lang/crates.io-index)", "futures-timer 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "futures_codec 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1784,24 +1763,6 @@ dependencies = [ "ordermap 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ] -[[package]] -name = "pin-project" -version = "0.4.0-alpha.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "pin-project-internal 0.4.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] -name = "pin-project-internal" -version = "0.4.0-alpha.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -dependencies = [ - "proc-macro2 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", -] - [[package]] name = "pin-utils" version = "0.1.0-alpha.4" @@ -3100,8 +3061,6 @@ dependencies = [ "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" "checksum futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "45dc39533a6cae6da2b56da48edae506bb767ec07370f86f70fc062e9d435869" -"checksum futures-async-stream 0.1.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f6311b428f208a8e7294aad3ddfa695cd68163e49880f4a3c3705e94c613c99b" -"checksum futures-async-stream-macro 0.1.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c7665811c2ea29c7fd309e48b1c1f52538b50fda641616a11eedadcf23ad29da" "checksum futures-channel-preview 0.3.0-alpha.18 (registry+https://github.com/rust-lang/crates.io-index)" = "f477fd0292c4a4ae77044454e7f2b413207942ad405f759bb0b4698b7ace5b12" "checksum futures-core-preview 0.3.0-alpha.18 (registry+https://github.com/rust-lang/crates.io-index)" = "4a2f26f774b81b3847dcda0c81bd4b6313acfb4f69e5a0390c7cb12c058953e9" "checksum futures-executor-preview 0.3.0-alpha.18 (registry+https://github.com/rust-lang/crates.io-index)" = "80705612926df8a1bc05f0057e77460e29318801f988bf7d803a734cf54e7528" @@ -3203,8 +3162,6 @@ dependencies = [ "checksum output_vt100 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9" "checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" "checksum petgraph 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3659d1ee90221741f65dd128d9998311b0e40c5d3c23a62445938214abce4f" -"checksum pin-project 0.4.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c6e7dd6a2ad14b55463a4b80ca7b6c3b373921310b61fcb3de5455ad2dea21f7" -"checksum pin-project-internal 0.4.0-alpha.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8cbe07d1ffd722968221af234aff370f5d02de3dea17decf536df93ee9af2fd3" "checksum pin-utils 0.1.0-alpha.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" "checksum pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c1d2cfa5a714db3b5f24f0915e74fcdf91d09d496ba61329705dda7774d2af" "checksum platforms 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6cfec0daac55b13af394ceaaad095d17c790f77bdc9329264f06e49d6cd3206c" diff --git a/Cargo.toml b/Cargo.toml index 84b84ca41..7899b2db8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,7 +27,6 @@ chrono-humanize = "0.0.11" byte-unit = "3.0.1" base64 = "0.10.1" futures-preview = { version = "=0.3.0-alpha.18", features = ["compat", "io-compat"] } -futures-async-stream = "=0.1.0-alpha.5" async-stream = "0.1.1" futures_codec = "0.2.5" num-traits = "0.2.8" From 02d6614ae2e11787d1c33d0eb9e3da91f8161479 Mon Sep 17 00:00:00 2001 From: est31 Date: Sat, 28 Sep 2019 02:59:04 +0200 Subject: [PATCH 10/11] Use language-reporting from git as it supports Rust stable --- Cargo.lock | 12 ++++++------ Cargo.toml | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 47348cd57..267876726 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1214,12 +1214,12 @@ dependencies = [ [[package]] name = "language-reporting" version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/wycats/language-reporting#1e2100290fec96f69646e1e61482d80f7a8e7855" dependencies = [ "derive-new 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "render-tree 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", + "render-tree 0.1.1 (git+https://github.com/wycats/language-reporting)", "serde 1.0.100 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1544,7 +1544,7 @@ dependencies = [ "image 0.22.2 (registry+https://github.com/rust-lang/crates.io-index)", "indexmap 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "language-reporting 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", + "language-reporting 0.3.1 (git+https://github.com/wycats/language-reporting)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", "natural 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2117,7 +2117,7 @@ dependencies = [ [[package]] name = "render-tree" version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" +source = "git+https://github.com/wycats/language-reporting#1e2100290fec96f69646e1e61482d80f7a8e7855" dependencies = [ "itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", @@ -3105,7 +3105,7 @@ dependencies = [ "checksum jpeg-decoder 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "c8b7d43206b34b3f94ea9445174bda196e772049b9bddbc620c9d29b2d20110d" "checksum js-sys 0.3.27 (registry+https://github.com/rust-lang/crates.io-index)" = "1efc4f2a556c58e79c5500912e221dd826bec64ff4aabd8ce71ccef6da02d7d4" "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" -"checksum language-reporting 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "628912b84af4304e1e7e78ebb6a1f503f3a973cba79d072d12e6eb40e7f815db" +"checksum language-reporting 0.3.1 (git+https://github.com/wycats/language-reporting)" = "" "checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" @@ -3202,7 +3202,7 @@ dependencies = [ "checksum regex-automata 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "92b73c2a1770c255c240eaa4ee600df1704a38dc3feaa6e949e7fcd4f8dc09f9" "checksum regex-syntax 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b143cceb2ca5e56d5671988ef8b15615733e7ee16cd348e064333b251b89343f" "checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" -"checksum render-tree 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "68ed587df09cfb7ce1bc6fe8f77e24db219f222c049326ccbfb948ec67e31664" +"checksum render-tree 0.1.1 (git+https://github.com/wycats/language-reporting)" = "" "checksum result 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "194d8e591e405d1eecf28819740abed6d719d1a2db87fc0bcdedee9a26d55560" "checksum roxmltree 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "153c367ce9fb8ef7afe637ef92bd083ba0f88b03ef3fcf0287d40be05ae0a61c" "checksum rusqlite 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2a194373ef527035645a1bc21b10dc2125f73497e6e155771233eb187aedd051" diff --git a/Cargo.toml b/Cargo.toml index 7899b2db8..a3a5514dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -41,7 +41,8 @@ serde-hjson = "0.9.1" serde_yaml = "0.8" serde_bytes = "0.11.2" getset = "0.0.8" -language-reporting = "0.3.1" +#language-reporting = "0.3.1" +language-reporting = { git = "https://github.com/wycats/language-reporting" } app_dirs = "1.2.1" csv = "1.1" toml = "0.5.3" From b123f35d4b928c55e9f8e1bc5320e7a8ee917ff7 Mon Sep 17 00:00:00 2001 From: est31 Date: Sat, 28 Sep 2019 02:22:21 +0200 Subject: [PATCH 11/11] Switch pinned compiler to Rust beta --- rust-toolchain | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-toolchain b/rust-toolchain index 8f93bd146..c3a3f3779 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2019-09-11 +beta-2019-09-25