#!/bin/sh

# fzf-man: fuzzy search manual pages

if [ "$OPENFLAG" = 0 ]; then
	input="$*"; page="${input%%)*}";
	name="${page%%[ (]*}"; section="${page#*(}"
	if [ "$name" = "$section" ]; then
		man "$name"
	else
		man "$section" "$name"
	fi; exit
fi

[ -z "$FZF_HISTDIR" ] &&
	export FZF_HISTDIR="${XDG_STATE_HOME:-$HOME/.local/state}/fzf"
mkdir -pv "$FZF_HISTDIR"
export FZF_HIST="$FZF_HISTDIR/manual_history"

apropos -l "${@:-.}" | fzf --history="$FZF_HIST" --prompt="man: " \
	--preview='MANWIDTH=$FZF_PREVIEW_COLUMNS OPENFLAG=0 fm {}' \
	--preview-window="hidden" --tiebreak="begin" \
	--bind 'ctrl-v:toggle-preview,ctrl-space:toggle-preview' \
	--bind 'enter:execute(echo {1} >> "$FZF_HIST"; OPENFLAG=0 fm {})'