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

let g:gdb_executable = 'bidi'
let g:gdb_arguments = '-f tests/test.lua'

nnoremap <leader>m :call LocalMake()<CR>
nnoremap <leader>r :execute '!./' . g:gdb_executable . ' ' . g:gdb_arguments<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