Skip to content

Commit b153d26

Browse files
committed
Normalize handling of chdir on :make
1 parent b59e180 commit b153d26

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

autoload/rails.vim

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,7 +1254,7 @@ endfunction
12541254
" Rake {{{1
12551255

12561256
function! s:efm_dir() abort
1257-
return substitute(matchstr(','.&l:errorformat, ',%\\&chdir \zs\%(\\.\|[^,]\)*'), '\\,' ,',', 'g')
1257+
return substitute(matchstr(','.&l:errorformat, ',%\\&\%(ch\)\=dir[ =]\zs\%(\\.\|[^,]\)*'), '\\,' ,',', 'g')
12581258
endfunction
12591259

12601260
function! s:qf_pre() abort
@@ -1293,7 +1293,11 @@ function! s:app_rake_tasks() dict abort
12931293
return self.cache.get('rake_tasks')
12941294
endfunction
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

12981302
function! 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

Comments
 (0)