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