mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-25 18:03:37 +08:00
b7d60dc7bb
* Improve bzr completion. Closes #3661 * Add basic completion for bzr commands * Include short and log options for common commands * Removed not so common commands * Remove trailing '.' as requested by #3769 * Remove '=' as suggested by #3769 * We don't need '=' in long options * Use fish helper functions for autocomplete To avoid issues pointed out in #3769 helper functions included in fish are used (__fish_use_subcommand and __fish_seen_subcommand). * Fixed typo
115 lines
9.6 KiB
Fish
115 lines
9.6 KiB
Fish
# NOTE: Fish helper functions are your best friend here!
|
|
# see https://github.com/fish-shell/fish-shell/blob/master/share/functions/__fish_seen_subcommand_from.fish
|
|
# and https://github.com/fish-shell/fish-shell/blob/master/share/functions/__fish_use_subcommand.fish
|
|
|
|
|
|
# help commands
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a help --description 'Show help'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from help' -a topics --description 'List all help topics'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from help' -a commands --description 'List all commands'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from help' -a formats --description 'Help about supported formats'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from help' -a current-formats --description 'Help about current supported formats'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from help' -a revisionspec -d 'How to specify revisions in bzr'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from help' -a bugs -d 'Show bug tracker settings in bzr'
|
|
# TODO: Add help about specific commands generating the output
|
|
|
|
# init command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a init --description 'Makes this directory a versioned branch'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from init' -l create-prefix --description 'Create the path leading up to the branch if it does not already exists'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from init' -l no-tree --description 'Create a branch without a working tree'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from init' -l append-revisions-only --description 'Never change revnos or the existing log. Append revisions to it only'
|
|
# TODO: Add init using path directory
|
|
|
|
# branch command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a branch --description 'Make a copy of another branch'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from branch' -l use-existing-dir --description 'Proceed even if directory exits'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from branch' -l stacked --description 'Create a stacked branch referring to the source branch'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from branch' -l standalone --description 'Do not use a shared repository, even if available'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from branch' -l switch --description 'Switch the checkout in the current directory to the new branch'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from branch' -l hardlink --description 'Hard-link working tree files where possible'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from branch' -l bind --description 'Bind new branch to from location'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from branch' -l no-tree --description 'Create a branch without a working-tree'
|
|
# TODO: Add source/destination branch or directory
|
|
|
|
# add command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a add -d 'Make files or directories versioned'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from add' -l no-recurse -s N -d 'Don\'t recursively add the contents of directories'
|
|
|
|
# ignore command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a ignore -d 'Ignore a file or pattern'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from ignore' -l default-rules -d 'Display the default ignore rules that bzr uses'
|
|
|
|
# mv command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a mv -d 'Move or rename a versioned file'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from mv' -l auto -d 'Automatically guess renames'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from mv' -l after -d 'Move only the bzr identifier of the file, because the file has already been moved'
|
|
|
|
# status command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a status -d 'Summarize changes in working copy'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from status' -l short -s S -d 'Use short status indicators'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from status' -l versioned -s V -d 'Only show versioned files'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from status' -l no-pending -d 'Don\'t show pending merges'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from status' -l no-classify -d 'Do not mark object type using indicator'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from status' -l show-ids -d 'Show internal object ids'
|
|
|
|
# diff command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a diff -d 'Show detailed diffs'
|
|
# TODO: Add file diff options
|
|
|
|
# merge command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a merge -d 'Pull in changes from another branch'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l pull -d 'If the destination is already completely merged into the source, pull from the source rather than merging'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l remember -d 'Remember the specified location as a default'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l force -d 'Merge even if the destination tree has uncommitted changes'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l reprocess -d 'Reprocess to reduce spurious conflicts'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l uncommited -d 'Apply uncommitted changes from a working copy, instead of branch changes'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l show-base -d 'Show base revision text in conflicts'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l preview -d 'Instead of merging, show a diff of the merge'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l interactive -s i -d 'Select changes interactively'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l directory -s d -d 'Branch to merge into, rather than the one containing the working directory'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l change -s c -d 'Select changes introduced by the specified revision'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from merge' -l revision -s r -d 'Select changes introduced by the specified revision'
|
|
|
|
# commit command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a commit -d 'Save some or all changes'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l show-diff -s p -d 'When no message is supplied, show the diff along with the status summary in the message editor'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l file -s F -d 'Take commit message from this file'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l exclude -s x -d 'Do not consider changes made to a given path'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l message -s m -d 'Description of the new revision'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l author -d 'Set the author\'s name, if it\'s different from the commiter'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l commit-time -d 'Manually set a commit time using commit date format'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l unchanged -d 'Commit even if nothing has changed'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l fixes -d 'Mark a bug as being fixed by this revision'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l strict -d 'Refuse to commit if there are unknown files in the working tree'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l lossy -d 'When committing to a foreign version control system do not push data that can not be natively represented'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from commit' -l local -d 'Perform a local commit in a bound branch. Local commits are not pushed to the master branch until a normal commit is performed'
|
|
|
|
# send command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a send -d 'Send changes via email'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from send' -l body -d 'Body for the email'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from send' -l remember -d 'Remember submit and public branch'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from send' -l mail-to -d 'Mail the request to this address'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from send' -l format -d 'Use the specified output format'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from send' -l no-bundle -d 'Do not include a bundle in the merge directive'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from send' -l strict -d 'Refuse to send if there are uncommitted changes in the working tree, --no-strict disables the check'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from send' -l no-patch -d 'Do not include a preview patch in the merge directive'
|
|
|
|
# log command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a log -d 'Show history of changes'
|
|
|
|
# check command
|
|
complete -f -c bzr -n '__fish_use_subcommand' -a check -d 'Validate storage'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from check' -l tree -d 'Check the working tree related to the current directory'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from check' -l repo -d 'Check the repository related to the current directory'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from check' -l branch -d 'Check the branch related to the current directory'
|
|
|
|
# Common long/short options
|
|
set -l $cmds init branch add ignore mv status diff merge commit send log check
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from $cmds' -l usage --description 'Show usage message and options'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from $cmds' -s h -l help --description 'Show help message'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from $cmds' -s q -l quiet --description 'Only displays errors and warnings'
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from $cmds' -s v -l verbose --description 'Display more information'
|
|
|
|
# Commands with dry-run option
|
|
complete -f -c bzr -n '__fish_seen_subcommand_from add mv' -l dry-run --description 'Show what would be done'
|