zsh-workers
 help / color / mirror / code / Atom feed
From: doron.behar@gmail.com
To: zsh-workers@zsh.org
Subject: [PATCH 08/25] Add helpers section.
Date: Sat, 26 May 2018 18:06:17 +0300	[thread overview]
Message-ID: <20180526150634.15683-9-doron.behar@gmail.com> (raw)
In-Reply-To: <20180526150634.15683-1-doron.behar@gmail.com>

From: Doron Behar <doron.behar@gmail.com>

---
 Completion/Unix/Command/_luarocks | 65 ++++++++++++++++++++++++-------
 1 file changed, 50 insertions(+), 15 deletions(-)

diff --git a/Completion/Unix/Command/_luarocks b/Completion/Unix/Command/_luarocks
index b9f6c8af6..acbc16cb4 100644
--- a/Completion/Unix/Command/_luarocks
+++ b/Completion/Unix/Command/_luarocks
@@ -1,5 +1,55 @@
 #compdef luarocks
 
+# {{{ helper: dependencies mode
+local option_deps_mode='--deps-mode=[How to handle dependencies]:MODE:__luarocks_deps_mode'
+__luarocks_deps_mode(){
+	local modes=(
+		'all:use all trees from the rocks_trees list for finding dependencies'
+		'one:use only the current tree (possibly set with --tree)'
+		'order:use trees based on order (use the current tree and all trees below it on the rocks_trees list)'
+		'none:ignore dependencies altogether'
+	)
+	_describe 'dependencies mode' modes
+}
+# }}}
+# {{{ helper: versions of an external rock
+__luarocks_rock_version(){
+	for i in {2..${#build_command_options[@]}}; do
+		if [[ ! -z "${words[$i]}" && ! "${words[$i]}" =~ '^-' && ! -f "${words[$i]}" ]]; then
+			# TODO: complete with optional versions
+			_message -e "version for rock ${words[$i]}"
+			return
+		fi
+	done
+}
+# }}}
+# {{{ helper: list of libraries that C files need to link to
+_luarocks_write_rockspec_lib(){
+}
+# }}}
+# {{{ helper: lua versions
+# TODO
+__luarocks_lua_version(){
+	_values -s , 
+}
+# }}}
+# {{{ helper: rockspec file / rockpack (.src.rock file) / external according to demand
+__luarocks_rock(){
+	local -a arguments=()
+	for arg in "$@"; do
+		case $arg in
+			(file)
+				arguments+=(':rock file:{_files -g "*.rockspec"}')
+				;;
+			(external)
+				arguments+=(':external rock:')
+				;;
+		esac
+	done
+	_alternative ${arguments[@]}
+}
+# }}}
+
 # {{{ `build` command
 # arguments:
 # - must: .rockspec file / external rock
@@ -9,21 +59,11 @@ local make_command_options=(
 	'--keep[Do not remove previously installed versions of the rock after building a new one]'
 	'--branch=[Override the `source.branch` field in the loaded rockspec]:NAME:{_message "branch name"}'
 )
-local option_deps_mode='--deps-mode=[How to handle dependencies. Four modes are supported:MODE:__luarocks_deps_mode'
 local build_command_options=(
 	"${make_command_options[@]}"
 	'--only-deps[Installs only the dependencies of the rock]'
 	$option_deps_mode
 )
-__luarocks_deps_mode(){
-	local modes=(
-		'all:use all trees from the rocks_trees list for finding dependencies'
-		'one:use only the current tree (possibly set with --tree)'
-		'order:use trees based on order (use the current tree and all trees below it on the rocks_trees list)'
-		'none:ignore dependencies altogether'
-	)
-	_describe 'dependencies mode' modes
-}
 _luarocks_build(){
 }
 # }}}
@@ -217,11 +257,6 @@ local write_rockspec_command_options=(
 	'--tag=[Tag to use. Will attempt to extract version number from it]:TAG:__git_tag'
 	'--lib=[A comma-separated list of libraries that C files need to link to]:_luarocks_write_rockspec_lib'
 )
-_luarocks_write_rockspec_lib(){
-}
-# TODO
-__luarocks_version(){
-	_values -s , 
 _luarocks_write_rockspec(){
 }
 # }}}
-- 
2.17.0


  parent reply	other threads:[~2018-05-26 15:07 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-26 15:06 [PATCH 00/25] *** Add completion for luarocks *** doron.behar
2018-05-26 15:06 ` [PATCH 01/25] Add variables for all commands and options doron.behar
2018-05-26 15:06 ` [PATCH 02/25] Remove architecture related option completion doron.behar
2018-05-26 15:06 ` [PATCH 03/25] Add marker style comments doron.behar
2018-05-26 15:06 ` [PATCH 04/25] Remove variables and use their contents directly doron.behar
2018-05-26 15:06 ` [PATCH 05/25] Add curcontext case for every subcommand doron.behar
2018-05-26 15:06 ` [PATCH 06/25] Use better naming scheme for common helpers doron.behar
2018-05-26 15:06 ` [PATCH 07/25] Write better sub commands comments doron.behar
2018-05-26 15:06 ` doron.behar [this message]
2018-05-26 15:06 ` [PATCH 09/25] Make *all* helpers functions begin with __luarocks doron.behar
2018-05-26 15:06 ` [PATCH 10/25] Write all simple sub commands completions doron.behar
2018-05-26 15:06 ` [PATCH 11/25] General internal conventions sync doron.behar
2018-05-26 15:06 ` [PATCH 12/25] Finish helper `__luarocks_lua_versions` doron.behar
2018-05-26 15:06 ` [PATCH 13/25] General cleanup doron.behar
2018-05-26 15:06 ` [PATCH 14/25] Finish `_luarocks_doc` and `_luarocks_config` doron.behar
2018-05-26 15:06 ` [PATCH 15/25] Expand __luarocks_rock_version so it accpets args doron.behar
2018-05-26 15:06 ` [PATCH 16/25] Finish completions for purge and new_version doron.behar
2018-05-26 15:06 ` [PATCH 17/25] Write a better comment for last TODO doron.behar
2018-05-26 15:06 ` [PATCH 18/25] Make cache policy function safer doron.behar
2018-05-26 15:06 ` [PATCH 19/25] Fix git tag completion by autoloading _git doron.behar
2018-05-26 15:06 ` [PATCH 20/25] Use a generic sub command completer doron.behar
2018-05-26 15:06 ` [PATCH 21/25] Use 2 spaces instead of tabs doron.behar
2018-05-26 15:06 ` [PATCH 22/25] Use +functions[] for all helpers doron.behar
2018-05-26 15:06 ` [PATCH 23/25] Improve `___luarocks_installed_rocks_cache_policy` doron.behar
2018-05-26 15:06 ` [PATCH 24/25] Consider `--tree` when searching installed rocks doron.behar
2018-05-26 15:06 ` [PATCH 25/25] Consider `--tree` in versions completion doron.behar
2018-05-26 15:37 ` [PATCH 00/25] *** Add completion for luarocks *** Eitan Adler
2018-05-26 16:09   ` Doron Behar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180526150634.15683-9-doron.behar@gmail.com \
    --to=doron.behar@gmail.com \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).