Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
V
vcsh
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Container registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Kevin Lyda
vcsh
Commits
f0b49541
Commit
f0b49541
authored
May 6, 2013
by
Richard Hartmann
Browse files
Options
Downloads
Plain Diff
Merge branch 'zsh-completion'
parents
f01b6712
84247591
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
_vcsh
+120
-16
120 additions, 16 deletions
_vcsh
with
120 additions
and
16 deletions
_vcsh
+
120
−
16
View file @
f0b49541
#compdef vcsh
_arguments
\
':subcommand:((
clone\:"clone from repo"
help\:"display help"
delete\:"delete repo"
enter\:"Enter repo; spawn new \$SHELL"
init\:"init & clone from repo"
list\:"list all repos"
list-tracked\:"list all files tracked by vcsh"
list-tracked-by\:"list files tracked by a repo"
rename\:"rename repo"
run\:"run command on repo"
setup\:"set up repo with recommended settings"
write-gitignore\:"write .gitignore.d/foo via git ls-files"
\<REPO\>\:"Run git command directly"
))'
function
__vcsh_repositories
()
{
local
expl
local
-a
repos
repos
=(
${
(f)
"
$(
command
vcsh list
)
"
}
)
_describe
-t
repos
'repositories'
repos
}
function
__vcsh_not_implemented_yet
()
{
_message
"Subcommand completion '
${
1
#*-
}
': not implemented yet"
}
function
_vcsh-clone
()
{
__vcsh_not_implemented_yet
"
$0
"
#TODO
}
function
_vcsh-delete
()
{
((
CURRENT
==
2
))
&&
__vcsh_repositories
}
function
_vcsh-enter
()
{
((
CURRENT
==
2
))
&&
__vcsh_repositories
}
function
_vcsh-help
()
{
_nothing
}
function
_vcsh-init
()
{
_nothing
}
function
_vcsh-list
()
{
_nothing
}
function
_vcsh-list-tracked
()
{
_nothing
}
function
_vcsh-list-tracked-by
()
{
((
CURRENT
==
2
))
&&
__vcsh_repositories
}
function
_vcsh-rename
()
{
((
CURRENT
==
2
))
&&
__vcsh_repositories
#TODO tell the user to add a new name
}
function
_vcsh-run
()
{
((
CURRENT
==
2
))
&&
__vcsh_repositories
#TODO normal commands
}
function
_vcsh-setup
()
{
((
CURRENT
==
2
))
&&
__vcsh_repositories
}
function
_vcsh-version
()
{
_nothing
}
function
_vcsh-which
()
{
_files
}
function
_vcsh-write-gitignore
()
{
((
CURRENT
==
2
))
&&
__vcsh_repositories
}
function
_vcsh
()
{
local
curcontext
=
"
${
curcontext
}
"
local
state vcshcommand
local
-a
args subcommands
subcommands
=(
"clone:clone an existing repository"
"delete:delete an existing repository"
"enter:enter repository; spawn new <
\$
SHELL>"
"help:display help"
"init:initialize an empty repository"
"list:list all local vcsh repositories"
"list-tracked:list all files tracked by vcsh"
"list-tracked-by:list files tracked by a repository"
"rename:rename a repository"
"run:run command with <
\$
GIT_DIR> and <
\$
GIT_WORK_TREE> set"
"setup:set up repository with recommended settings"
"version:print version information"
"which:find <substring> in name of any tracked file"
"write-gitignore:write .gitignore.d/<repo> via git ls-files"
)
args
=(
'-c[source <file> prior to other configuration files]:config files:_path_files'
'-d[enable debug mode]'
'-v[enable verbose mode]'
'*:: :->subcommand_or_options_or_repo'
)
_arguments
-C
${
args
}
&&
return
if
[[
${
state
}
==
"subcommand_or_options_or_repo"
]]
;
then
if
((
CURRENT
==
1
))
;
then
_describe
-t
subcommands
'vcsh sub-commands'
subcommands
__vcsh_repositories
else
vcshcommand
=
"
${
words
[1]
}
"
if
!
((
${
+functions[_vcsh-
$vcshcommand
]
}
))
;
then
# There is no handler function, so this is probably the name
# of a repository. Act accordingly.
_message
"git sub-command"
#TODO and now we need to complete on git subcommands
else
curcontext
=
"
${
curcontext
%
:
*
:
*
}
:vcsh-
${
vcshcommand
}
:"
_call_function ret _vcsh-
${
vcshcommand
}
fi
fi
fi
}
_vcsh
"
$@
"
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment