@@ -1205,7 +1205,7 @@ function! s:make(bang, args, ...)
12051205 endif
12061206endfunction
12071207
1208- function ! s: Rake (bang ,lnum,arg)
1208+ function ! s: Rake (bang , lnum, arg) abort
12091209 let self = rails#app ()
12101210 let lnum = a: lnum < 0 ? 0 : a: lnum
12111211 let old_makeprg = &l: makeprg
@@ -1217,16 +1217,6 @@ function! s:Rake(bang,lnum,arg)
12171217 let &l: makeprg = rails#app ().rake_command ()
12181218 let &l: errorformat .= ' ,chdir ' .escape (self .path (), ' ,' )
12191219 let arg = a: arg
1220- if &filetype = ~# ' ^ruby\>' && arg == ' '
1221- let mnum = s: lastmethodline (lnum)
1222- let str = getline (mnum)." \n " .getline (mnum+ 1 )." \n " .getline (mnum+ 2 )." \n "
1223- let pat = ' \s\+\zs.\{-\}\ze\%(\n\|\s\s\|#{\@!\|$\)'
1224- let mat = matchstr (str,' #\s*rake' .pat)
1225- let mat = s: sub (mat ,' \s+$' ,' ' )
1226- if mat != " "
1227- let arg = mat
1228- endif
1229- endif
12301220 if arg == ' '
12311221 let arg = rails#buffer ().default_rake_task (lnum)
12321222 endif
@@ -1235,7 +1225,6 @@ function! s:Rake(bang,lnum,arg)
12351225 let arg = get (self .options ,' last_rake_task' ,' ' )
12361226 endif
12371227 let self .options [' last_rake_task' ] = arg
1238- let withrubyargs = ' -r ./config/boot -r ' .s: rquote (self .path (' config/environment' )).' -e "puts \%((in \#{Dir.getwd}))" '
12391228 if arg = ~# ' ^notes\>'
12401229 let &l: errorformat = ' %-P%f:,\ \ *\ [%\ %#%l]\ [%t%*[^]]] %m,\ \ *\ [%[\ ]%#%l] %m,%-Q'
12411230 call s: make (a: bang , arg)
@@ -1326,16 +1315,17 @@ function! s:readable_default_rake_task(...) dict abort
13261315 let app = self .app ()
13271316 let lnum = a: 0 ? (a: 1 < 0 ? 0 : a: 1 ) : 0
13281317
1318+ let taskpat = ' \C# rake\s\+\zs.\{-\}\ze\%(\s\s\|#\|$\)'
13291319 if self .getvar (' &buftype' ) == ' quickfix'
13301320 return ' -'
13311321 elseif self .getline (lnum) = ~# ' # rake \S'
13321322 return matchstr (self .getline (lnum),' \C# rake \zs.*' )
1333- elseif self .getline (self .last_method_line (lnum)-1 ) = ~# ' # rake '
1334- return matchstr (self .getline (self .last_method_line (lnum)-1 ),' \C# rake \zs.* ' )
1335- elseif self .getline (self .last_method_line (lnum)) = ~# ' # rake '
1336- return matchstr (self .getline (self .last_method_line (lnum)),' \C# rake \zs.* ' )
1337- elseif self .getline (1 ) = ~# ' # rake \S ' && ! lnum
1338- return matchstr (self .getline (1 ),' \C# rake \zs.* ' )
1323+ elseif self .getline (self .last_method_line (lnum)-1 ) = ~# taskpat
1324+ return matchstr (self .getline (self .last_method_line (lnum)-1 ), taskpat )
1325+ elseif self .getline (self .last_method_line (lnum)) = ~# taskpat
1326+ return matchstr (self .getline (self .last_method_line (lnum)), taskpat )
1327+ elseif self .getline (1 ) = ~# taskpat && ! lnum
1328+ return matchstr (self .getline (1 ), taskpat )
13391329 endif
13401330
13411331 let placeholders = {}
0 commit comments