From cb5adc6720655e3df7a2b09e49d947da9e5074b0 Mon Sep 17 00:00:00 2001 From: Luca Bilke Date: Fri, 5 Apr 2024 21:43:47 +0200 Subject: [PATCH] add find_project function --- .config/lf/lfrc | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/.config/lf/lfrc b/.config/lf/lfrc index c7933b00..016bf268 100644 --- a/.config/lf/lfrc +++ b/.config/lf/lfrc @@ -194,6 +194,37 @@ cmd find_word ${{ return 0 }} +cmd find_project ${{ + dirs=$(echo $XDG_DOCUMENTS_DIR/dev/*/*) + histfile="$XDG_DATA_HOME/lf/project_history" + + clear + project="$(echo $dirs | xargs -n1 basename | fzf \ + --cycle \ + --preview-window="right,33%" \ + --bind="space:accept,focus:transform-preview-label(echo {})" \ + --scheme='history' \ + --history="$histfile" \ + --header="Projects" \ + --preview=' + f={} + file=$(echo $XDG_DOCUMENTS_DIR/dev/*/* | xargs -n1 | sed -n "/\/$f$/p") + if [ -f "$file" ] && [ -r "$file" ]; then + head -$LINES "$file" + elif [ -d "$file" ] && [ -r "$file" ]; then + ls -pLHAN1 --color=always --group-directories-first "$file" + fi + ' | + tr -d '\n' + )" + file=$(echo $dirs | xargs -n1 | sed -n "/\/$project$/p") + [ -d "$file" ] && lf -remote "send $id cd $file" + [ -f "$file" ] && lf -remote "send $id select $file" + return 0 + + +}} + cmd extract ${{ for f in $fx; do aunpack "$f" @@ -247,10 +278,11 @@ map :toggle; down map shell map shell-wait map fzf 'Shortcuts' 'cat $XDG_DATA_HOME/lf/shortcuts 2>/dev/null' ':' '1' '2' '85%' '^' +map find_project map t fzf 'Tags' 'cat $XDG_DATA_HOME/lf/tags 2>/dev/null' ':' '1' '1' '50%' map m fzf 'Marks' 'cat $XDG_DATA_HOME/lf/marks 2>/dev/null' ':' '1' '2' '85%' '^' map f fzf 'Files' 'find -L $PWD' ':' '1' '1' '50%' -map find_word +map g find_word map "'" mark-load map '"' mark-remove map "$" shell