Commit graph

539 commits

Author SHA1 Message Date
mo8it
e3b9124b85 Add a confirmation prompt to the init subcommand 2024-04-21 23:24:10 +02:00
mo8it
642c3bd37e Fix the generated Cargo.toml after rustlings init 2024-04-21 20:22:01 +02:00
mo8it
49e4a1fab0 Catch the usage of the old method 2024-04-21 19:34:55 +02:00
mo8it
f1a60780b9 Rename constant 2024-04-21 19:26:19 +02:00
mo8it
a2be6754bf Make the exercise name option for the hint subcommand 2024-04-18 17:17:39 +02:00
mo8it
01e6732e4d Improve resetting 2024-04-18 12:41:17 +02:00
mo8it
f04089b8bc Only take a reference 2024-04-18 11:40:54 +02:00
mo8it
2566f9aaf6 Place mods under all imports 2024-04-18 11:31:08 +02:00
mo8it
1eac00e89a Disable init command during development 2024-04-18 11:28:28 +02:00
mo8it
2e9b9a9f13 Move constant 2024-04-18 11:21:39 +02:00
mo8it
9f5be60b40 Use git stash to reset third-party exercises 2024-04-18 11:20:51 +02:00
mo8it
d64836f317 Avoid an unneeded syscall 2024-04-18 01:49:32 +02:00
mo8it
634e17a5ab Fix tests 2024-04-17 23:37:31 +02:00
mo8it
cb9f1ac9ce Require a main function in all exercises 2024-04-17 22:46:21 +02:00
mo8it
d83cc69afe Trim before checking if the hint is empty 2024-04-17 19:16:48 +02:00
mo8it
d6bb27ec20 Check for empty field values 2024-04-17 19:12:10 +02:00
mo8it
d42a6e7415 Print the path of the missing file 2024-04-17 18:59:40 +02:00
mo8it
b9167e9299 Remove redundant checks 2024-04-17 18:19:28 +02:00
mo8it
28ec0f864a Check the info file 2024-04-17 18:19:08 +02:00
mo8it
7005d8a400 Fix typo 2024-04-17 16:11:44 +02:00
mo8it
7f433ae28f Check the format version in dev check 2024-04-17 16:09:25 +02:00
mo8it
501b973c25 Add "dev update" 2024-04-17 15:55:50 +02:00
mo8it
30636e7cf3 Use colors inside the test 2024-04-16 21:46:07 +02:00
mo8it
0ac5aa7af2 Fix typo 2024-04-16 04:00:42 +02:00
mo8it
86d716cf8a Add comment about keeping dependencies 2024-04-16 03:43:34 +02:00
mo8it
87db9129bc Add the mode field 2024-04-16 03:37:58 +02:00
mo8it
6566c5904f Tell about updating Cargo.toml 2024-04-16 03:35:23 +02:00
mo8it
aa813fbce1 Update Cargo.toml on dev check 2024-04-16 03:30:28 +02:00
mo8it
c07cf5bffe Fix typo 2024-04-16 03:18:06 +02:00
mo8it
df448c069c Fix running dev commands 2024-04-16 03:15:14 +02:00
mo8it
25e7696565 Done dev init 2024-04-16 03:08:45 +02:00
mo8it
92777c0a44 Add the format version 2024-04-16 01:22:54 +02:00
mo8it
7ebc260924 Scetch the dev subcommand 2024-04-15 23:54:57 +02:00
mo8it
6f04570dd0 Revert "Implement third-party exercises trust handling"
This reverts commit 15ca847c37.
See https://rust-lang.zulipchat.com/#narrow/stream/334454-rustlings/topic/Proposal.3A.20Third-party.20exercises/near/433183449
2024-04-15 03:36:12 +02:00
mo8it
15ca847c37 Implement third-party exercises trust handling 2024-04-15 02:11:27 +02:00
mo8it
c613b70363 Print the trimmed final message 2024-04-14 17:28:01 +02:00
mo8it
7526c6b1f9 Update POST_INIT_MSG 2024-04-14 17:11:27 +02:00
mo8it
1cbabc3d28 Add the manual-run option 2024-04-14 17:10:53 +02:00
mo8it
bd10b154fe Clear the terminal after showing the welcome message 2024-04-14 16:07:17 +02:00
mo8it
070a780d7f Trim the final message 2024-04-14 16:04:05 +02:00
mo8it
8aef915ee7 Show the welcome message 2024-04-14 16:03:49 +02:00
mo8it
3da860927d Use push instead of extend_from_slice on chars 2024-04-14 14:53:32 +02:00
mo8it
9dcc4b7df5 Simplify the state file 2024-04-14 05:13:27 +02:00
mo8it
bee62c89de Add terminal links 2024-04-14 02:41:19 +02:00
mo8it
5c0073a948 Tolerate changes in the state file 2024-04-14 01:15:43 +02:00
mo8it
2a26dfcb00 Remove unused ContextLine 2024-04-13 15:30:35 +02:00
mo8it
24539666af Show the final message 2024-04-12 20:06:56 +02:00
mo8it
757723a7e8 Add missing newline 2024-04-12 19:30:36 +02:00
mo8it
ff4c752984 Print FAILED 2024-04-12 19:30:29 +02:00
mo8it
06d1089714 Set pending on fail in run mode 2024-04-12 19:24:26 +02:00
mo8it
6e827da570 It doesn't take minutes :P 2024-04-12 19:18:16 +02:00
mo8it
279ebdc153 Remove the modifier filter in the list mode 2024-04-12 19:16:52 +02:00
mo8it
9b0eeb815a Fix Display for Exercise 2024-04-12 19:07:17 +02:00
mo8it
44824718b2 Remove unused import 2024-04-12 18:58:01 +02:00
mo8it
8bd03093eb Add newline at the end of the generated .gitignore 2024-04-12 18:57:39 +02:00
mo8it
d5a6dee1b3 Handle the case when all exercises are done 2024-04-12 18:57:04 +02:00
mo8it
a534de0312 Implement going to the next exercise 2024-04-12 15:27:29 +02:00
mo8it
6807e63c5f Show done message 2024-04-12 02:45:54 +02:00
mo8it
2a95a3e966 Deal with long strings 2024-04-12 01:24:01 +02:00
mo8it
6494a8c50b Remove the watch subcommand 2024-04-11 16:54:27 +02:00
mo8it
e79bc727f0 Don't listen on keys with modifiers 2024-04-11 15:08:46 +02:00
mo8it
2e1a87d7d3 Take care of filters when resolving the selected exercise 2024-04-11 14:58:56 +02:00
mo8it
f53a0e8700 Panic if there are no exercises 2024-04-11 14:39:19 +02:00
mo8it
470dc65956 Fix selected when there are no rows 2024-04-11 14:35:30 +02:00
mo8it
fa1f239a70 Remove "I AM NOT DONE" and the verify mode and add AppState 2024-04-11 02:51:02 +02:00
mo8it
4bb6bda9f6 Separate event handlers 2024-04-10 16:02:12 +02:00
mo8it
256c4013b7 Keep hint displayed after resizing the terminal 2024-04-10 15:56:38 +02:00
mo8it
27e9520665 Add deny_unknown_fields 2024-04-10 14:40:49 +02:00
mo8it
b3642b0219 Remove todo 2024-04-10 14:35:42 +02:00
mo8it
193e0a03b2 Use light blue for the message 2024-04-10 14:31:08 +02:00
mo8it
a59acf8835 Show the current exercise path 2024-04-10 14:29:31 +02:00
mo8it
62e92476e6 Fix typo 2024-04-10 04:10:05 +02:00
mo8it
6255efe8b2 Show the invalid command to avoid confusion after resizing the terminal 2024-04-10 04:08:40 +02:00
mo8it
a46d66134b Fix shift of first output line 2024-04-10 03:56:41 +02:00
mo8it
f034899c7f Capture terminal resize events 2024-04-10 03:54:48 +02:00
mo8it
c9a5fa6097 Accept repeat keyboard events 2024-04-10 02:19:14 +02:00
mo8it
d1a965f019 Make the list mode part of the watch mode 2024-04-10 02:12:50 +02:00
mo8it
533a009257 Show the progress in the progress bar, not the current exercise index 2024-04-10 00:51:41 +02:00
mo8it
4a80bf6441 Colorize the progress bar 2024-04-10 00:42:32 +02:00
mo8it
c8d217ad50 Fix showing stdout and stderr 2024-04-09 22:20:12 +02:00
mo8it
a8ddc07a9a Add "exercises" to the end of the progress bar 2024-04-09 22:15:41 +02:00
mo8it
af85f2036c Print a newline before the progress bar 2024-04-09 22:06:55 +02:00
mo8it
ff6c15f9c1 Don't try to join the input thread 2024-04-09 22:04:10 +02:00
mo8it
4110ae21af Handle notify errors 2024-04-09 21:46:55 +02:00
mo8it
b15e0a279b Use shrink to fit before leaking the vector 2024-04-09 21:23:02 +02:00
mo8it
787bec9875 Use exercises as leaked 2024-04-09 21:16:27 +02:00
mo8it
f0ce2c1afa Improve event handling in the watch mode 2024-04-09 21:07:53 +02:00
mo8it
850c1d0234 Add progress bar to list 2024-04-09 19:37:39 +02:00
mo8it
ee7d976283 Use a green color on successful run 2024-04-09 17:15:12 +02:00
mo8it
d0fcd8ae8a Use a color for the message 2024-04-08 03:21:13 +02:00
mo8it
7c46e7ac69 Simplify building rows.
No more lifetimes championship :(
2024-04-08 03:16:38 +02:00
mo8it
1db5de9653 Fix selection after applying filters 2024-04-08 03:08:05 +02:00
mo8it
b5fc06bd56 Show more exercises before the selected one 2024-04-08 02:46:35 +02:00
mo8it
7c4d33654f Implement done/pending filters 2024-04-08 02:41:48 +02:00
mo8it
05729b27a0 Set a list offset 2024-04-08 01:49:38 +02:00
mo8it
0bf3f7e01f Lowercase "filter" in help footer 2024-04-08 01:34:41 +02:00
mo8it
bd5503a0d3 Show message on reset 2024-04-08 01:33:11 +02:00
mo8it
25e855a009 Merge imports 2024-04-08 00:36:26 +02:00
mo8it
394ca402a8 Remove the info_toml_content field 2024-04-07 23:57:54 +02:00
mo8it
db25cc9157 Ignore .rustlings-state.json 2024-04-07 23:54:32 +02:00
mo8it
93f8d1610d Some renamings 2024-04-07 23:37:40 +02:00
mo8it
99c9ab467b Implement resetting 2024-04-07 22:43:59 +02:00
mo8it
9a4ee47c52 Separate WatchState 2024-04-07 19:29:16 +02:00
mo8it
0a674a158d Separate UiState 2024-04-07 19:05:29 +02:00
mo8it
3bd26c7a24 State -> StateFile 2024-04-07 19:01:08 +02:00
mo8it
8c31d38fa1 Better variable name 2024-04-07 17:57:20 +02:00
mo8it
d988054ad8 Add UiState 2024-04-07 16:33:00 +02:00
mo8it
2db86833a9 Fix lifetimes 2024-04-07 13:12:40 +02:00
mo8it
b0a4750624 Implement "continue at" 2024-04-07 04:59:22 +02:00
mo8it
4f69285375 Shorten the help footer 2024-04-07 04:39:03 +02:00
mo8it
e640b4a1ff Add "Next" column 2024-04-07 04:36:27 +02:00
mo8it
7f5a18fa34 Show help message 2024-04-07 04:19:50 +02:00
mo8it
c4897139ae Prevent unneeded redraws 2024-04-07 03:41:23 +02:00
mo8it
372290a796 Done navigation 2024-04-07 03:38:18 +02:00
mo8it
f6db88aca8 Started with list 2024-04-07 03:03:37 +02:00
mo8it
0819bbe21f Can't use Ratatui for the watch mode :( 2024-04-07 01:17:53 +02:00
mo8it
18342b3aa3 Verify starting with some index 2024-04-07 01:16:56 +02:00
mo8it
c2daad8340 Return an error instead of exiting 2024-04-07 01:15:47 +02:00
mo8it
de9a0ed522 Update state 2024-04-06 01:46:22 +02:00
mo8it
3f2d41de9e Start with the state 2024-04-05 03:05:07 +02:00
mo8it
b0f19fd862 Start with the TUI 2024-04-05 03:04:53 +02:00
mo8it
157fe016e5 Remove ui.rs 2024-04-05 00:49:22 +02:00
mo8it
5a233398eb Fix tests 2024-04-05 00:44:43 +02:00
mo8it
919ba88413 Use the pretty format when testing even with -q 2024-04-05 00:43:36 +02:00
mo8it
445441ce25 Make gen-dev-cargo-toml a separate package
so that `cargo install` only installs `rustlings`
2024-04-04 23:16:57 +02:00
mo8it
34375b2ebf Clean up as a preparation for the TUI 2024-04-04 21:06:11 +02:00
mo8it
b6c434c445 Remove optional version field 2024-04-04 15:45:53 +02:00
mo8it
569a68eb73 Minify generated Cargo.toml 2024-04-04 15:44:48 +02:00
mo8it
1885ece2dc Merge branch 'main' 2024-04-04 15:31:59 +02:00
mo8it
190945352a Add comments about dev/Cargo.toml 2024-04-01 18:52:43 +02:00
mo8it
def8d2c569 Add VerifyState 2024-04-01 18:38:01 +02:00
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