snipe
Snipe
A simple-to-use command-line file finder and editor launcher
What is this?
Snipe is a file finder designed to be used as part of a command-line development environment for repeatedly searching for and opening code files in a project's code tree.
To search for a file, run snipe
to open the search interface and type in the name of the file you want to open.
When a file is selected with the Enter key, it is immediately opened using the executable defined in your EDITOR
environment variable, and when the editor is closed, you are returned to the search interface.
This way, Snipe is always available at a moment's notice by closing the currently open file, making jumping between many different files quick and seamless.
How does seaching work/ How does it differ from fuzzy finders?
Unlike existing "fuzzy finder" tools, Snipe doesn't use a fuzzy finding algorithm.
When processing a search query, Snipe doesn't match any text before the final directory seperator (/). This way, directory names are not included in the results unless they are explicitly stated.
For example, say there is a file in the location foo/bar/baz.txt
. This table demonstrates whether the following queries will find the file:
✅ foo/bar/baz.txt
✅ bar/baz.txt
✅ baz.txt
✅ baz
❌ foo/bar
✅ foo/bar/
❌ foo/
✅ bar/
❌ bar
Why does this exist?
This project came from a desire to explore alternative methods of programming after deciding that I wanted to move away from using VSCode.
While looking at the available options I discovered the Micro editor, and while the editor itself was functionally appealing, I realized that needing to type out the full path of each code file I wanted to open was slow.
I tried out a few existing finder programs, but wasn't able to find any that behaved the way I wanted them to. Naturally I then took the typical programmer approach of spending hours of my time creating tool that saves a few seconds.
This likely won't be part of my main workflow going forwards as I will inevitably end up using Vim or Emacs or something, but writing this was fun regardless!
Building from source
- Install the Crystal programming language
- Clone this respository
- Run
shards install
to install library dependencies - Run
make build
to build the program - The final executable will be built at
build/snipe
snipe
- 0
- 0
- 0
- 0
- 1
- about 1 month ago
- November 1, 2024
GNU General Public License v3.0
Sun, 22 Dec 2024 05:36:52 GMT