From fbfcaccff958f73fbb54faa072e55f2a45670441 Mon Sep 17 00:00:00 2001 From: Christopher Chow Date: Thu, 3 Feb 2011 17:08:21 +1100 Subject: [PATCH] Added basic tab completion for Rails 3 commands. --- plugins/rails3/_rails3 | 54 ++++++++++++++++++++++++++++++++ plugins/rails3/rails3.plugin.zsh | 4 +++ 2 files changed, 58 insertions(+) create mode 100644 plugins/rails3/_rails3 diff --git a/plugins/rails3/_rails3 b/plugins/rails3/_rails3 new file mode 100644 index 000000000..951f7289a --- /dev/null +++ b/plugins/rails3/_rails3 @@ -0,0 +1,54 @@ +#compdef rails +#autoload + +# rails 3 zsh completion, based on homebrew completion + +local -a _1st_arguments +_1st_arguments=( + 'generate:Generate new code (short-cut alias: "g")' + 'console:Start the Rails console (short-cut alias: "c")' + 'server:Start the Rails server (short-cut alias: "s")' + 'dbconsole:Start a console for the database specified in config/database.yml (short-cut alias: "db")' + 'new:Create a new Rails application. "rails new my_app" creates a new application called MyApp in "./my_app"' + 'application:Generate the Rails application code' + 'destroy:Undo code generated with "generate"' + 'benchmarker:See how fast a piece of code runs' + 'profiler:Get profile information from a piece of code' + 'plugin:Install a plugin' +) + +_rails_generate_arguments() { + generate_arguments=( + controller + generator + helper + integration_test + mailer + migration + model + observer + performance_test + plugin + resource + scaffold + scaffold_controller + session_migration + stylesheets + ) +} + +_arguments \ + '(--version)--version[show version]' \ + '(--help)--help[show help]' \ + '*:: :->subcmds' && return 0 + +if (( CURRENT == 1 )); then + _describe -t commands "rails subcommand" _1st_arguments + return +fi + +case "$words[1]" in + generate) + _rails_generate_arguments + _wanted generate_arguments expl 'all generate' compadd -a generate_arguments ;; +esac diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index 20ba0408c..1843aea82 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -1,3 +1,7 @@ +fpath=($ZSH/plugins/rails3 $fpath) +autoload -U compinit +compinit -i + alias rs='ruby script/rails server' alias rg='ruby script/rails generate' alias rd='ruby script/rails destroy'