- this reduces the number of functions and allows lazy loading of completion options, which makes it easy to quickly add any other OpenFOAM application in completion. The generic '_of_complete_' function handles (bash) completion for any OpenFOAM application. On the first call for any particular application, it retrieves the available options from the application help output and adds this information to its environmental cache for subsequent use. - Tcsh completion uses the same function via a bash wrapper. But since its wrapper is transient, the on-the-fly generation would be less efficient. For this case, a pre-generated completion_cache can be used, which is generated with bin/tools/foamCreateCompletionCache
26 lines
1.1 KiB
Bash
26 lines
1.1 KiB
Bash
#----------------------------------*-sh-*--------------------------------------
|
|
# Tcsh completions for OpenFOAM applications
|
|
# Using bash_completion functions for the hard work
|
|
|
|
if ($?tcsh) then # tcsh only
|
|
|
|
# Remove old completions, which look like:
|
|
# complete APPNAME 'p,*,`bash $WM_PROJECT_DIR/etc/ ...
|
|
foreach appName (`complete | sed -ne '/WM_PROJECT/s/\t.*$//p'`)
|
|
uncomplete $cleaned
|
|
end
|
|
|
|
# Generate completions for predefined directories
|
|
foreach dirName ("$FOAM_APPBIN")
|
|
if ( ! -d $dirName || ! -f $WM_PROJECT_DIR/etc/config.csh/complete-wrapper ) continue
|
|
foreach appName (`find $dirName -maxdepth 1 -executable -type f`)
|
|
# Pass explicitly
|
|
## complete $appName:t 'p,*,`bash $WM_PROJECT_DIR/etc/config.csh/complete-wrapper '$appName:t' "${COMMAND_LINE}"`,'
|
|
# Pass via environment
|
|
complete $appName:t 'p,*,`bash $WM_PROJECT_DIR/etc/config.csh/complete-wrapper '$appName:t'`,'
|
|
end
|
|
end
|
|
endif
|
|
|
|
#------------------------------------------------------------------------------
|