123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- #!/usr/bin/env bash
- # Bash completion for the Godot editor
- # To use it, install this file in `/etc/bash_completion.d` then restart your shell.
- # You can also `source` this file directly in your shell startup file.
- #
- # Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md).
- # Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.
- #
- # Permission is hereby granted, free of charge, to any person obtaining a copy
- # of this software and associated documentation files (the "Software"), to deal
- # in the Software without restriction, including without limitation the rights
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- # copies of the Software, and to permit persons to whom the Software is
- # furnished to do so, subject to the following conditions:
- #
- # The above copyright notice and this permission notice shall be included in all
- # copies or substantial portions of the Software.
- #
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- # SOFTWARE.
- _complete_godot_options() {
- # Since Bash doesn't support option descriptions in autocompletion,
- # only display long options to be more descriptive.
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -W " \
- --help
- --version
- --verbose
- --quiet
- --editor
- --project-manager
- --debug-server
- --quit
- --language
- --path
- --upwards
- --main-pack
- --render-thread
- --remote-fs
- --remote-fs-password
- --audio-driver
- --audio-output-latency
- --display-driver
- --rendering-method
- --rendering-driver
- --gpu-index
- --text-driver
- --tablet-driver
- --headless
- --log-file
- --write-movie
- --fullscreen
- --maximized
- --windowed
- --always-on-top
- --resolution
- --position
- --single-window
- --xr-mode
- --debug
- --breakpoints
- --profiling
- --gpu-profile
- --gpu-validation
- --gpu-abort
- --remote-debug
- --debug-collisions
- --debug-navigation
- --debug-stringnames
- --max-fps
- --frame-delay
- --time-scale
- --disable-vsync
- --disable-render-loop
- --disable-crash-handler
- --fixed-fps
- --print-fps
- --script
- --check-only
- --export-release
- --export-debug
- --export-pack
- --convert-3to4
- --validate-conversion-3to4
- --doctool
- --no-docbase
- --build-solutions
- --dump-gdextension-interface
- --dump-extension-api
- --benchmark
- --benchmark-file
- --test
- " -- "$1"))
- }
- _complete_godot_bash() {
- local cur="${COMP_WORDS[$COMP_CWORD]}" prev
- # Complete options or the positional argument.
- if [[ $cur == -* ]]; then
- _complete_godot_options "$cur"
- else
- local IFS=$'\n\t'
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -f -X "!*.@(scn|tscn|escn|godot)" -- "$cur"))
- fi
- # If the array is accessed out of bounds (which will happen for the first argument),
- # `$prev` will be an empty string and won't match any of the conditions below.
- prev="${COMP_WORDS[$((COMP_CWORD-1))]}"
- # Complete option values.
- if [[ $prev == "--render-thread" ]]; then
- local IFS=$' \n\t'
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -W "unsafe safe separate" -- "$cur"))
- elif [[ $prev == "--rendering-method" ]]; then
- local IFS=$' \n\t'
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -W "forward_plus mobile gl_compatibility" -- "$cur"))
- elif [[ $prev == "--rendering-driver" ]]; then
- local IFS=$' \n\t'
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -W "vulkan opengl3 dummy" -- "$cur"))
- elif [[ $prev == "--xr-mode" ]]; then
- local IFS=$' \n\t'
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -W "default off on" -- "$cur"))
- elif [[ $prev == "--path" || $prev == "--doctool" ]]; then
- local IFS=$'\n\t'
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -d -- "$cur"))
- elif [[ $prev == "--main-pack" ]]; then
- local IFS=$'\n\t'
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -f -X "!*.@(pck|zip)" -- "$cur"))
- elif [[ $prev == "-s" || $prev == "--script" ]]; then
- local IFS=$'\n\t'
- # shellcheck disable=SC2207
- COMPREPLY=($(compgen -f -X "!*.gd" -- "$cur"))
- fi
- }
- complete -o filenames -F _complete_godot_bash godot
|