@@ -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,10 @@ 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>c (compile)
145
+ nmap (' <leader>cc' , ' <cmd>make<cr>' )
146
+ -- <leader>d (debug, diff)
147
+ nmap (' <leader>db' , ' <cmd>Break<cr>' )
147
148
nmap (' <leader>dt' , ' <cmd>diffthis<cr>' )
148
149
nmap (' <leader>do' , ' <cmd>bufdo diffoff<cr>' )
149
150
-- <leader>e (error)
@@ -171,7 +172,8 @@ nmapp('<leader>lr', '<Plug>(coc-rename)')
171
172
nmap (' <leader>qq' , ' <cmd>quit<cr>' )
172
173
-- <leader>s (search)
173
174
nmap (' <leader>sd' , ' <cmd>Telescope live_grep<cr>' )
174
- nmap (' <leader>ss' , ' <cmd>lua require("telescope.builtin").grep_string()<cr>' )
175
+ nmap (' <leader>sp' , ' <cmd>lua my_fd()<cr>' )
176
+ nmap (' <leader>ss' , ' <cmd>Telescope current_buffer_fuzzy_find<cr>' )
175
177
nmap (' <leader>sS' , ' <cmd>Grepper -noprompt -cword<cr>' )
176
178
-- <leader>t (toggle)
177
179
nmap (' <leader>tl' , ' <cmd>lua require("fn").toggle_loclist()<cr>' )
@@ -210,6 +212,14 @@ nmap('L', '<cmd>call MarkPop(1)<cr>')
210
212
nmap (' K' , ' <cmd>silent call CocAction("doHover")<cr>' )
211
213
nmap (' U' , ' <cmd>call MyHopThenDefinition()<cr>' )
212
214
nmap (' zx' , ' <cmd>bdelete<cr>' )
215
+ nmap (' <f1>' , ' <cmd>Gdb<cr>' )
216
+ nmap (' <f2>' , ' <cmd>Program<cr>' )
217
+ nmap (' <f11>' , ' <cmd>Break<cr>' )
218
+ nmap (' <f12>' , ' <cmd>Clear<cr>' )
219
+ tmap (' <C-h>' , ' <C-\\ ><C-n><C-w>h' )
220
+ tmap (' <C-j>' , ' <C-\\ ><C-n><C-w>j' )
221
+ tmap (' <C-k>' , ' <C-\\ ><C-n><C-w>k' )
222
+ tmap (' <C-l>' , ' <C-\\ ><C-n><C-w>l' )
213
223
214
224
-- Autocmd {{{1
215
225
function nvim_create_augroups (definitions )
@@ -227,9 +237,6 @@ local autocmds = {
227
237
restore_cursor = {
228
238
{' BufRead' , ' *' , [[ call setpos(".", getpos("'\""))]] };
229
239
};
230
- packer = {
231
- {' BufWritePost' , ' plugins.lua' , ' PackerCompile' };
232
- };
233
240
toggle_search_highlighting = {
234
241
{' InsertEnter' , ' *' , ' setlocal nohlsearch' };
235
242
};
@@ -240,6 +247,15 @@ local autocmds = {
240
247
}
241
248
nvim_create_augroups (autocmds )
242
249
250
+ function my_fd (opts )
251
+ opts = opts or {}
252
+ opts .cwd = vim .fn .systemlist (" git rev-parse --show-toplevel" )[1 ]
253
+ if vim .v .shell_error ~= 0 then
254
+ opts .cwd = vim .lsp .get_active_clients ()[1 ].config .root_dir
255
+ end
256
+ require ' telescope.builtin' .find_files (opts )
257
+ end
258
+
243
259
vim .api .nvim_exec ([[
244
260
let g:mark_ring = [{},{},{},{},{},{},{},{},{},{}]
245
261
let g:mark_ring_i = 0
@@ -290,6 +306,44 @@ aug Nim
290
306
au!
291
307
au FileType nim :call Nim_init()
292
308
aug END
309
+
310
+ command! GdbStart :call TermDebugSendCommand('start')
311
+ command! GdbUp :call TermDebugSendCommand('up')
312
+ command! GdbDown :call TermDebugSendCommand('down')
313
+ command! GdbQuit :call TermDebugSendCommand('quit')
293
314
]] , true )
294
315
316
+ vim .g .termdebug_config = {
317
+ wide = 1 ,
318
+ }
319
+ local function my_gdb_keymap (process )
320
+ for _ ,buf in pairs (vim .api .nvim_list_bufs ()) do
321
+ if string.find (vim .api .nvim_buf_get_name (buf ), process ) then
322
+ vim .keymap .set (' n' , ' c' , ' <cmd>Continue<cr>' , {buffer = buf })
323
+ vim .keymap .set (' n' , ' d' , ' <cmd>GdbDown<cr>' , {buffer = buf })
324
+ vim .keymap .set (' n' , ' f' , ' <cmd>Finish<cr>' , {buffer = buf })
325
+ vim .keymap .set (' n' , ' n' , ' <cmd>Over<cr>' , {buffer = buf })
326
+ vim .keymap .set (' n' , ' r' , ' <cmd>GdbStart<cr>' , {buffer = buf })
327
+ vim .keymap .set (' n' , ' s' , ' <cmd>Step<cr>' , {buffer = buf })
328
+ vim .keymap .set (' n' , ' u' , ' <cmd>GdbUp<cr>' , {buffer = buf })
329
+ vim .keymap .set (' n' , ' v' , ' <cmd>call TermDebugSendCommand("info locals")<cr>' , {buffer = buf })
330
+ vim .keymap .set (' n' , ' w' , ' <cmd>call TermDebugSendCommand("where")<cr>' , {buffer = buf })
331
+ vim .keymap .set (' t' , ' ;' , ' <C-\\ ><C-n>' , {buffer = buf })
332
+ end
333
+ end
334
+ end
335
+ vim .api .nvim_exec (' packadd termdebug' , true )
336
+ vim .api .nvim_create_user_command (' RunGdb' , function (opts )
337
+ vim .wo .scrolloff = 999
338
+ vim .cmd " sil! unlet g:termdebug_config['command']"
339
+ vim .cmd ' Termdebug'
340
+ my_gdb_keymap (' /bin/gdb' )
341
+ end , {})
342
+ vim .api .nvim_create_user_command (' RR' , function (opts )
343
+ vim .wo .scrolloff = 999
344
+ vim .cmd " let g:termdebug_config['command'] = ['rr', 'replay', '--']"
345
+ vim .cmd ' Termdebug'
346
+ my_gdb_keymap (' /bin/rr' )
347
+ end , {})
348
+
295
349
require ' plugins'
0 commit comments