diff --git a/plugins/jules/README.md b/plugins/jules/README.md new file mode 100644 index 000000000..6ccf7089d --- /dev/null +++ b/plugins/jules/README.md @@ -0,0 +1,30 @@ +# Jules + +Zsh autocompletion for the `jules` command-line interface. + +## Installation + +Add `jules` to the plugins list in your `.zshrc`: + +```zsh +plugins=(... jules) + +Reload your shell: + +source ~/.zshrc +``` + +Features: +- Command and subcommand completion +- Flags and options completio +- Support for remote command + +Requirements: +- Zsh +- Oh My Zs +- Jules CLI available in $PATH (download on https://jules.google/docs/cli/reference) + +Maintainer + +JuanCaarPapers +https://github.com/JuanCaarPapers diff --git a/plugins/jules/_jules b/plugins/jules/_jules new file mode 100644 index 000000000..e767e3794 --- /dev/null +++ b/plugins/jules/_jules @@ -0,0 +1,59 @@ +#compdef jules + +_jules() { + local line + + _arguments -C \ + "1: :->command" \ + "*::arg:->args" + + case $state in + command) + local -a commands + commands=( + 'login:Sign in to Jules with your Google account' + 'logout:Sign out of the current session' + 'remote:Manage repositories and remote sessions' + 'version:Show the installed version of Jules' + 'help:Show general help or help for a specific command' + 'completion:Generate shell autocompletion scripts' + ) + _describe -t commands 'jules command' commands + ;; + args) + case $words[1] in + remote) + _arguments \ + "1: :->remote_cmd" \ + "*::arg:->remote_args" + + case $state in + remote_cmd) + local -a remote_commands + remote_commands=( + 'list:List connected repositories or active sessions' + 'new:Start a new Jules session in a repository' + 'pull:Download the results of a session' + ) + _describe -t remote_commands 'remote command' remote_commands + ;; + remote_args) + _arguments \ + '--repo[Specify the repository (e.g. user/repo)]:repo:_files' \ + '--session[Session name or ID]:session:' \ + '--parallel[Number of parallel sessions]:count:' \ + '--theme[Interface theme (light/dark)]:theme:(light dark)' + ;; + esac + ;; + *) + _arguments \ + '(-h --help)'{-h,--help}'[Show help]' \ + '--theme[Set the visual theme]:theme:(light dark)' + ;; + esac + ;; + esac +} + +_jules "$@" diff --git a/plugins/jules/jules.plugin.zsh b/plugins/jules/jules.plugin.zsh new file mode 100644 index 000000000..17d1b516b --- /dev/null +++ b/plugins/jules/jules.plugin.zsh @@ -0,0 +1,4 @@ +# Jules Oh My Zsh plugin +# Provides Zsh completion for the jules CLI + +fpath+=(${0:A:h})