summaryrefslogtreecommitdiff
path: root/.vimrc
diff options
context:
space:
mode:
Diffstat (limited to '.vimrc')
-rw-r--r--.vimrc30
1 files changed, 30 insertions, 0 deletions
diff --git a/.vimrc b/.vimrc
new file mode 100644
index 0000000..a2da4a7
--- /dev/null
+++ b/.vimrc
@@ -0,0 +1,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>