@@ -1254,7 +1254,7 @@ endfunction
12541254" Rake {{{1
12551255
12561256function ! s: efm_dir () abort
1257- return substitute (matchstr (' ,' .&l: errorformat , ' ,%\\&chdir \zs\%(\\.\|[^,]\)*' ), ' \\,' ,' ,' , ' g' )
1257+ return substitute (matchstr (' ,' .&l: errorformat , ' ,%\\&\%(ch\)\=dir[ =] \zs\%(\\.\|[^,]\)*' ), ' \\,' ,' ,' , ' g' )
12581258endfunction
12591259
12601260function ! s: qf_pre () abort
@@ -1293,7 +1293,11 @@ function! s:app_rake_tasks() dict abort
12931293 return self .cache.get (' rake_tasks' )
12941294endfunction
12951295
1296- call s: add_methods (' app' , [' rake_tasks' ])
1296+ function ! s: app_efm_suffix () dict abort
1297+ return ' ,%\&dir=' . escape (self .real (), ' ,' )
1298+ endfunction
1299+
1300+ call s: add_methods (' app' , [' rake_tasks' , ' efm_suffix' ])
12971301
12981302function ! s: make (bang , args , ... )
12991303 if exists (' :Make' ) == 2
@@ -1320,7 +1324,7 @@ function! s:Rake(bang, lnum, arg) abort
13201324 compiler rails
13211325 let b: current_compiler = ' rake'
13221326 let &l: makeprg = rails#app ().rake_command (' norails' )
1323- let &l: errorformat .= ' ,chdir ' . escape ( self .path (), ' , ' )
1327+ let &l: errorformat .= self .efm_suffix ( )
13241328 let arg = a: arg
13251329 if arg == ' '
13261330 let arg = rails#buffer ().default_rake_task (lnum)
@@ -1858,7 +1862,7 @@ function! s:Rails(bang, count, arg) abort
18581862 let str = s: rake2rails (str)
18591863 let &l: makeprg = rails#app ().prepare_rails_command (' $*' )
18601864 endif
1861- let &l: errorformat .= ' ,chdir ' . escape ( rails#app ().path (), ' , ' )
1865+ let &l: errorformat .= rails#app ().efm_suffix ( )
18621866 call s: make (a: bang , str)
18631867 finally
18641868 let [&l: mp , &l: efm , b: current_compiler ] = [mp , efm , cc ]
@@ -1930,7 +1934,7 @@ function! s:readable_runner_command(bang, count, arg) dict abort
19301934 let &l: makeprg = ' bundle exec ' . &l: makeprg
19311935 endif
19321936
1933- let &l: errorformat .= ' ,chdir ' . escape ( self .app ().path (), ' , ' )
1937+ let &l: errorformat .= self .app ().efm_suffix ( )
19341938
19351939 call s: make (a: bang , arg . extra)
19361940 return ' '
@@ -2052,7 +2056,7 @@ function! s:app_generator_command(bang, mods, ...) dict abort
20522056 let old_errorformat = &l: errorformat
20532057 try
20542058 let &l: makeprg = self .prepare_rails_command (cmd)
2055- let &l: errorformat = s: efm_generate . ' ,chdir ' . escape ( self .path (), ' , ' )
2059+ let &l: errorformat = s: efm_generate . self .efm_suffix ( )
20562060 call s: push_chdir (1 )
20572061 noautocmd make !
20582062 finally
@@ -4990,7 +4994,7 @@ function! rails#buffer_setup() abort
49904994
49914995 compiler rails
49924996 let &l: makeprg = self .app ().rake_command (' static' )
4993- let &l: errorformat .= ' ,%\&chdir ' . escape ( self .app ().real (), ' , ' )
4997+ let &l: errorformat .= self .app ().efm_suffix ( )
49944998 if &l: makeprg = ~# ' rails$'
49954999 let &l: errorformat .= " ,%\\ &buffer=%%:s/.*/\\ =rails#buffer(submatch(0)).default_task(exists('l#') ? l# : 0)/"
49965000 elseif &l: makeprg = ~# ' rake$'
0 commit comments