-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor Kitty completely #60
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
b3e8593
to
f920a17
Compare
Includes: * Making everything async * Dependencies for requests * Extending languages * Tests * Templates * etc..
f920a17
to
72a811a
Compare
1afc8b9
to
9f5f929
Compare
Submitting a Java solution produces the following behaviour:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Goals
I had a few main goals with this refactor:
My main motivation for the refactor is that I feel like I have improved a lot at Rust in the past two years - and I wanted to apply that to kitty. As you can see, the first thing I did was remove all the code in the project so I could go through it, slowly adding/rewriting everything step by step.
What's changed?
As for what has actually changed in the code, this list can be seen as a rough summary:
lazy_static
config object. The newApp
type is central here.eyre
for error handling, heavily utilisingwrap_err
(analagous toanyhow
'scontext
, if you're familiar with that) to provide specific error messages. Combined with--verbose
showing a backtrace, this allows for tracking down a problem more easily.history
andrandom
commands have been removed. These commands were seemingly not used often, and it streamlines the purpose of kitty a bit more. If there is a need for them, we can add them back down the line.Subcommand progress
Tracks how many of the current subcommands have been refactored/reintroduced.
config
get
help
history
langs
open
random
submit
test
update