Programmable completion

Simple completion using function

Simple completion for options and filenames