mo8it
e74f2a4274
Check for #[test]
with newline at the end
2024-08-20 13:39:14 +02:00
mo8it
631f44331e
Remove --show-output
for tests and use --format pretty
2024-08-20 13:08:15 +02:00
mo8it
b01fddef8b
Show progress of dev check
2024-08-19 23:52:22 +02:00
mo8it
78a8553f1c
"Continue at" quits the list
2024-08-19 23:29:17 +02:00
mo8it
72e557b3a9
Break help footer on narrow terminals
2024-08-17 16:54:44 +02:00
mo8it
3eaccbb61a
Restore the terminal after an error in the list
2024-08-17 16:49:07 +02:00
mo8it
b678bd8ed2
Disable mouse in the list
2024-08-17 16:34:43 +02:00
mo8it
2baa140615
q only quits the list
2024-08-17 15:53:34 +02:00
mo8it
e760f07767
Make it clear that reset only resets one exercise
2024-08-17 15:53:24 +02:00
mo8it
6ce31defb6
Ignore stdout of git init
2024-08-17 14:40:09 +02:00
mo8it
52a231ce2f
Update Ratatui
2024-08-09 02:17:01 +02:00
mo8it
16af981772
Hide stderr of cargo locate-project
2024-08-09 01:27:31 +02:00
mo8it
fc141b8dfc
Put Cargo.toml in ``
2024-08-09 01:16:45 +02:00
mo8it
82ebd29ff6
Add a special confirmation for initialization in a workspace
2024-08-09 01:14:08 +02:00
mo8it
f5737b5a49
Fix typos
2024-08-09 01:08:52 +02:00
mo8it
140c4e4812
Improve initialization in a Cargo workspace
2024-08-09 00:49:30 +02:00
mo8it
337460d299
Check the status of the cargo metadata
command
2024-08-09 00:12:49 +02:00
mo8it
e41c3a7c92
Use fixed seeds with ahash
2024-08-08 23:48:54 +02:00
Mo
9f9a754a64
Merge pull request #2076 from senekor/remo/snryotxotoxv
...
Improve initialization in workspace
2024-08-08 23:48:09 +02:00
Mo
f7b0cfe8d1
Merge pull request #2075 from senekor/remo/swzqnkxqzutw
...
Replace hashbrown with ahash
2024-08-08 23:12:43 +02:00
mo8it
4ce8667b9d
Show the exercise name in the waiting message
2024-08-08 22:48:53 +02:00
mo8it
0785b24192
Show a message before running the exercise
2024-08-08 22:41:41 +02:00
mo8it
34f02cf83d
Attach error message as context
2024-08-08 22:37:56 +02:00
Remo Senekowitsch
dc086c6bf1
Improve initialization in workspace
...
- Detect if we are in a cargo project more reliably.
(e.g. if `rustlings init` is run in the `src/` directory)
- Refuse to initialize rustlings in a non-workspace cargo project.
- Automatically populate the `workspace.members` field if `rustlings init` is
run in a workspace.
This may be considered risky, as there is no guarantee that's what the user
wanted to do. However, it is consistent with the behavior of `cargo new`.
Also, newcomers to Rust are unlikely to accidentally be in a cargo workspace,
as they won't know how to create one in the first place.
The use case for initialization in a workspace is when a workshop organizer
wants to use rustlings alongside other exerices and provide a single
repository with everything in one place.
2024-08-08 13:34:27 +02:00
Remo Senekowitsch
dc0ffbe16e
Replace hashbrown with ahash
...
hashbrown is already used in the standard library, but we want the
improved performance of the different hash algorithm.
Using ahash directly conveys this intent more clearly.
2024-08-08 11:12:17 +02:00
mo8it
8df66f7991
Allow initialization in a workspace
2024-08-08 02:45:18 +02:00
mo8it
11fc3f1e56
Fix errors not being shown after the welcome message
2024-08-08 00:41:12 +02:00
mo8it
693bb708b2
Add README to the solutions dir
2024-08-08 00:41:12 +02:00
mo8it
97719fe8da
Remove state file and solutions dir from .gitignore
2024-08-08 00:41:12 +02:00
mo8it
286a455fa9
Avoid using RUSTFLAGS
to not trigger rebuilding, especially in rust-analyzer
2024-08-07 23:35:50 +02:00
mo8it
bdf4960b6a
Fix exercise name shift in exercise check
2024-08-07 23:25:22 +02:00
mo8it
5016c7cf7c
Use trim_ascii
instead of trim
2024-08-02 16:28:05 +02:00
mo8it
1468206052
Stop on first exercise solved
2024-08-02 15:54:14 +02:00
mo8it
d1ff4b5cf0
Remove newline
2024-08-01 19:19:25 +02:00
mo8it
700a065abd
Fix rustfmt option
2024-08-01 19:19:14 +02:00
mo8it
3fc462f90f
Fix tests
2024-08-01 19:17:40 +02:00
mo8it
65a8f6bb4b
Run rustfmt on solutions in dev check
2024-08-01 19:14:09 +02:00
mo8it
e0f0944bff
Refactor check_solutions
2024-08-01 15:53:32 +02:00
mo8it
c7590dd752
Improve the runner
2024-08-01 15:23:54 +02:00
mo8it
33a5680328
Hide cargo build
warnings if there is no output
2024-08-01 11:28:26 +02:00
mo8it
455d87cadd
Fix capacity
2024-08-01 11:26:30 +02:00
mo8it
766f3c50ec
Add hint to run dev check
again after dev update
2024-08-01 01:07:56 +02:00
mo8it
802b97b2ed
Set stdin to null when running the binary of an exercise
2024-08-01 01:07:31 +02:00
mo8it
74fab994e2
Make the output optional
2024-07-28 20:30:23 +02:00
mo8it
3a99542f73
Run the final check in parallel
2024-07-28 17:39:46 +02:00
mo8it
1937b4bf66
Use the rexported crossterm from ratatui
2024-07-25 16:26:48 +02:00
mo8it
8beb290842
Test initialization
2024-07-25 16:14:38 +02:00
mo8it
a7a881809f
Check is_terminal
2024-07-08 12:53:44 +02:00
mo8it
a5f221aa39
Improve some messages
2024-07-07 15:53:48 +02:00
mo8it
01b8432d58
Mark the last exercise as done
2024-07-07 13:55:39 +02:00
mo8it
652f0c7676
Fix tests
2024-07-04 23:39:06 +02:00
mo8it
4bf0ddc0e1
Check exercises unsolved
2024-07-04 21:12:57 +02:00
mo8it
a3657188b6
Check for missing TODO comments
2024-07-04 20:28:46 +02:00
mo8it
6cf75d569b
Fix typos
2024-07-02 14:28:08 +02:00
mo8it
67ce9b9e56
Underline "next"
2024-07-02 01:50:05 +02:00
mo8it
bdd76cdf77
Merge branch 'run-sols-in-parallel'
2024-07-02 01:43:22 +02:00
mo8it
5bf8d1fa1b
Fix typos
2024-06-14 13:32:37 +02:00
mo8it
42a3503906
Run solutions in parallel
2024-06-10 17:42:11 +02:00
mo8it
08ac11ff22
Add --require-solutions option to dev check
2024-06-02 00:11:41 +02:00
mo8it
6ae4a979f4
Check for unexpected files in the solutions dir
2024-06-02 00:03:48 +02:00
mo8it
a3ada0eee8
Print the exercise solution on check
2024-06-01 21:51:45 +02:00
mo8it
50530fa3cf
Don't try to check a solution that doesn't exist
2024-06-01 21:50:11 +02:00
mo8it
611f9d8722
Check that all solutions run successfully
2024-06-01 21:48:15 +02:00
mo8it
8e9c99ae5b
Change condition order
2024-06-01 15:10:43 +02:00
mo8it
84a818dbda
Update the bins buffer capacity
2024-06-01 15:01:18 +02:00
mo8it
beb7b24e8e
Add solutions to bins
2024-05-25 18:19:30 +02:00
mo8it
cf3f6fd6a1
Fix typo
2024-05-14 01:50:03 +02:00
mo8it
c8481d35c1
Done documentation
2024-05-14 01:49:22 +02:00
mo8it
96a44f3dcf
Make it more clear that only one char is expected
2024-05-14 01:23:58 +02:00
mo8it
0ae66d1860
Remove inline
2024-05-14 00:55:07 +02:00
mo8it
700605ff35
Document init
2024-05-14 00:35:12 +02:00
mo8it
a67e63cce0
Document info_file
2024-05-13 22:02:45 +02:00
mo8it
d48e86b154
Use public comments for public items
2024-05-13 21:40:40 +02:00
mo8it
39a19f9450
Document exercise
2024-05-13 21:36:20 +02:00
mo8it
2dfc7cdb1a
Document embedded
2024-05-13 21:07:04 +02:00
mo8it
e80e91faf2
Thanks Clippy :)
2024-05-13 17:12:58 +02:00
mo8it
4ae3fcc3ca
Don't skip exercises on file changes
2024-05-13 17:06:11 +02:00
mo8it
17a2d42ffd
Better variable naming
2024-05-13 16:44:48 +02:00
mo8it
a7bc6d53a5
Only send Unrecognized
on ENTER if the last input wasn't valid
2024-05-13 16:39:38 +02:00
mo8it
f6cf6c611c
Fix Windows terminal links
2024-05-13 04:11:11 +02:00
mo8it
8b2d9ed503
Use PartialEq instead of matches!
2024-05-13 02:45:12 +02:00
mo8it
d2b5906be2
No more word input
2024-05-13 02:37:32 +02:00
mo8it
f9e35a4344
Improve input handling
2024-05-13 02:32:25 +02:00
mo8it
0525739046
Fix invisible input on Windows
2024-05-13 02:20:04 +02:00
mo8it
11fda5d70f
Move info.toml to rustlings-macros/
...
This improves the experience for contributors on Windows becuase
Windows can't deal with git symbolic links out of the box…
2024-05-13 01:25:38 +02:00
mo8it
d9df809838
Optimize embedded dirs
2024-05-12 17:40:53 +02:00
mo8it
2d0497bf3b
Fix errors
2024-05-02 17:08:39 +02:00
mo8it
5e7afce019
Document dev
2024-05-01 19:47:35 +02:00
mo8it
74180ba1cc
Check for tests while test=false
2024-05-01 19:16:59 +02:00
mo8it
d425dbe203
Test run_cmd
2024-05-01 18:08:18 +02:00
mo8it
32415e1e6c
Document cmd
2024-05-01 17:55:49 +02:00
mo8it
8e178ac60d
Document and test cargo_toml
2024-04-30 02:48:56 +02:00
mo8it
3ae6c208b2
Disable the pretty format because of --show-output
2024-04-30 02:43:51 +02:00
mo8it
563727f47f
test next_pending_exercise_ind
2024-04-30 02:14:20 +02:00
mo8it
2b7ac91505
Add press_enter_prompt
2024-04-30 01:46:57 +02:00
mo8it
52c0f5b39e
Fix clearing the terminal
2024-04-30 01:41:08 +02:00
mo8it
fef66b80ad
Implement From<ExerciseInfo> for Exercise
2024-04-30 01:39:31 +02:00
mo8it
b6f40f2ec8
Document main and app_state
2024-04-29 17:01:47 +02:00
mo8it
3c7e7368b2
Add solutions to the initialized .gitignore
2024-04-28 23:25:44 +02:00
mo8it
593f0e0916
Revert escaping with ESC in list to be able to clear the message
2024-04-28 23:22:11 +02:00
mo8it
1508938fed
Highlight the active filter
2024-04-28 23:21:13 +02:00
mo8it
aedeff8b24
Reorder the footer keys
2024-04-27 23:45:26 +02:00
mo8it
75e2804c83
Esacpe the list with ESC
2024-04-27 23:42:09 +02:00
mo8it
ea40804371
Put long version in ()
2024-04-27 23:38:26 +02:00
mo8it
cdeb8ce229
Fix initialization
2024-04-27 17:31:51 +02:00
mo8it
2150d629b1
Use --show-output instead of --nocapture
2024-04-27 04:15:16 +02:00
mo8it
c82c367324
Respect the target-dir config and show tests' output
2024-04-27 04:14:59 +02:00
mo8it
5920a58e83
Include dev/Cargo.toml
2024-04-25 19:58:55 +02:00
mo8it
3ce3235294
Show warnings and errors in the tests
2024-04-25 16:08:07 +02:00
mo8it
c51f1b3f31
Thanks Clippy :D
2024-04-25 15:58:46 +02:00
mo8it
8bf8b19a5d
Improve output after initialization
2024-04-25 15:51:12 +02:00
mo8it
6d1d42d2dd
Try to run git init
2024-04-25 15:41:52 +02:00
mo8it
212c82c6f6
Don't ignore .vscode/extensions.json when developing third-party exercises
2024-04-25 15:34:58 +02:00
mo8it
fcefa3d614
Name the exercises' package exercises
2024-04-25 15:33:24 +02:00
mo8it
b3b4b7d59c
Update initialized .gitignore
2024-04-25 15:23:24 +02:00
mo8it
c7c8d99680
Moar responsive :P
2024-04-25 15:22:11 +02:00
mo8it
14fe248b4b
Optimize the notify event handler
2024-04-25 14:44:12 +02:00
mo8it
1f1a62d83e
Raise the output capacity
2024-04-25 14:43:02 +02:00
mo8it
428998a4cf
Quicker response to file changes
2024-04-25 03:28:44 +02:00
mo8it
2af0cd9cce
Replace mode
by test
and strict_clippy
2024-04-25 03:25:45 +02:00
mo8it
f92d45fa68
Use write macros instead of write_fmt
2024-04-25 02:03:26 +02:00
mo8it
67fa017742
Use os_pipe
2024-04-25 01:56:01 +02:00
mo8it
d8c2ab8349
Fix tests
2024-04-24 16:26:48 +02:00
mo8it
8a085a0a85
Dump solution and show its path
2024-04-24 02:52:30 +02:00
mo8it
edf5762612
Preallocate path
2024-04-24 01:17:39 +02:00
mo8it
ef02c6c6ab
Use the embedded info.toml in debug mode
2024-04-24 00:58:52 +02:00
mo8it
e4ee2cd548
Don't write solutions in debug mode
2024-04-24 00:48:58 +02:00
mo8it
b77007887c
Write the solution file on done
2024-04-24 00:47:46 +02:00
mo8it
2dac8e509b
Refactor embedded files to add solutions
2024-04-23 19:18:25 +02:00
mo8it
86684b7fc9
Document dev commands
2024-04-22 00:45:16 +02:00
mo8it
4ce2714da1
Add --no-git
2024-04-22 00:38:34 +02:00
mo8it
e93a99e19e
Third-party exercises should be in a separate Git repo
2024-04-22 00:34:55 +02:00
mo8it
61a84a2c11
dev init -> dev new PATH
2024-04-21 23:43:49 +02:00
mo8it
30040d7778
Add a disclaimer to the state file
2024-04-21 23:39:44 +02:00
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