summaryrefslogtreecommitdiff
path: root/.vimrc
blob: a2da4a75f151569d715cf2986eca3989dc8006d8 (plain)
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
set makeprg=make
set errorformat=%f:%l:%c:\ %m

let g:gdb_executable = 'bidi'
let g:gdb_arguments = '-r examples/json.lua'

nnoremap <leader>m :call LocalMake()<CR>
nnoremap <leader>bm :execute '!make && gdb -ex "break main" -ex "run" --args ' . g:gdb_executable . ' ' . g:gdb_arguments<CR>
nnoremap <leader>bl :execute '!make && gdb -ex "break ' . line('.') . '" -ex "run" --args ' . g:gdb_executable . ' ' . g:gdb_arguments<CR>

function! LocalMake()
	silent make

	" Filter non valid errors out of quicklist.
	let qfl = getqflist()
	let filtered = filter(copy(qfl), {_, entry -> entry.valid == 1})
	call setqflist(filtered, 'r')

	redraw!

	if len(filtered) > 0
		copen
	else
		cclose
	endif
endfunction

" Hardcoded example
" nnoremap <leader>bm :!gdb -ex "break main" -ex "run" --args bidi -r examples/json.lua<CR>
" nnoremap <leader>bl :execute '!gdb -ex "break ' . line('.') . '" -ex "run" --args bidi -r examples/json.lua'<CR>