From dccb01ca58ddbc14ea3063c45add5969b6499bad Mon Sep 17 00:00:00 2001 From: Christopher Chow Date: Fri, 4 Feb 2011 01:18:20 +1100 Subject: [PATCH] Added basic rails tab completion. --- plugins/rails/_rails3 | 54 ++++++++++++++++++++++++++++++++++ plugins/rails/rails.plugin.zsh | 4 +++ 2 files changed, 58 insertions(+) create mode 100644 plugins/rails/_rails3 diff --git a/plugins/rails/_rails3 b/plugins/rails/_rails3 new file mode 100644 index 000000000..951f7289a --- /dev/null +++ b/plugins/rails/_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/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 7f387672f..999b7863e 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -1,3 +1,7 @@ +fpath=($ZSH/plugins/rails $fpath) +autoload -U compinit +compinit -i + function _rails () { if [ -e script/server ]; then ruby script/$@