summary refs log tree commit diff stats
path: root/tools/nim.bash-completion
diff options
context:
space:
mode:
authorFederico Ceratto <federico.ceratto@suse.com>2017-09-03 15:35:05 +0100
committerGitHub <noreply@github.com>2017-09-03 15:35:05 +0100
commit9d5de76fb3ea4645284e21376811161677511dda (patch)
treed883d8764a20490e72a581106a83cd5715815430 /tools/nim.bash-completion
parenta5b19ba86cd10c5e5de0d0a0f64fb0441f6f54be (diff)
downloadNim-9d5de76fb3ea4645284e21376811161677511dda.tar.gz
Add Bash completion script
Diffstat (limited to 'tools/nim.bash-completion')
-rw-r--r--tools/nim.bash-completion47
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/nim.bash-completion b/tools/nim.bash-completion
new file mode 100644
index 000000000..4f62da986
--- /dev/null
+++ b/tools/nim.bash-completion
@@ -0,0 +1,47 @@
+# bash completion for nim                             -*- shell-script -*-
+
+_nim()
+{
+ local cur prev words cword split
+ _init_completion -s || return
+
+ COMPREPLY=()
+ cur=${COMP_WORDS[COMP_CWORD]}
+
+ if [ $COMP_CWORD -eq 1 ] ; then
+   # first item - suggest commands
+   kw="compile c doc doc2 compileToC cc compileToCpp cpp compileToOC objc js e rst2html rst2tex jsondoc jsondoc2 buildIndex genDepend dump check"
+   COMPREPLY=( $( compgen -W "${kw}" -- $cur ) )
+   return 0
+ fi
+  case $prev in
+    --stackTrace|--lineTrace|--threads|-x|--checks|--objChecks|--fieldChecks|--rangeChecks|--boundChecks|--overflowChecks|-a|--assertions|--floatChecks|--nanChecks|--infChecks|--deadCodeElim)
+      # Options that require on/off
+      [[ "$cur" == "=" ]] && cur=""
+      COMPREPLY=( $(compgen -W 'on off' -- "$cur") )
+      return 0
+    ;;
+    --opt)
+      [[ "$cur" == "=" ]] && cur=""
+      COMPREPLY=( $(compgen -W 'none speed size' -- "$cur") )
+      return 0
+    ;;
+    --app)
+      [[ "$cur" == "=" ]] && cur=""
+      COMPREPLY=( $(compgen -W 'console gui lib staticlib' -- "$cur") )
+      return 0
+    ;;
+    *)
+      kw="-r -p= --path= -d= --define= -u= --undef= -f --forceBuild --opt= --app= --stackTrace= --lineTrace= --threads= -x= --checks= --objChecks= --fieldChecks= --rangeChecks= --boundChecks= --overflowChecks= -a= --assertions= --floatChecks= --nanChecks= --infChecks= --deadCodeElim="
+      COMPREPLY=( $( compgen -W "${kw}" -- $cur ) )
+      _filedir '@(nim)'
+      #$split
+      return 0
+    ;;
+  esac
+  return 0
+
+} &&
+complete -onospace -F _nim nim
+
+# ex: ts=2 sw=2 et filetypesh