rat
rat copied to clipboard
Would Like to Help
Sorry to clutter issues, but couldn't find a real contact method.
This project is sweet. I'd like to help. Anything specific you'd like someone to take a crack at?
I'm working on getting a Gitter set up but ~~it'll probably be a few days~~ (Update: just kidding, it's up and running at https://gitter.im/rat-chat).
Brain dump of some things on my radar:
Lower commitment
Probably the lowest hanging fruit is adding config examples if you want to just play with things a bit and submit a PR to the examples/
directory. I saw someone mention that this might fill a niche for Mercurial users who want something like tig, so you could look into that... Otherwise, how could this be used for managing Docker, Kubernetes, etc? Is there a tool that you use frequently that could be made easier/faster with Rat? As we uncover more use cases, that will generate ideas for new features.
Write some automated tests 😬
Adding an AUR package #15
~~Adding a homebrew package #5~~
Mid commitment
Write some external annotators. On my radar is a unified diff parser/annotator to implement applying patches (e.g. git staging single hunks and single lines) but I haven't looked too deeply into it. Check out the annotators/
dir for an example that parses regexes.
Refactoring. The configuration parsing stuff in particular could probably be rewritten or heavily cleaned up.
#23. This can be simple at first, maybe just write some stuff to a rat.log
file in current directory when debug flag is provided?
Higher commitment
I'd like to have support for multiple key-stroke keybindings. There's issue #4 for that.
Issue #3: would be nice for folks to be able to use whatever keybindings they want for the builtin actions (moving cursor, paging up/down, etc.)
Issue #17: sourcing many files from ~/.config/rat
instead of just one. I also think it would be interesting to source any .ratrc
files in current working directory or containing directories (similar to ) so that you could have project specific rat configs. This would require a protocol for merging mode definitions as you travelled upwards, but I don't think it'd be that crazy. The project is still at the stage where I'm not planning any backwards compatibility so we can try out things like this and if it doesn't work out or we decide it's a bad idea, we can just take it out.
Somewhere out on my radar is being able to mark multiple lines and then execute some command with all of the selected ones. This would allow you to diff two arbitrary git commits, for example.
Implement searching with /
, n
, and S-n
(#22). I think this should use an annotator under the hood. Would also be nice if somehow I could hit n
and S-n
to go to next/previous annotation of some specified class. Been mulling this over but still not sure how exactly it should work so if you have some ideas there...
Awesome! I’ll reply here or on the appropriate issue if I start to attempt any of those
I'm going to try and write some tests for the config file
Would you object if I added a real parser using this and sent a PR? You could feel free to reject the PR if you don't like it, just wondering if you might be interested.
https://github.com/pointlander/peg
No objections. That would be awesome 👍