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
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
apogeeoak
2e84f34cf3
chore: Updated source to follow clippy suggestions.
2021-02-09 18:21:18 -05:00
Abdou Seck
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
Abdou Seck
0b9220c1fc
Add looks_done method to Exercise to expose a resolution state
2021-01-08 13:21:00 -05:00
mokou
a303d508cf
release: 4.3.0
2020-12-29 11:39:26 +01:00
Brock
fa9f522b7f
feat: Crab? ( #586 )
...
Crab?
2020-11-11 23:06:14 +01:00
Caleb Webber
838f9f3008
feat: add "rustlings list" command
2020-11-10 18:36:19 +01:00
Caleb Webber
d61b4e5a13
fix: log error output when inotify limit is exceeded
...
closes #472
2020-11-05 19:30:50 -05:00
Roberto Vidal
5643ef05bc
fix: more unique temp_file
2020-10-30 14:39:28 +01:00
Alexx Roche
c03e1e6c6c
chore: fixed test name
2020-09-27 21:57:51 +02:00
Étienne Barrié
81f8c2f83c
chore: Run cargo fmt
2020-08-10 10:42:54 -04:00
Adi Vaknin
4f2468e14f
feat(cli): Added 'cls' command to 'watch' mode ( #474 )
2020-07-23 20:23:27 +02:00
Alexx Roche
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
mokou
55a9284665
chore: Move from master branch to main branch
2020-06-14 14:48:51 +02:00
Abdou Seck
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
Abdou Seck
02a2fe4871
Collapse nested if statements
2020-06-04 11:18:09 -04:00
Abdou Seck
40741c5b0b
Use .to_string rather than format macro
2020-06-03 17:18:48 -04:00
Rohan Jain
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
Roberto Vidal
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
Mario Reder
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
Roberto Vidal
43dc31193a
refactor: exercise evaluation
...
Exercise evaluation (compilation + execution) now uses Results
Success/failure messages are standardized
2020-02-20 20:27:05 +01:00
Kate Hart
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
vyaslav
8143d57b4e
feat(watch): show hint while watching
2019-11-18 20:52:57 +01:00
Roberto Vidal
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
Roberto Vidal
36a033b87a
feat(cli): check for rustc before doing anything
...
Addresses #190 .
2019-11-11 18:00:54 +01:00
marisa
1a7bb5a400
Address feedback
2019-11-11 17:47:45 +01:00
marisa
48c35bcfbc
fix tests
2019-11-11 17:28:19 +01:00
marisa
ec2d4bd3ee
Merge branch 'master' into refactor-hints
2019-11-11 17:21:06 +01:00
marisa
ce9fa6ebbf
feat(hint): Add test for hint
2019-11-11 17:19:50 +01:00
marisa
9bdb0a12e4
feat: Refactor hint system
...
Hints are now accessible using the CLI subcommand `rustlings hint
<exercise name`.
BREAKING CHANGE: This fundamentally changes the way people interact with exercises.
2019-11-11 16:51:38 +01:00
Roberto Vidal
2cdd61294f
feat: improve watch
execution mode
...
The `watch` command now requires user action to move to the next
exercise.
BREAKING CHANGE: this changes the behavior of `watch`.
2019-11-11 16:23:35 +01:00
marisa
627cdc07d0
feat: Index exercises by name
...
BREAKING CHANGE: This changes the way you use `rustlings run` by now
requiring an abridged form of the previous filename, e.g:
`rustlings run exercises/if/if1.rs` becomes
`rustlings run if1`
2019-11-11 15:46:32 +01:00
WofWca
3aff590855
improvement(watch): clear screen before each verify()
...
Closes #146
2019-11-09 22:24:24 +08:00
Jubilee Young
83be517e77
watch: clears terminal before entering loop
...
If someone is sliding in and out of "watch" mode, it can make it hard
to tell which error messages are still relevant. This patch resolves
that by clearing the terminal entirely before entering watch's loop.
2019-11-09 00:57:36 -08:00
Viacheslav Avramenko
1c4c8764ed
feat: Added exercise for struct update syntax
2019-10-21 14:50:59 +02:00
Fredrik Jambrén
ba85ca32c4
Check if changed exercise file exists before calling verify.
2019-07-11 23:54:18 +02:00
Dan Wilhelm
f72e0ca979
chore: Remove missed highlighting char from Issue #133
2019-06-10 20:24:18 -07:00
liv
62696f5819
Remove highlighting and syntect
2019-06-05 12:18:50 +02:00
Eddy Petrisor
ca6bf966dd
Cargo fmt the rustlings application code
...
Signed-off-by: Eddy Petrisor <eddy.petrisor@gmail.com>
2019-05-22 14:50:23 +03:00
liv
35c3d0b3fc
Revert --nocapture flag
...
This closes #149 and #152
2019-05-07 12:31:02 +02:00
liv
7eddee6f7a
add a slightly more helpful error message
2019-04-22 18:43:39 +08:00
liv
f2c48cfac5
fix the --nocapture functionality
2019-04-22 18:42:32 +08:00
liv
bfcf38c8bc
damn it
2019-04-22 07:05:46 +02:00
liv
9e328da641
use -- --nocapture when testing
2019-04-22 05:49:23 +02:00
Chris Pearce
77de6e5d6a
Clean up test includes for File and Path
2019-04-12 23:14:15 +01:00
Chris Pearce
8c867a001a
Remove unwrap on canonicalize result
2019-04-12 22:24:13 +01:00
Chris Pearce
d01a71f7de
Extract exercise struct to encapsulate path logic
2019-04-12 08:58:25 +01:00
bors
ffb165ce26
Auto merge of #140 - cjpearce:fix/test-race-condition, r=komaeda
...
Fix intermittent test failure caused by race condition
First public pull request 😬
There's an intermittent integration test failure when you use multiple test threads (at least for me on a mac). I narrowed it down to two tests each spawning a process using `Command` which then try to compile the same file at the same time. If the timing doesn't work out, they both try to compile, and then one process runs `clean` before the other can run the executable - causing a panic.
![Screenshot 2019-04-07 at 19 54 55](https://user-images.githubusercontent.com/3453268/55688324-20520980-596f-11e9-8474-5215d61a4387.png )
You can prevent it from happening by running with a single thread (`cargo test -- --test-threads=1`), because the `Command` blocks. That's not a particularly good solution though because it's not something you can configure in `Cargo.toml`.
I considered making the affected tests just run serially, but it occurred to me that this could also happen if someone accidentally runs rustlings in watch mode in two terminals without realising it. I wound't consider this that unlikely given it's a tool for learning.
I fixed it by ensuring that the executables made from separate processes don't conflict by appending a process id to the output executable name. I also extracted the commands into a single file next to `clean` so that we don't have to repeat the generated file name everywhere and risk missing something.
2019-04-07 22:37:34 +00:00
Chris Pearce
0c7bd12372
Fix test failing due to panic
2019-04-07 20:13:04 +01:00
Chris Pearce
592ae6b4d2
Add process id to temp file name
2019-04-07 17:28:51 +01:00
Chris Pearce
4fa79ee02f
Extract command builders into util
2019-04-07 17:26:01 +01:00
liv
022921168d
fix watch command path execution
2019-03-27 10:58:56 +01:00
lyn
f43cb124f6
add tests
2019-03-20 21:05:45 +01:00
Kyle Isom
9fc4a83987
Be nicer when rustlings isn't run from the right directory.
...
Before, rustlings would panic if it wasn't in the right directory. It
took me a minute to figure out why, and this wasn't my first intro to
Rust. It would probably help new users if they saw a helpful message
instead of a stack trace.
2019-03-17 11:43:47 -07:00
Andrew Bagshaw
3b5dfac44e
Remove unnessecary whitespace
2019-03-15 16:01:45 -07:00
Andrew Bagshaw
a6a8b61b12
Change to \n
2019-03-15 12:47:06 -07:00
Andrew Bagshaw
6cd42bb821
Add clear break between verify executions
2019-03-13 14:08:28 -07:00
Andrew Bagshaw
4d7ce6e571
deduplicate
2019-03-13 13:53:24 -07:00
Andrew Bagshaw
3f114cc069
Start verification at most recently modified file
2019-03-13 13:50:54 -07:00
lyn
abf175111d
clippy-ify
2019-03-11 15:09:20 +01:00
lyn
70e59cca3c
standardize exercise running via an external toml file
2019-03-06 21:47:33 +01:00
Shaun Bennett
04d0f78a2c
Fix file watching for vim swap files
2019-03-06 18:38:55 +00:00
Hirokazu Hata
5cd5be8847
Add thread exercises to verify entrypoint
2019-02-17 14:03:52 +09:00
liv
02ceb0ba8c
fix test command execution
...
seems like i forgot that you actually need to run executables created
with `rustc --test`! this also reworks the "test1" exercise a bit
closes #108
2019-02-15 12:06:05 +01:00
liv
320119ce96
add "--color always" to the other rustc commands
2019-01-25 15:11:23 +01:00
liv
8cff8de493
add more detailed command help
2019-01-23 21:43:32 +01:00
liv
dc1f3b79f8
add tests; refactor exercise links
2019-01-23 20:48:01 +01:00
liv
141db7795b
add --test run flag
2019-01-09 22:04:08 +01:00
liv
17e12433cb
add a test
2019-01-09 21:47:50 +01:00
liv
b90f642029
remove the ex*.rs files
2019-01-09 21:26:12 +01:00
liv
7fa2f87c8b
make the default output a bit nicer
2019-01-09 20:44:55 +01:00
liv
e03a98cbf6
rustfmt
2019-01-09 20:33:58 +01:00
liv
a388bb3798
split codebase
2019-01-09 20:33:43 +01:00
liv
679508b278
ah well it was worth a try
2019-01-09 20:09:49 +01:00
liv
ad26a6d0e6
revert
2019-01-09 20:08:48 +01:00
liv
a0d21020df
update for rust 2018
2019-01-09 20:07:19 +01:00
Erik Vesteraas
9d16d6b63d
Add watch mode, and don't panic on clean failure
2018-11-26 12:45:29 +01:00
olivia
a4b4350b70
switch theme to base16 eighties
2018-11-26 11:29:39 +01:00
olivia hugger
a15b276d96
Merge pull request #98 from evestera/rustc-color-always
...
Propagate colored output from rustc
2018-11-26 11:11:35 +01:00
olivia
1d495ff7b9
add markdown output for default command
2018-11-26 11:10:38 +01:00
Erik Vesteraas
f18590f0a1
Add color=always to rustc options
2018-11-26 10:54:08 +01:00
olivia
e0ee5f1d7f
implement run command
2018-11-23 15:18:43 +01:00
olivia
6baac88574
fmt
2018-11-14 20:12:20 +01:00
olivia
b8789f09e0
add empty line after ascii
2018-11-14 20:08:38 +01:00
olivia
6cc16edff0
add a fancy ascii header
2018-11-14 20:04:48 +01:00
olivia
b3c52803e9
color output messages
2018-11-14 19:23:16 +01:00
olivia
18a1447a65
add the whole curriculum
2018-11-09 22:31:54 +01:00
olivia
f7846af7ac
right let's try this one again
2018-11-09 20:31:14 +01:00
olivia
850a13e913
oh, commit this
2018-05-22 22:28:13 +02:00
olivia
4eca18050f
put it in a separate file
2018-05-22 22:26:09 +02:00
olivia
69ff4a8b25
replace macros with more general methods
2018-05-22 22:23:22 +02:00
olivia
2f1e3bc0c7
small fixes
2018-05-22 21:24:43 +02:00
olivia
6d50965344
port the first exercise from the old curriculum
2018-05-22 21:22:21 +02:00
olivia
89f2a986c0
rustfmt
2018-05-16 15:30:30 +02:00
olivia
5310dfd406
make the initial output prettier
2018-05-16 15:27:57 +02:00
olivia
39b3e3225a
add another example
2018-05-16 15:27:52 +02:00
olivia
d9946a91d4
make the example work
2018-05-16 15:23:14 +02:00
olivia
8ea1b17fd9
format
2018-05-14 19:13:13 +02:00
olivia
97efff760d
use macros
2018-05-14 18:41:58 +02:00
olivia
595a91df55
experiment
2018-05-06 18:59:50 +02:00
olivia
8ecc1e6ff1
move to another file
2018-05-06 17:27:03 +02:00
olivia
d0e3a6e770
make return explicit
2018-04-26 22:15:18 +02:00
olivia
7148233950
add a sample
2018-04-26 22:14:20 +02:00
olivia
3ffefa32e1
init new cargo project
2018-04-26 21:41:19 +02:00
olivia
5e89d1e888
move old files to a separate directory
2018-04-26 21:29:11 +02:00
Carol (Nichols || Goulding)
426e5cf3f5
Don't be lazy, actually read the file instead of including it at compile time
2018-03-04 14:13:55 -05:00
Carol (Nichols || Goulding)
70aa18699b
Make a handlebars helper that uses prlink to generate a link from a file
2018-03-04 14:11:11 -05:00
Carol (Nichols || Goulding)
2ac0d5982c
Introduce handlebars to be able to do templating
2018-03-04 12:58:40 -05:00
Carol (Nichols || Goulding)
87d8131f1f
Start a script to regenerate README.md from a template
...
So far this doesn't actually do any templating, just adds a note about
the README being autogenerated :)
2018-03-04 12:41:55 -05:00