@@ -23,41 +23,55 @@ _pmy_main() {
2323 # local out="$(pmy --bufferLeft=${buffer_left} --bufferRight=${buffer_right} 2>/dev/null)"
2424 local out=" $( pmy --bufferLeft=${buffer_left} --bufferRight=${buffer_right} ) "
2525
26-
26+ # ${out} is empty, which indicates
27+ # there was no matching
2728 if [[ -z $out ]] ; then
2829 echo " No rule was matched"
2930 __pmy_res_lbuffer=${buffer_left}
3031 __pmy_res_rbuffer=${buffer_right}
31- else
32- eval ${out}
33- # Check if error occurred.
34- if [[ ${__pmy_out_error_message} != ' ' ]] ; then
35- echo ${__pmy_out_error_message}
36- return
37- fi
32+ return
33+ fi
34+
35+ # Here, evaluate the output of pmy,
36+ # following local variable will be declared
37+ # - ${__pmy_out_buffer_left}
38+ # - ${__pmy_out_buffer_right}
39+ # - ${__pmy_out_command}
40+ # - ${__pmy_out_<tagname>_after}
41+ # - ${__pmy_out_fuzzy_finder_cmd}
42+ # - ${__pmy_out_tag_all_empty}
43+ # - ${__pmy_out_tag_delimiter}
44+ # - ${__pmy_out_error_message}
45+ eval ${out}
3846
39- local fuzzy_finder_cmd= ${__pmy_out_fuzzy_finder_cmd :- ${PMY_FUZZY_FINDER_DEFAULT_CMD} }
40- local fzf_res_tag_included= " $( eval ${__pmy_out_command} | eval ${fuzzy_finder_cmd} ) "
41- # get result from fzf
42- # get tag
43- if [[ -z ${__pmy_out_tag_all_empty} ]] ; then
44- local tag= " $( echo -n ${fzf_res_tag_included} | awk -F ${__pmy_out_tag_delimiter} ' BEGIN{ORS = ""}{print $1} ' | base64 ) "
45- tag =${tag // \/ / a_a} # original escape of base64 `/`
46- tag= ${tag // + / b_b} # original escape of base64 `+`
47- tag= ${tag // = / c_c} # original escape of base64 `+`
48- # get rest statement
49- local fzf_res= " $( echo ${fzf_res_tag_included} | awk -F ${__pmy_out_tag_delimiter} ' {for(i=2;i<NF;i++){printf("%s%s",$i,OFS=" ")}print $NF} ' ) "
50- else
51- local fzf_res= " ${fzf_res_tag_included} "
52- local tag= " "
53- fi
54- # get after command
55- local after_cmd_variable= " __pmy_out_ ${tag} _after "
56- local after_cmd= " $( eval echo \$ $after_cmd_variable ) "
57- local res= " $( echo ${fzf_res} | eval ${after_cmd} ) "
58- __pmy_res_lbuffer =" ${__pmy_out_buffer_left}${res } "
59- __pmy_res_rbuffer= " ${__pmy_out_buffer_right} "
47+ # Check if error occurred.
48+ if [[ ${__pmy_out_error_message} != ' ' ]] ; then
49+ echo ${__pmy_out_error_message}
50+ return
51+ fi
52+
53+ local fuzzy_finder_cmd =${__pmy_out_fuzzy_finder_cmd :- ${PMY_FUZZY_FINDER_DEFAULT_CMD} }
54+ local fzf_res_tag_included= " $( eval ${__pmy_out_command} | eval ${fuzzy_finder_cmd} ) "
55+ # get result from fzf
56+ # get tag
57+ if [[ -z ${__pmy_out_tag_all_empty} ]] ; then
58+ local tag= " $( echo -n ${fzf_res_tag_included} | awk -F ${__pmy_out_tag_delimiter} ' BEGIN{ORS = ""}{print $1} ' | base64 ) "
59+ tag= ${tag // \/ / a_a} # original escape of base64 `/`
60+ tag= ${tag // + / b_b} # original escape of base64 `+`
61+ tag= ${tag // = / c_c} # original escape of base64 `+`
62+ # get rest statement
63+ local fzf_res= " $( echo ${fzf_res_tag_included} | awk -F ${__pmy_out_tag_delimiter} ' {for(i=2;i<NF;i++){printf("%s%s",$i,OFS=" ")}print $NF} ' ) "
64+ else
65+ # tag was not specified, so use line as it is
66+ local fzf_res =" ${fzf_res_tag_included } "
67+ local tag= " "
6068 fi
69+ # get after command
70+ local after_cmd_variable=" __pmy_out_${tag} _after"
71+ local after_cmd=" $( eval echo \$ $after_cmd_variable ) "
72+ local res=" $( echo ${fzf_res} | eval ${after_cmd} ) "
73+ __pmy_res_lbuffer=" ${__pmy_out_buffer_left}${res} "
74+ __pmy_res_rbuffer=" ${__pmy_out_buffer_right} "
6175
6276 if ! [[ -z $test_flag ]] then
6377 echo $__pmy_res_lbuffer
0 commit comments