Skip to content

Commit 10f82d8

Browse files
committed
Enhance feature detection to understand versions
Requires vim-composer >= v1.1.
1 parent 466a161 commit 10f82d8

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

autoload/laravel.vim

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -198,25 +198,30 @@ function! s:app_has(feature) abort dict
198198
endfunction
199199

200200
function! s:has_framework(feature)
201-
if a:feature =~# '^laravel'
201+
let parts = split(a:feature, '\s\+')
202+
let name = remove(parts, 0)
203+
204+
if len(parts) > 1
205+
let comparator = get(parts, 0)
206+
let ver = get(parts, 1)
207+
else
208+
let comparator = '=='
209+
let ver = get(parts, 0, '')
210+
end
211+
212+
if name == 'laravel'
202213
let package = 'laravel/framework'
203-
let constraint = substitute(a:feature, '^laravel', '', '')
204-
elseif a:feature =~# '^lumen'
214+
elseif name == 'lumen'
205215
let package = 'laravel/lumen-framework'
206-
let constraint = substitute(a:feature, '^lumen', '', '')
207216
else
208-
return 0
217+
return v:false
209218
endif
210219

211220
try
212-
let ver = composer#query('require.' . package)
221+
return composer#project().is_installed(package, comparator, ver)
213222
catch /^Vim\%((\a\+)\)\=:E117/
214-
return 0
223+
return v:false
215224
endtry
216-
217-
let constraint = '^[^0-9]*' . escape(constraint, '.')
218-
219-
return !empty(ver) && match(ver, constraint) >= 0
220225
endfunction
221226

222227
function! s:has_feature_by_path(app, feature)

0 commit comments

Comments
 (0)