@@ -43,12 +43,6 @@ local stl = {
43
43
}
44
44
o .statusline = table.concat (stl )
45
45
46
- function prequire (...)
47
- local status , lib = pcall (require , ... )
48
- if status then return lib end
49
- return nil
50
- end
51
-
52
46
local lazypath = vim .fn .stdpath (' data' ) .. ' /lazy/lazy.nvim'
53
47
if not vim .loop .fs_stat (lazypath ) then
54
48
vim .fn .system ({' git' , ' clone' , ' --filter=blob:none' , ' https://github.com/folke/lazy.nvim.git' , ' --branch=stable' , lazypath })
@@ -67,6 +61,7 @@ require('lazy').setup({
67
61
' rluba/jai.vim' ,
68
62
' kdheepak/lazygit.nvim' ,
69
63
' ggandor/lightspeed.nvim' ,
64
+ ' NeogitOrg/neogit' ,
70
65
' alaviss/nim.nvim' ,
71
66
{' hrsh7th/nvim-cmp' , dependencies = {' hrsh7th/cmp-buffer' , ' hrsh7th/cmp-nvim-lsp' }},
72
67
' terrortylor/nvim-comment' ,
@@ -106,11 +101,14 @@ pcall(cmd, 'colorscheme tokyonight')
106
101
local function map (mode , lhs , rhs , opts )
107
102
local options = {noremap = true }
108
103
if opts then options = vim .tbl_extend (' force' , options , opts ) end
109
- vim .api . nvim_set_keymap (mode , lhs , rhs , options )
104
+ vim .keymap . set (mode , lhs , rhs , options )
110
105
end
111
106
local function nmap (lhs , rhs , opts )
112
107
map (' n' , lhs , rhs , opts )
113
108
end
109
+ local function tmap (lhs , rhs , opts )
110
+ map (' t' , lhs , rhs , opts )
111
+ end
114
112
local function nmapp (lhs , rhs , opts )
115
113
local options = {}
116
114
if opts then options = vim .tbl_extend (' force' , options , opts ) end
@@ -129,7 +127,7 @@ map('x', ';', ':')
129
127
-- g
130
128
nmap (' ga' , ' :<C-u>CocList -I symbols<cr>' )
131
129
nmap (' gj' , ' :HopLineAC<cr>' )
132
- nmap (' gk' , ' :opLineBC <cr>' )
130
+ nmap (' gk' , ' :HopLineBC <cr>' )
133
131
xnmap (' gD' , vim .lsp .buf .declaration , ' [G]oto [D]eclaration' )
134
132
-- <leader>
135
133
xnmap (' <leader>?' , require (' telescope.builtin' ).oldfiles , ' [?] Find recently opened files' )
@@ -143,7 +141,8 @@ nmap('<leader>bn', '<cmd>bn<cr>')
143
141
nmap (' <leader>bp' , ' <cmd>bp<cr>' )
144
142
nmap (' <leader>bN' , ' <cmd>new<cr>' )
145
143
nmap (' <leader>bR' , ' <cmd>e<cr>' )
146
- -- <leader>d (diff)
144
+ -- <leader>d (debug, diff)
145
+ nmap (' <leader>db' , ' <cmd>Break<cr>' )
147
146
nmap (' <leader>dt' , ' <cmd>diffthis<cr>' )
148
147
nmap (' <leader>do' , ' <cmd>bufdo diffoff<cr>' )
149
148
-- <leader>e (error)
@@ -171,7 +170,8 @@ nmapp('<leader>lr', '<Plug>(coc-rename)')
171
170
nmap (' <leader>qq' , ' <cmd>quit<cr>' )
172
171
-- <leader>s (search)
173
172
nmap (' <leader>sd' , ' <cmd>Telescope live_grep<cr>' )
174
- nmap (' <leader>ss' , ' <cmd>lua require("telescope.builtin").grep_string()<cr>' )
173
+ nmap (' <leader>sp' , ' <cmd>lua my_fd()<cr>' )
174
+ nmap (' <leader>ss' , ' <cmd>Telescope current_buffer_fuzzy_find<cr>' )
175
175
nmap (' <leader>sS' , ' <cmd>Grepper -noprompt -cword<cr>' )
176
176
-- <leader>t (toggle)
177
177
nmap (' <leader>tl' , ' <cmd>lua require("fn").toggle_loclist()<cr>' )
@@ -210,6 +210,14 @@ nmap('L', '<cmd>call MarkPop(1)<cr>')
210
210
nmap (' K' , ' <cmd>silent call CocAction("doHover")<cr>' )
211
211
nmap (' U' , ' <cmd>call MyHopThenDefinition()<cr>' )
212
212
nmap (' zx' , ' <cmd>bdelete<cr>' )
213
+ nmap (' <f1>' , ' <cmd>Gdb<cr>' )
214
+ nmap (' <f2>' , ' <cmd>Program<cr>' )
215
+ nmap (' <f11>' , ' <cmd>Break<cr>' )
216
+ nmap (' <f12>' , ' <cmd>Clear<cr>' )
217
+ tmap (' <C-h>' , ' <C-\\ ><C-n><C-w>h' )
218
+ tmap (' <C-j>' , ' <C-\\ ><C-n><C-w>j' )
219
+ tmap (' <C-k>' , ' <C-\\ ><C-n><C-w>k' )
220
+ tmap (' <C-l>' , ' <C-\\ ><C-n><C-w>l' )
213
221
214
222
-- Autocmd {{{1
215
223
function nvim_create_augroups (definitions )
@@ -227,9 +235,6 @@ local autocmds = {
227
235
restore_cursor = {
228
236
{' BufRead' , ' *' , [[ call setpos(".", getpos("'\""))]] };
229
237
};
230
- packer = {
231
- {' BufWritePost' , ' plugins.lua' , ' PackerCompile' };
232
- };
233
238
toggle_search_highlighting = {
234
239
{' InsertEnter' , ' *' , ' setlocal nohlsearch' };
235
240
};
@@ -240,6 +245,15 @@ local autocmds = {
240
245
}
241
246
nvim_create_augroups (autocmds )
242
247
248
+ function my_fd (opts )
249
+ opts = opts or {}
250
+ opts .cwd = vim .fn .systemlist (" git rev-parse --show-toplevel" )[1 ]
251
+ if vim .v .shell_error ~= 0 then
252
+ opts .cwd = vim .lsp .get_active_clients ()[1 ].config .root_dir
253
+ end
254
+ require ' telescope.builtin' .find_files (opts )
255
+ end
256
+
243
257
vim .api .nvim_exec ([[
244
258
let g:mark_ring = [{},{},{},{},{},{},{},{},{},{}]
245
259
let g:mark_ring_i = 0
@@ -290,6 +304,44 @@ aug Nim
290
304
au!
291
305
au FileType nim :call Nim_init()
292
306
aug END
307
+
308
+ command! GdbStart :call TermDebugSendCommand('start')
309
+ command! GdbUp :call TermDebugSendCommand('up')
310
+ command! GdbDown :call TermDebugSendCommand('down')
311
+ command! GdbQuit :call TermDebugSendCommand('quit')
293
312
]] , true )
294
313
314
+ vim .g .termdebug_config = {
315
+ wide = 1 ,
316
+ }
317
+ local function my_gdb_keymap (process )
318
+ for _ ,buf in pairs (vim .api .nvim_list_bufs ()) do
319
+ if string.find (vim .api .nvim_buf_get_name (buf ), process ) then
320
+ vim .keymap .set (' n' , ' c' , ' <cmd>Continue<cr>' , {buffer = buf })
321
+ vim .keymap .set (' n' , ' d' , ' <cmd>GdbDown<cr>' , {buffer = buf })
322
+ vim .keymap .set (' n' , ' f' , ' <cmd>Finish<cr>' , {buffer = buf })
323
+ vim .keymap .set (' n' , ' n' , ' <cmd>Over<cr>' , {buffer = buf })
324
+ vim .keymap .set (' n' , ' r' , ' <cmd>GdbStart<cr>' , {buffer = buf })
325
+ vim .keymap .set (' n' , ' s' , ' <cmd>Step<cr>' , {buffer = buf })
326
+ vim .keymap .set (' n' , ' u' , ' <cmd>GdbUp<cr>' , {buffer = buf })
327
+ vim .keymap .set (' n' , ' v' , ' <cmd>call TermDebugSendCommand("info locals")<cr>' , {buffer = buf })
328
+ vim .keymap .set (' n' , ' w' , ' <cmd>call TermDebugSendCommand("where")<cr>' , {buffer = buf })
329
+ vim .keymap .set (' t' , ' ;' , ' <C-\\ ><C-n>' , {buffer = buf })
330
+ end
331
+ end
332
+ end
333
+ vim .api .nvim_exec (' packadd termdebug' , true )
334
+ vim .api .nvim_create_user_command (' RunGdb' , function (opts )
335
+ vim .wo .scrolloff = 999
336
+ vim .cmd " sil! unlet g:termdebug_config['command']"
337
+ vim .cmd ' Termdebug'
338
+ my_gdb_keymap (' /bin/gdb' )
339
+ end , {})
340
+ vim .api .nvim_create_user_command (' RR' , function (opts )
341
+ vim .wo .scrolloff = 999
342
+ vim .cmd " let g:termdebug_config['command'] = ['rr', 'replay', '--']"
343
+ vim .cmd ' Termdebug'
344
+ my_gdb_keymap (' /bin/rr' )
345
+ end , {})
346
+
295
347
require ' plugins'
0 commit comments