Skip to content

Commit 93d26eb

Browse files
committed
Cache engines
1 parent 4fdd0db commit 93d26eb

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

autoload/rails.vim

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4251,12 +4251,17 @@ function! s:app_has_gem(gem) dict abort
42514251
endfunction
42524252

42534253
function! s:app_engines() dict abort
4254-
let gems = escape(join(values(self.gems()),','), ' ')
4255-
if empty(gems)
4256-
return []
4257-
else
4258-
return sort(map(finddir('app', gems, -1), 'fnamemodify(v:val, ":h")'))
4254+
return []
4255+
if self.cache.needs('engines') || self.cache.get('engines')[1] isnot# self.gems()
4256+
let gems = self.gems()
4257+
let gempath = escape(join(values(gems),','), ' ')
4258+
if empty(gempath)
4259+
call self.cache.set('engines', [[], gems])
4260+
else
4261+
call self.cache.set('engines', [sort(map(finddir('app', gempath, -1), 'fnamemodify(v:val, ":h")')), gems])
4262+
endif
42594263
endif
4264+
return self.cache.get('engines')[0]
42604265
endfunction
42614266

42624267
function! s:extend_projection(dest, src)

0 commit comments

Comments
 (0)