1set makeprg=make
2set errorformat=%f:%l:%c:\ %m
3
4let g:gdb_executable = 'bidi'
5let g:gdb_arguments = '-f tests/test.lua'
6
7nnoremap <leader>m :call LocalMake()<CR>
8nnoremap <leader>r :execute '!./' . g:gdb_executable . ' ' . g:gdb_arguments<CR>
9nnoremap <leader>bm :execute '!make && gdb -ex "break main" -ex "run" --args ' . g:gdb_executable . ' ' . g:gdb_arguments<CR>
10nnoremap <leader>bl :execute '!make && gdb -ex "break ' . line('.') . '" -ex "run" --args ' . g:gdb_executable . ' ' . g:gdb_arguments<CR>
11
12function! LocalMake()
13 silent make
14
15 " Filter non valid errors out of quicklist.
16 let qfl = getqflist()
17 let filtered = filter(copy(qfl), {_, entry -> entry.valid == 1})
18 call setqflist(filtered, 'r')
19
20 redraw!
21
22 if len(filtered) > 0
23 copen
24 else
25 cclose
26 endif
27endfunction