`fzf-make` is a command line tool that executes make target using fuzzy finder with preview window.
![License:MIT](https://img.shields.io/static/v1?label=License&message=MIT&color=blue&style=flat-square)
[![Latest Release](https://img.shields.io/github/v/release/kyu08/fzf-make?style=flat-square)](https://github.com/kyu08/fzf-make/releases/latest)
[![crates.io](https://img.shields.io/crates/v/fzf-make?style=flatflat-square)](https://crates.io/crates/fzf-make)
![Crates.io Total Downloads](https://img.shields.io/crates/d/fzf-make)
[English]
[Deutsch]
[Français]
# 🛠️ Features
- Select and execute a make target using fuzzy-finder with a preview window by running `fzf-make`!
- Execute the last executed target(By running `fzf-make --repeat`.)
- Command history
- Support `include` directive
- **(Scheduled to be developed)** Support config file
# 👓 Prerequisites
- **(If you install fzf-make via a package manager other than Homebrew)** [bat](https://github.com/sharkdp/bat)
- In the future, we intend to make it work with `cat` as well, but currently it only works with `bat`.
# 📦 Installation
## macOS
### Homebrew
You don't need to install `bat` because `fzf-make` will install it automatically via Homebrew.
```sh
# install
brew install kyu08/tap/fzf-make
```
```sh
# update
brew update
brew upgrade fzf-make
```
## Arch Linux
`fzf-make` can be installed from the [AUR](https://aur.archlinux.org/packages/fzf-make) using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers). For example:
```sh
paru -S fzf-make
```
## NixOS / Nix (package manager)
`fzf-make` can be run from the repository (latest version)
```sh
nix run github:kyu08/fzf-make
```
Or from the nixpkgs (channel >= 23.05)
```sh
nix run nixpkgs#fzf-make
```
> **Note**
> You may need to enable experimental feature. In that case, execute the following command to enable them
> `echo "experimental-features = nix-command flakes" | tee ~/.config/nix/nix.conf`
## OS-independent method
### Cargo
```sh
cargo install --locked fzf-make
```
# 💡 Usage
## Run target using fuzzy finder
1. Execute `fzf-make` in the directory include makefile(file name should be one of `GNUmakefile`, `makefile`, `Makefile`)
1. Select make command you want to execute. If you type some characters, the list will be filtered.