$ bin/nitc examples/hello_world.nit
$ ./hello_world
+You can put the `bin/` directoty in your PATH
+
Using bash completion with Nit tools:
- $ bin/nitc --bash-completion
- $ ln -s /absolute/path/to/bin/nitc.bash ~/.bash_completion/nitc
- $ . ~/.bash_completion/nitc
+ $ echo source /absolute/path/to/misc/bash_completion/nit >> ~/.bash_completion
+ $ source ~/.bash_completion
More information:
--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Bash completion for nit commands
+# Put (or link) this file into `/etc/bash_completion.d/`
+# or source it in `~/.bash_completion`.
+
+_nit_lazy() {
+ # Check if a valid command
+ which $1 > /dev/null || return 1
+
+ # Drop possible directories to get the command name
+ local cmd=`basename $1`
+
+ # Generate the bash-completion
+ # and setup a new `complete` for the command
+ eval "$($1 --bash-completion)"
+
+ # Special case for `nitc` that uses the completion of `nitg`
+ if test "$cmd" = "nitc"; then
+ cmd=nitg
+ complete -F _nitg -o default nitc
+ fi
+
+ if [[ $(type -t _$cmd) == function ]]; then
+ # All if fine, finish the job by invoking the function _$cmd
+ _$cmd
+ return $?
+ else
+ # Problem, no function _$cmd
+ return 1
+ fi
+} &&
+complete -F _nit_lazy -o default nit nitc nitdoc nitg nitlight nitls nitmetrics nitunit nitx
# --help --only-metamodel --source
# --ignore-visibility --only-parse --stop-on-first-error
#
-# Generated file must be placed in system bash_completion directory `/etc/bash_completion.d/`
-# or in the user directory `~/.bash_completion`.
+# Generated file can be placed in system bash_completion directory `/etc/bash_completion.d/`
+# or source it in `~/.bash_completion`.
class BashCompletion
super Template