zsh-workers
 help / color / mirror / code / Atom feed
* New vcsh completion
@ 2013-07-24 14:16 Richard Hartmann
  2013-07-24 14:27 ` Peter Stephenson
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Richard Hartmann @ 2013-07-24 14:16 UTC (permalink / raw)
  To: zsh workers

Dear all,

I would like to update the completion for vcsh. I do have commit
access (thanks to my triaging work in the past), but I don't want to
step onto anyone's toes and simply have been inactive/passive on this
list for too long to _know_.

Should I

* just commit
* send patch to here
* send file to here

The change itself is uncontroversial, well tested, and has been
developed in part by Frank Terbeck. I wouldn't even consider pushing
directly if that wasn't the case.


-- 
Richard


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New vcsh completion
  2013-07-24 14:16 New vcsh completion Richard Hartmann
@ 2013-07-24 14:27 ` Peter Stephenson
  2013-07-24 14:27 ` Bart Schaefer
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Stephenson @ 2013-07-24 14:27 UTC (permalink / raw)
  To: zsh workers

On Wed, 24 Jul 2013 16:16:53 +0200
Richard Hartmann <richih.mailinglist@gmail.com> wrote:
> I would like to update the completion for vcsh. I do have commit
> access (thanks to my triaging work in the past), but I don't want to
> step onto anyone's toes and simply have been inactive/passive on this
> list for too long to _know_.
> 
> Should I
> 
> * just commit
> * send patch to here
> * send file to here

For something of this nature, post it here first, and if there are no
comments just submit it.

pws


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New vcsh completion
  2013-07-24 14:16 New vcsh completion Richard Hartmann
  2013-07-24 14:27 ` Peter Stephenson
@ 2013-07-24 14:27 ` Bart Schaefer
  2013-07-24 14:47 ` Frank Terbeck
  2013-07-24 14:51 ` [PATCH] Completion/Unix/Command/_vcsh: Update Richard Hartmann
  3 siblings, 0 replies; 5+ messages in thread
From: Bart Schaefer @ 2013-07-24 14:27 UTC (permalink / raw)
  To: Richard Hartmann; +Cc: zsh workers

[-- Attachment #1: Type: text/plain, Size: 502 bytes --]

On Wednesday, July 24, 2013, Richard Hartmann wrote:

>
>  Should I
>
> * just commit
> * send patch to here
> * send file to here
>
>

The standard thing to do is to send the patch here, get the article number
from the message header when you receive your copy, and then reference the
article number in both the ChangeLog entry and the git commit message.
 There'd also normally be a "wait a while for comments" period, but in this
case it sounds like you can go ahead as soon as you know the number.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: New vcsh completion
  2013-07-24 14:16 New vcsh completion Richard Hartmann
  2013-07-24 14:27 ` Peter Stephenson
  2013-07-24 14:27 ` Bart Schaefer
@ 2013-07-24 14:47 ` Frank Terbeck
  2013-07-24 14:51 ` [PATCH] Completion/Unix/Command/_vcsh: Update Richard Hartmann
  3 siblings, 0 replies; 5+ messages in thread
From: Frank Terbeck @ 2013-07-24 14:47 UTC (permalink / raw)
  To: Richard Hartmann; +Cc: zsh workers

Richard Hartmann wrote:
> I would like to update the completion for vcsh. I do have commit
> access (thanks to my triaging work in the past), but I don't want to
> step onto anyone's toes and simply have been inactive/passive on this
> list for too long to _know_.
>
> Should I
>
> * just commit
> * send patch to here
> * send file to here

You can commit the change yourself, if you have commit access.

However, every change needs a ChangeLog entry. You will also have to
send the patch through the mailing list, because every change need to be
referenced by the number from the X-Seq: header the mailing list
software adds. That's why the commit messages look like this:

  31465: fix basic completion and globbing uses of disabled patterns

With the corresponding ChangeLog entry looking like this:

[snip]
2013-06-13  Peter Stephenson  <p.w.stephenson@ntlworld.com>

        󠇨* 31465: Completion/compinit, Src/glob.c, Src/pattern.c: fix
          basic completion and globbing use of pattern disables.
[snap]

Regards, Frank

-- 
In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
                                                  -- RFC 1925


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH] Completion/Unix/Command/_vcsh: Update
  2013-07-24 14:16 New vcsh completion Richard Hartmann
                   ` (2 preceding siblings ...)
  2013-07-24 14:47 ` Frank Terbeck
@ 2013-07-24 14:51 ` Richard Hartmann
  3 siblings, 0 replies; 5+ messages in thread
From: Richard Hartmann @ 2013-07-24 14:51 UTC (permalink / raw)
  To: zsh-workers; +Cc: Richard Hartmann

---
 Completion/Unix/Command/_vcsh |  149 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 133 insertions(+), 16 deletions(-)

diff --git a/Completion/Unix/Command/_vcsh b/Completion/Unix/Command/_vcsh
index 89588e4..47dbd9e 100644
--- a/Completion/Unix/Command/_vcsh
+++ b/Completion/Unix/Command/_vcsh
@@ -1,18 +1,135 @@
 #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-pull () {
+	_nothing
+}
+
+function _vcsh-push () {
+	_nothing
+}
+
+function _vcsh-rename () {
+	(( CURRENT == 2 )) && __vcsh_repositories
+	(( CURRENT == 3 )) && _message "new repository name"
+	(( CURRENT > 3 )) && _nothing
+}
+
+function _vcsh-run () {
+	(( CURRENT == 2 )) && __vcsh_repositories
+	if (( CURRENT >= 3 )); then
+		words=( "${(@)words[3,-1]}" )
+		(( CURRENT -= 2 ))
+		_complete
+	fi
+}
+
+function _vcsh-upgrade () {
+	(( 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"
+		"pull:pull from all vcsh remotes"
+		"rename:rename a repository"
+		"run:run command with <\$GIT_DIR> and <\$GIT_WORK_TREE> set"
+		"upgrade:upgrade repository to currently 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.
+				_dispatch git git
+			else
+				curcontext="${curcontext%:*:*}:vcsh-${vcshcommand}:"
+				_call_function ret _vcsh-${vcshcommand}
+			fi
+		fi
+	fi
+}
+
+_vcsh "$@"
-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-07-24 15:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-24 14:16 New vcsh completion Richard Hartmann
2013-07-24 14:27 ` Peter Stephenson
2013-07-24 14:27 ` Bart Schaefer
2013-07-24 14:47 ` Frank Terbeck
2013-07-24 14:51 ` [PATCH] Completion/Unix/Command/_vcsh: Update Richard Hartmann

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).