blob: e3c08615b5920e6bf627820744f38f2198fdc135 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
" Function to make the target for the recipe under the cursor
function! make#target#Make() abort
" Declare list of targets to build
let l:targets = []
" Iterate back through the file starting at the current line looking for the
" line with the target
for l:li in reverse(range(1, line('.')))
let l:line = getline(l:li)
" If it matches the target format, we've found our line; split the targets
" by space, and break
let l:matchlist = matchlist(l:line, '^\([^:= \t][^:=]*\):')
if len(l:matchlist)
let l:targets = split(l:matchlist[1], '\s\+')
break
" If it wasn't the target line and doesn't have leading tabs, we're not in
" a recipe block; break with an unset target
elseif strpart(l:line, 0, 1) !=# "\t"
break
endif
endfor
" If we found targets, :make them
for l:target in l:targets
execute 'make! '.l:target
endfor
endfunction
|