1
0
mirror of https://github.com/rust-lang/rustlings.git synced 2025-06-23 00:28:46 +02:00
Commit Graph

134 Commits

Author SHA1 Message Date
74895df5a7 Merge pull request #738 from apogeeoak/text
fix(cli): Move long text strings into constants.
2022-04-04 17:09:49 +02:00
179a75a68d fix: Include exercises folder in the project structure behind a feature (#917)
closes #859
closes #913
closes #942
2022-03-29 11:44:06 +02:00
c1f35e46df Merge branch 'main' into text 2022-02-04 19:27:42 -05:00
71a06044e6 fix(clippy1): Set clippy::float_cmp lint to deny (#907) 2022-02-04 14:39:09 +01:00
9b27e8d993 chore : replace filter_map() with find_map() 2021-12-24 13:48:43 +07:00
ana
d57c183028 release: 4.6.0 2021-09-25 11:23:05 +02:00
1caef0b434 feat: Add "quit" command to rustlings watch
closes: #842
2021-09-24 23:55:55 +10:00
ae56cba9c8 Merge pull request #846 from rust-lang/feat/add-more-watch-commands
feat: add more watch commands
2021-09-24 13:05:04 +02:00
ana
3352b5a4d3 chore: improve println! usage 2021-09-24 13:04:30 +02:00
06d5c0973a fix(cli): typo in exercise.rs (#848) 2021-09-21 11:50:15 +02:00
ana
a7dc080b95 feat: add more watch commands
Includes:
- quit, to quit the shell instead of having to press Cmd/Ctrl-C or Cmd/Ctrl-D
- help, to display an overview of all the commands available in watch mode.

Closes #842.
2021-09-21 10:36:11 +02:00
1cd9328a58 fix(cli): remove unnecessary borrows (#829)
* Update dependencies

* Format better and remove unnecessary borrows
2021-08-24 14:06:30 +02:00
ana
ba087ce64a release: 4.5.0
Signed-off-by: ana <ana@ana.st>
2021-07-07 22:23:52 +02:00
d20e413a68 feat(cli): Add "next" to run the next unsolved exercise. (#785)
* Add "run next" to run the next unsolved exercise.

* Fix a grammar error in the message.

* Update README.md with the suggested change

Co-authored-by: marisa <mokou@fastmail.com>

* Update the README.md for "rustlings hint next".

Co-authored-by: marisa <mokou@fastmail.com>
2021-06-30 12:05:49 +02:00
f78c480208 fix(cli): Move long text strings into constants. 2021-04-27 17:14:54 -04:00
84461c20cb release: 4.4.0 2021-04-24 11:57:00 +02:00
cf42ddc449 chore(watch): add hint for the exercises README.md
rustlings watch will now show an additional hint for the corresponding README.me
2021-04-23 20:28:55 +02:00
347f30bd86 fix(main): Let find_exercise work with borrows 2021-04-21 16:21:56 +02:00
7928122fce feat: Replace clap with argh
I’ve been wanting to do this for a while, but always procrastinated on it. We’ve been using Clap since the 2.0 rewrite, but Clap is known to be a fairly heavy library. Since Rustlings is usually peoples’ first contact with a Rust compilation, I think it’s in our best interests that this complation is as fast as possible. In effect, replacing Clap with the smaller, structopt-style `argh` reduces the amount of crates needing to be compiled from 82 to 60.

I also think this makes the code way easier to read, we don’t need to use Clap’s methods anymore, but can switch over to using pure Rust methods, e.g., switches are booleans, options are Option<String>s or the like, and subcommands are just structs.
2021-04-21 10:08:26 +02:00
1c6f7e4b7b feat(list): updated progress percentage 2021-04-19 09:39:05 +02:00
bd48544e25 style: formatted files with rustfmt 2021-04-18 15:40:47 +02:00
c0e3daacaf feat(list): added progress info
Added a progress info at the bottom of the list for command: rustlings list

closes #705
2021-04-18 15:37:41 +02:00
01e7f27aa6 refactor: change from match to if for NO_EMOJI 2021-03-20 11:53:40 -07:00
8d62a99637 feat: Replace emojis when NO_EMOJI env variable present 2021-03-19 02:16:07 -07:00
833df0b8b3 chore: fix typo
Co-authored-by: Chenkail <40770208+Chenkail@users.noreply.github.com>
2021-03-12 15:26:57 +01:00
91ee27f22b fix: Spelling error 2021-02-24 15:03:26 -06:00
2e84f34cf3 chore: Updated source to follow clippy suggestions. 2021-02-09 18:21:18 -05:00
8bbe4ff138 feat(cli): Improve the list command with options, and then some
1.
`rustlings list` should now display more than just the exercise names.
Information such as file paths and exercises statuses should be displayed.
The `--paths` option limits the displayed fields to only the path names; while the `--names`
option limits the displayed fields to only exercise names.
You can also control which exercises are displayed, by using the `--filter` option, or
the `--solved` or `--unsolved` flags.

Some use cases:
- Fetching pending exercise files with the keyword "conversion" to pass to my editor:
```sh
vim $(rustlings list --filter "conversion" --paths --unsolved)
```

- Fetching exercise names with keyword "conversion" to pass to `rustlings run`:
```sh
for exercise in $(rustlings list --filter "conversion" --names)
do
    rustlings run ${exercise}
done
```

2.
This should also fix #465, and will likely fix #585, as well.
That bug mentioned in those issues has to do with the way the `watch` command handler fetches the pending exercises.
Going forward, the least recently updated exercises along with all the other exercises in a pending state are fetched.
2021-01-08 13:21:00 -05:00
0b9220c1fc Add looks_done method to Exercise to expose a resolution state 2021-01-08 13:21:00 -05:00
a303d508cf release: 4.3.0 2020-12-29 11:39:26 +01:00
fa9f522b7f feat: Crab? (#586)
Crab?
2020-11-11 23:06:14 +01:00
838f9f3008 feat: add "rustlings list" command 2020-11-10 18:36:19 +01:00
d61b4e5a13 fix: log error output when inotify limit is exceeded
closes #472
2020-11-05 19:30:50 -05:00
5643ef05bc fix: more unique temp_file 2020-10-30 14:39:28 +01:00
c03e1e6c6c chore: fixed test name 2020-09-27 21:57:51 +02:00
81f8c2f83c chore: Run cargo fmt 2020-08-10 10:42:54 -04:00
4f2468e14f feat(cli): Added 'cls' command to 'watch' mode (#474) 2020-07-23 20:23:27 +02:00
816b1f5e85 feat: Remind the user of the hint option (#425)
Suggestion from AbdouSeck https://github.com/rust-lang/rustlings/issues/424#issuecomment-639870331
for when the student's code has errors.
2020-07-08 11:52:23 +02:00
55a9284665 chore: Move from master branch to main branch 2020-06-14 14:48:51 +02:00
8ad5f9bf53 feat: Add a --nocapture option to display test harnesses' outputs
This new feature can be accessed by invoking rustlings with --nocapture.

Both unit and integration tests added.

closes #262

BREAKING CHANGES:
The following function take a new boolean argument:
	* `run`
	* `verify`
	* `test`
	* `compile_and_test`
2020-06-04 11:18:26 -04:00
02a2fe4871 Collapse nested if statements 2020-06-04 11:18:09 -04:00
40741c5b0b Use .to_string rather than format macro 2020-06-03 17:18:48 -04:00
3ab084a421 fix(run): compile clippy exercise files
Additionally to running clippy, also compile the exercise file so that
`rustling run clippy1` works after a successful completion of the
exercise.

closes #291

Signed-off-by: Rohan Jain <crodjer@gmail.com>
2020-04-11 08:58:23 +02:00
3b6d5c3aaa feature: makes "compile" exercise print output, resolves #270
When running "compile"-mode exercises in interactive `verify` mode,
we print their output when we prompt the learner if they want to
continue. This improves the "experimentation" experience, since
trying different things does produce a visible change.
2020-04-06 16:17:14 +02:00
1e2fd9c92f feat: Add clippy lints
- adds a new 'clippy' category for exercises
- clippy exercises should throw no warnings
- install script now also installs clippy

is related to https://github.com/rust-lang/rust-clippy/issues/2604
2020-02-26 14:07:07 +01:00
43dc31193a refactor: exercise evaluation
Exercise evaluation (compilation + execution) now uses Results
Success/failure messages are standardized
2020-02-20 20:27:05 +01:00
d25ee55a32 feat: Show a completion message when watching
The completion message is shown only once all exercises succeed and are
not annotated with "I AM NOT DONE." The watch command will also exit

closes #251
2019-12-26 20:27:49 -08:00
8143d57b4e feat(watch): show hint while watching 2019-11-18 20:52:57 +01:00
4b26546589 fix(run): makes run never prompt
`watch` and `verify` do prompt the user to actively move to the
next exercise. This change fixes `run` to never prompt. Previously
it was inconsistent between "test" and "compile" exercises.

BREAKING CHANGE: we again change the behavior of the `run` command
2019-11-12 11:35:40 +01:00
36a033b87a feat(cli): check for rustc before doing anything
Addresses #190.
2019-11-11 18:00:54 +01:00