From 1a029f293541d37e545f4706791ca41ce129600b Mon Sep 17 00:00:00 2001 From: Kevin Bongart Date: Thu, 13 Feb 2014 12:27:00 -0500 Subject: [PATCH 1/2] Add rake-fast plugin for fast rake autocompletion --- plugins/rake-fast/rake-fast.plugin.zsh | 56 ++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 plugins/rake-fast/rake-fast.plugin.zsh diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh new file mode 100644 index 00000000..0c268355 --- /dev/null +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -0,0 +1,56 @@ +# rake-fast +# Fast rake autocompletion plugin for oh-my-zsh + +# This script caches the output for later usage and significantly speeds it up. +# It generates a .rake_tasks file in parallel to the Rakefile. + +# You'll want to add `.rake_tasks` to your global .git_ignore file: +# https://help.github.com/articles/ignoring-files#global-gitignore + +# You can force .rake_tasks to refresh with: +# $ rake_refresh + +# This is entirely based on Ullrich Schäfer's work +# (https://github.com/robb/.dotfiles/pull/10/), +# which is inspired by this Ruby on Rails trick from 2006: +# http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh/ + +# Author: Kevin Bongart +# contact@kevinbongart.net +# http://kevinbongart.net +# https://github.com/KevinBongart + +_rake_refresh () { + if [ -f .rake_tasks ]; then + rm .rake_tasks + fi + echo "Generating .rake_tasks..." > /dev/stderr + _rake_generate + cat .rake_tasks +} + +_rake_does_task_list_need_generating () { + if [ ! -f .rake_tasks ]; then return 0; + else + accurate=$(stat -f%m .rake_tasks) + changed=$(stat -f%m Rakefile) + return $(expr $accurate '>=' $changed) + fi +} + +_rake_generate () { + rake --silent --tasks | cut -d " " -f 2 > .rake_tasks +} + +_rake () { + if [ -f Rakefile ]; then + if _rake_does_task_list_need_generating; then + echo "\nGenerating .rake_tasks..." > /dev/stderr + _rake_generate + fi + compadd `cat .rake_tasks` + fi +} + +compdef _rake rake +alias rake_refresh='_rake_refresh' From baeac5bec9cc9b2da5ac69054d91ae3838fde402 Mon Sep 17 00:00:00 2001 From: Kevin Bongart Date: Sun, 16 Mar 2014 16:52:37 -0400 Subject: [PATCH 2/2] Remove copyright information, as per #2588 --- plugins/rake-fast/rake-fast.plugin.zsh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh index 0c268355..32085523 100644 --- a/plugins/rake-fast/rake-fast.plugin.zsh +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -15,11 +15,6 @@ # which is inspired by this Ruby on Rails trick from 2006: # http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh/ -# Author: Kevin Bongart -# contact@kevinbongart.net -# http://kevinbongart.net -# https://github.com/KevinBongart - _rake_refresh () { if [ -f .rake_tasks ]; then rm .rake_tasks