Commit graph

358 commits

Author SHA1 Message Date
mo8it fdd7de00bd Improvements to verify 2024-04-01 18:21:56 +02:00
mo8it 2f30eac27f Remove unneeded .iter() 2024-04-01 17:36:42 +02:00
mo8it 14f3585816 Make cargo run work 2024-04-01 02:11:52 +02:00
mo8it 8ad18de54c Use var_os to avoid conversion to String 2024-03-31 20:11:08 +02:00
mo8it 7560aec66b Inline reset 2024-03-31 20:08:23 +02:00
mo8it fb32d0b86f Remove redundant test 2024-03-31 18:59:07 +02:00
mo8it c1de4d46aa Some improvements to error handling 2024-03-31 18:25:54 +02:00
mo8it 82b563f165 Use Cargo instead of rustc 2024-03-31 16:55:33 +02:00
mo8it b711dd692a Add .gitignore 2024-03-31 02:04:41 +01:00
mo8it 1e1f031713 Fix path comparison 2024-03-31 00:49:19 +01:00
mo8it b5e17c965d Add an error message when a file is not embedded 2024-03-30 21:15:11 +01:00
mo8it 23f0fae1c8 Show a success message after resetting 2024-03-30 21:13:28 +01:00
mo8it 79ca821e26 Fix tests 2024-03-30 20:48:30 +01:00
Dan 30273a6ee5
Merge branch 'main' into main 2024-03-29 18:29:38 +00:00
mo8it 8e3cc9d70c Improve printed information 2024-03-29 01:52:05 +01:00
mo8it 2b01811fe9 Fix typo 2024-03-29 01:51:22 +01:00
mo8it a561a0f7f0 Avoid reinitialization by mistake 2024-03-29 01:51:08 +01:00
mo8it 36a8e3ac0e Replace rust-project.json with Cargo.toml 2024-03-29 01:29:41 +01:00
mo8it 3ff9b0cd2a POC done 2024-03-28 22:11:16 +01:00
mo8it 5b4103bbac Remove unneeded ./ from relative paths 2024-03-28 21:10:31 +01:00
mo8it d5ed749e9f Add embedded.rs 2024-03-28 21:06:36 +01:00
mo8it dd025391f2 Make everything static 2024-03-28 17:52:51 +01:00
mo8it e5efc68a91 Done macro 2024-03-28 17:34:48 +01:00
Mo 8e87c35c88
Merge pull request #1907 from honeywest/feat/ui-format
feat: ui format
2024-03-27 15:08:28 +01:00
mo8it b24f256f2a Merge branch 'main' into project 2024-03-27 15:06:58 +01:00
mo8it a27741b131 Merge branch 'main' into performance 2024-03-27 15:00:57 +01:00
mo8it f995b4c041 Merge branch 'main' into watch 2024-03-27 14:41:26 +01:00
mo8it b9d2756ce8 Merge branch 'main' into toml 2024-03-27 14:30:10 +01:00
Mo 07dec76f7c
Merge pull request #1916 from mo8it/command
Pipe the output of command to null instead of capturing and ignoring it
2024-03-27 14:24:16 +01:00
mo8it 8e0f7e56f7 Merge branch 'main' into which 2024-03-27 14:18:20 +01:00
mo8it 87001a68c0 The string doesn't have to be a raw string 2024-03-26 17:50:29 +01:00
mo8it a610fc1bc2 Remove unneeded closure 2024-03-26 17:50:10 +01:00
mo8it e89028581c Use == instead of eq 2024-03-26 17:49:55 +01:00
mo8it 980ffa2a2b Use == on simple enums 2024-03-26 17:49:48 +01:00
mo8it 1f2029ae55 Add missing semicolon 2024-03-26 17:49:25 +01:00
mo8it ed0fcf8e3d Formatting 2024-03-26 17:49:05 +01:00
mo8it f36efae25d Only use arg instead of args AND arg 2024-03-26 17:48:06 +01:00
mo8it 853d0593d0 Derive Eq when PartialEq is derived 2024-03-26 17:47:33 +01:00
mo8it 078f6ffc1c Add comments 2024-03-26 02:26:26 +01:00
mo8it 7a6f71f090 Fix context of previous lines and improve readability 2024-03-26 02:14:25 +01:00
mo8it a158c77d81 Add comment 2024-03-25 23:21:14 +01:00
mo8it 8ddbf9635d Add write_project_json 2024-03-25 23:01:56 +01:00
mo8it 8d3ec24c11 Optimize the serialized data types 2024-03-25 22:41:14 +01:00
mo8it a5ba44bd6a RustAnalyzerProject is not deserialized 2024-03-25 22:30:16 +01:00
mo8it f5135ae4df Remove unneeded check if crates is empty 2024-03-25 22:29:33 +01:00
mo8it 87e55ccffd Use the parsed exercises instead of glob 2024-03-25 22:20:00 +01:00
mo8it d911586788 Pipe the output to null instead of capturing and ignoring it 2024-03-25 17:21:54 +01:00
mo8it b932ed1f67 Don't capture stderr 2024-03-25 17:14:41 +01:00
mo8it d095a307dd Avoid allocations on every call to Path::join 2024-03-25 03:59:21 +01:00
mo8it 51712cc19f Merge get_sysroot_src into the constructor 2024-03-25 03:49:10 +01:00
mo8it efa9f57048 Add anyhow 2024-03-25 03:46:56 +01:00
mo8it b3aef377be Use a custom capacity for the JSON buffer 2024-03-25 03:33:14 +01:00
mo8it e4520602f5 Use the NotFound variant of the IO error 2024-03-25 02:41:45 +01:00
mo8it 83cd91ccca Replace toml with toml_edit 2024-03-25 02:35:51 +01:00
mo8it 51b4c240ed Use which instead of running rustc --version 2024-03-25 00:30:01 +01:00
mo8it bdf826a026 Make "I AM NOT DONE" caseless 2024-03-24 22:22:55 +01:00
mo8it c0c112985b Replace regex with winnow 2024-03-24 19:18:19 +01:00
mo8it f205ee3d4c Call looks_done only once 2024-03-24 18:50:46 +01:00
mo8it e1375ef431 Use to_string_lossy 2024-03-24 18:47:27 +01:00
mo8it 0aeaccc3a5 Optimize state 2024-03-24 18:34:46 +01:00
mo8it 01b7d6334c Remove unneeded to_string call 2024-03-23 22:08:25 +01:00
mo8it a325df55d1 Cache filters 2024-03-23 21:56:40 +01:00
mo8it 27fa7c3e4a Move the const string to the bottom like others 2024-03-23 19:00:15 +01:00
mo8it 0d93266462 Initialize the input buffer with some capacity 2024-03-23 18:56:30 +01:00
mo8it 3dce7e5696 Improvements to watch mode 2024-03-23 18:51:25 +01:00
honeywest e276c12192 feat: ui format 2024-03-21 15:18:50 +08:00
Dan Bond eb952a480d
verify: fix success message spacing
Signed-off-by: Dan Bond <danbond@protonmail.com>
2024-03-18 16:47:54 -07:00
mo8it 1fe32a7ff2 Fix the sysroot path when it contains whitespaces 2024-03-18 01:44:25 +01:00
Kazuki Matsuo 80388c042b
fix(verify): show stdout of the last line 2024-03-16 13:56:34 +09:00
Luca Plian 17ee0e3c7a
optimized the UI code (#1830) 2024-03-15 13:51:24 +01:00
liv 7f530ebf20
Merge pull request #1783 from neuschaefer/fe-nish
Fe-nish line rendering improvements
2023-11-29 17:33:41 +01:00
J. Neuschäfer 12d1bf407a feat(watch): Add red color to the finishing ferris
This adds some eye-candy for users who finish Rustlings. It is based on
ANSI terminal escape sequences and should work in most environments.
2023-11-22 02:07:52 +01:00
J. Neuschäfer 5c4821ac6f fix(watch): Fix rendering of the finishing ferris
In commit 571bab2 ("Run clippy --fix"), the "" string was changed to
r"", even though it contains an intentional escape sequence, which now
looks wrong. My commit undoes this change:

Before:

	+----------------------------------------------------+
	|          You made it to the Fe-nish line!          |
	+--------------------------  ------------------------+
				  \\/
	     ▒▒          ▒▒▒▒▒▒▒▒      ▒▒▒▒▒▒▒▒          ▒▒
	   ▒▒▒▒  ▒▒    ▒▒        ▒▒  ▒▒        ▒▒    ▒▒  ▒▒▒▒
	   ▒▒▒▒  ▒▒  ▒▒            ▒▒            ▒▒  ▒▒  ▒▒▒▒
	 ░░▒▒▒▒░░▒▒  ▒▒            ▒▒            ▒▒  ▒▒░░▒▒▒▒
	   ▓▓▓▓▓▓▓▓  ▓▓      ▓▓██  ▓▓  ▓▓██      ▓▓  ▓▓▓▓▓▓▓▓
	     ▒▒▒▒    ▒▒      ████  ▒▒  ████      ▒▒░░  ▒▒▒▒
	       ▒▒  ▒▒▒▒▒▒        ▒▒▒▒▒▒        ▒▒▒▒▒▒  ▒▒
		 ▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▒▒▓▓▒▒▒▒▒▒▒▒
		   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
		     ▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒
		   ▒▒  ▒▒▒▒▒▒▒▒▒▒██████▒▒▒▒▒▒▒▒▒▒  ▒▒
		 ▒▒    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ▒▒
	       ▒▒    ▒▒    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ▒▒    ▒▒
	       ▒▒  ▒▒    ▒▒                  ▒▒    ▒▒  ▒▒
		   ▒▒  ▒▒                      ▒▒  ▒▒


After:

	+----------------------------------------------------+
	|          You made it to the Fe-nish line!          |
	+--------------------------  ------------------------+
				   \/
	     ▒▒          ▒▒▒▒▒▒▒▒      ▒▒▒▒▒▒▒▒          ▒▒
	   ▒▒▒▒  ▒▒    ▒▒        ▒▒  ▒▒        ▒▒    ▒▒  ▒▒▒▒
	   ▒▒▒▒  ▒▒  ▒▒            ▒▒            ▒▒  ▒▒  ▒▒▒▒
	 ░░▒▒▒▒░░▒▒  ▒▒            ▒▒            ▒▒  ▒▒░░▒▒▒▒
	   ▓▓▓▓▓▓▓▓  ▓▓      ▓▓██  ▓▓  ▓▓██      ▓▓  ▓▓▓▓▓▓▓▓
	     ▒▒▒▒    ▒▒      ████  ▒▒  ████      ▒▒░░  ▒▒▒▒
	       ▒▒  ▒▒▒▒▒▒        ▒▒▒▒▒▒        ▒▒▒▒▒▒  ▒▒
		 ▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▒▒▒▒▒▒▒▒▓▓▒▒▓▓▒▒▒▒▒▒▒▒
		   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
		     ▒▒▒▒▒▒▒▒▒▒██▒▒▒▒▒▒██▒▒▒▒▒▒▒▒▒▒
		   ▒▒  ▒▒▒▒▒▒▒▒▒▒██████▒▒▒▒▒▒▒▒▒▒  ▒▒
		 ▒▒    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ▒▒
	       ▒▒    ▒▒    ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒    ▒▒    ▒▒
	       ▒▒  ▒▒    ▒▒                  ▒▒    ▒▒  ▒▒
		   ▒▒  ▒▒                      ▒▒  ▒▒

Running `cargo clippy` (version 0.1.70) after this commit does not
reveal any new warnings.

Fixes: 571bab2 ("Run clippy --fix")
2023-11-22 02:07:36 +01:00
Matthias Richter adf7d1b975 chore(watch): update notify dependency to v6
closes #1640
2023-11-17 00:56:02 +01:00
danieltinazzi 3181d9f3f8 fix progress bar count 2023-11-04 17:29:10 +01:00
markgreene74 3c4fde4610 fix(watch): update the CLIPPY_CARGO_TOML_PATH
... to reflect the changes to the exercise directory names.

The path exercises/clippy replaced with exercises/22_clippy.

closes #1726
2023-10-16 22:41:34 +01:00
liv 3bfd857a27
Merge pull request #1696 from docwilco/docwilco/fix-spawn-windows-debugging
fix(cli): make debugging in windows work
2023-09-28 11:03:08 +02:00
DocWilco 511e334365 fix(cli): stop littering pdb files on windows 2023-09-27 22:02:14 +02:00
DocWilco cc658eb288 fix(cli): make debugging in windows work
On windows, if `stderr` or `stdin` aren't also set to `Stdio::null()`
the `spawn()` fails with `The handle is invalid`, and `rustlings`
thinks that there's no `rustc` installed.
2023-09-27 21:33:49 +02:00
jyn b88c23897f Give a more helpful error when a file is missing
Previously, this would just say "missing file". Now it shows the path of the file that was missing,
which should make it easier to debug what went wrong.
2023-09-25 03:41:13 -04:00
mo8it 5a93f2a4f1 Port to Clap 2023-09-04 13:30:46 +02:00
liv d79984dbda
Merge pull request #1637 from mo8it/fix-warnings
Run clippy --fix
2023-08-28 13:38:21 +02:00
mo8it c0b8af2c42 Fix indicatif 2023-08-26 23:35:07 +02:00
mo8it 571bab20c1 Run clippy --fix 2023-08-26 23:07:20 +02:00
liv f2de12aa34 release: 5.5.1 2023-05-17 21:05:51 +02:00
liv 2d544f18b5 fix: revert back to using relative paths 2023-05-17 21:04:32 +02:00
liv f452fd7bb0 release: 5.5.0 2023-05-17 16:30:22 +02:00
liv 9508e97914 feat: write absolute root module paths for lsp 2023-05-17 16:14:10 +02:00
Romain Bayle c44e3025f9 option success_hints added to the struct Watchargs instead of Args 2023-05-02 22:46:41 +02:00
Romain Bayle 5d3696a9e6 feat(cli): added success-hints option for the rustlings command
closes #1373
2023-05-01 03:04:06 +02:00
Sebastian LaVine a4a5691a7b
feat: Add "!" command to rustlings watch 2023-04-16 21:44:08 -04:00
Alexandre ESSE d7111cb4a3 fix(main.rs): remove trailing spaces 2023-03-31 11:58:15 +02:00
liv 7f1754ecc5 release: 5.4.1 2023-03-10 17:39:59 +01:00
Nidhal Messaoudi 1acbbb6d43 Fixing the progress percentage 2023-02-27 21:17:45 +01:00
liv fc9fb536ca release: 5.4.0 2023-02-12 18:01:48 +01:00
wjwrh 1721ddc231 Fix the problem of different edition between rustc and rust-analyzer 2023-02-05 14:10:23 +08:00
liv 2b30cec974
Merge pull request #1319 from cloppingemu/main
fix(verify): progress bar percent now updates with the number of files verified
2023-01-11 12:25:09 +01:00
TenzinRabgy 8e36256eac chore(watch): decrease watch delay
closes #1215
2023-01-04 04:49:51 -05:00
himanshu soni 951826e6b5 fix(verify): progress bar proportion now updates with the number of files verified 2023-01-03 23:54:01 +09:30
liv b8d4bb1f13
Merge pull request #1316 from tklauser/fix-fn-typo
Fix typo in method name
2023-01-03 14:19:17 +01:00
Tobias Klauser 1b9d4bbf72
Fix typo in method name 2023-01-03 14:14:07 +01:00
liv 142633533e
Merge pull request #1294 from dbarrosop/nix-darwin
fix nix environment
2023-01-03 10:20:47 +01:00
liv 9ad884aadb chore: bump version 2022-12-23 16:55:42 +01:00
David Barroso b2df015fe6 when generating lsp config use RUST_SRC_PATH if set 2022-12-10 14:05:44 +01:00
liv 587e2d6dcd
Merge pull request #1220 from azzamsa/percentage
feat(verify): add progress percentage in watch mode
2022-10-14 10:30:32 +01:00
azzamsa 68388e5d4f feat(verify): add progress percentage in watch mode 2022-10-14 05:28:49 +07:00
Yuri Astrakhan 2940ad059d Apply uninlined-format-args clippy lint
This lint should also be applied to the excersies,
but I am not certain how to run it for all non-crate individual files.

To re-run:

```
rustup run nightly cargo clippy --fix -- -A clippy::all -W clippy::uninlined_format_args
```
2022-10-12 16:43:07 -04:00
mokou c923e7af73 chore: release 5.2.1 2022-09-06 12:22:17 +02:00
mokou 3309a01b5e chore: release 5.2.0 2022-08-27 19:48:15 +01:00
magnusrodseth d59dde320b chore: Add suggested changes 2022-08-18 12:47:26 +02:00
magnusrodseth 6f44cb1dd2 feat: Add reset command, given a filename 2022-08-17 16:31:53 +02:00
mokou d0c7b06eff chore: release 5.1.1 2022-08-17 10:43:50 +02:00
mokou 714a8075cc chore: bump version 2022-08-16 09:54:25 +02:00
mokou 5435b80841 chore: bump version 2022-07-16 14:30:04 +02:00
mokou ed0f278a8f chore: remove mod.rs files and exercises feature 2022-07-11 12:53:49 +02:00
liv 5fbf28dfec
Merge pull request #1038 from KatanaFluorescent/main
change edition to 2021 in exercices.rs
2022-07-11 11:57:59 +02:00
KatanaFluorescent a500ed2c3c
change edition to 2021 in exercices.rs
workaround for this issue https://github.com/rust-lang/rustlings/issues/1022
2022-07-01 16:49:36 +02:00
mokou 6588d9be22 chore: bump version 2022-07-01 16:48:34 +02:00
Jack Clayton be87cc9fa6 Add lsp command to fix rust-analyzer 2022-06-17 11:36:06 +08:00
Ryan Lowe 6fae5d6114
Merge branch 'main' into progress-indicator 2022-04-20 23:29:47 -04:00
mokou 9ec35d899c chore: bump version
Plus, remove the clog configuration file,
since that's not being used anymore.
2022-04-20 09:44:37 +02:00
mokou c811643d1e chore: bump library versions 2022-04-20 09:35:08 +02:00
mokou cf9f382873 chore: bump version 2022-04-14 11:16:00 +02:00
diannasoreil 74895df5a7
Merge pull request #738 from apogeeoak/text
fix(cli): Move long text strings into constants.
2022-04-04 17:09:49 +02:00
x-hgg-x 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
Ryan Lowe 9be012dda0 feat!: Add progress indicator
closes #360

BREAKING CHANGE: verify() has a new function signature so it can
know the current completion progress
2022-02-05 16:54:11 -05:00
apogeeoak c1f35e46df Merge branch 'main' into text 2022-02-04 19:27:42 -05:00
radicale 71a06044e6
fix(clippy1): Set clippy::float_cmp lint to deny (#907) 2022-02-04 14:39:09 +01:00
Galih wisnuaji 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
Antoine Busch 1caef0b434 feat: Add "quit" command to rustlings watch
closes: #842
2021-09-24 23:55:55 +10:00
diannasoriel 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
LIU JIE 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
Ben Armstead 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
Richthofen 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
apogeeoak f78c480208 fix(cli): Move long text strings into constants. 2021-04-27 17:14:54 -04:00
mokou 84461c20cb release: 4.4.0 2021-04-24 11:57:00 +02:00
Zerotask 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
mokou 347f30bd86 fix(main): Let find_exercise work with borrows 2021-04-21 16:21:56 +02:00
mokou 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
Patrick Hintermayer 1c6f7e4b7b
feat(list): updated progress percentage 2021-04-19 09:39:05 +02:00
Zerotask bd48544e25
style: formatted files with rustfmt 2021-04-18 15:40:47 +02:00
Zerotask 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
Matt Lebl 01e7f27aa6 refactor: change from match to if for NO_EMOJI 2021-03-20 11:53:40 -07:00
Matt Lebl 8d62a99637 feat: Replace emojis when NO_EMOJI env variable present 2021-03-19 02:16:07 -07:00
circumspect 833df0b8b3
chore: fix typo
Co-authored-by: Chenkail <40770208+Chenkail@users.noreply.github.com>
2021-03-12 15:26:57 +01:00
Larry Garfield 91ee27f22b
fix: Spelling error 2021-02-24 15:03:26 -06:00