@@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
102102vim .opt .number = true
103103-- You can also add relative line numbers, to help with jumping.
104104-- Experiment for yourself to see if you like it!
105- -- vim.opt.relativenumber = true
105+ vim .opt .relativenumber = true
106106
107107-- Enable mouse mode, can be useful for resizing splits for example!
108108vim .opt .mouse = ' a'
@@ -290,6 +290,233 @@ require('lazy').setup({
290290 -- Then, because we use the `opts` key (recommended), the configuration runs
291291 -- after the plugin has been loaded as `require(MODULE).setup(opts)`.
292292
293+ { -- Adds git related signs to the gutter, as well as utilities for managing changes
294+ ' lewis6991/gitsigns.nvim' ,
295+ opts = {
296+ signs = {
297+ add = { text = ' +' },
298+ change = { text = ' ~' },
299+ delete = { text = ' _' },
300+ topdelete = { text = ' ‾' },
301+ changedelete = { text = ' ~' },
302+ },
303+ },
304+ },
305+
306+ -- themery
307+ {
308+ ' zaldih/themery.nvim' ,
309+ lazy = false ,
310+ config = function ()
311+ require (' themery' ).setup {
312+ themes = { ' visual_studio_code' , ' retrobox' },
313+ livePreview = true ,
314+ }
315+ end ,
316+ },
317+ -- vscode theme
318+ {
319+ ' askfiy/visual_studio_code' ,
320+ priority = 100 ,
321+ config = function ()
322+ vim .cmd [[ colorscheme visual_studio_code]]
323+ end ,
324+ },
325+
326+ -- transparent windows
327+ { ' xiyaowong/transparent.nvim' },
328+
329+ -- git-conflict
330+ { ' akinsho/git-conflict.nvim' , version = ' *' , config = true },
331+
332+ -- git blame
333+ {
334+ ' f-person/git-blame.nvim' ,
335+ },
336+
337+ -- neogit
338+ {
339+ ' NeogitOrg/neogit' ,
340+ dependencies = {
341+ ' nvim-lua/plenary.nvim' , -- required
342+ ' sindrets/diffview.nvim' , -- optional - Diff integration
343+
344+ -- Only one of these is needed.
345+ ' nvim-telescope/telescope.nvim' , -- optional
346+ -- 'ibhagwan/fzf-lua', -- optional
347+ -- 'echasnovski/mini.pick', -- optional
348+ },
349+ config = true ,
350+ },
351+
352+ -- status line
353+ {
354+ ' nvim-lualine/lualine.nvim' ,
355+ dependencies = { ' nvim-tree/nvim-web-devicons' },
356+ config = function ()
357+ require (' lualine' ).setup {
358+ options = {
359+ icons_enabled = true ,
360+ theme = ' auto' ,
361+ component_separators = { left = ' ' , right = ' ' },
362+ section_separators = { left = ' ' , right = ' ' },
363+ disabled_filetypes = {
364+ statusline = {},
365+ winbar = {},
366+ },
367+ ignore_focus = {},
368+ always_divide_middle = true ,
369+ always_show_tabline = true ,
370+ globalstatus = false ,
371+ refresh = {
372+ statusline = 100 ,
373+ tabline = 100 ,
374+ winbar = 100 ,
375+ },
376+ },
377+ sections = {
378+ lualine_a = { ' mode' },
379+ lualine_b = { ' branch' , ' diff' , ' diagnostics' },
380+ lualine_c = { ' filename' },
381+ lualine_x = { ' encoding' , ' fileformat' , ' filetype' },
382+ lualine_y = { ' progress' },
383+ lualine_z = { ' location' },
384+ },
385+ inactive_sections = {
386+ lualine_a = {},
387+ lualine_b = {},
388+ lualine_c = { ' filename' },
389+ lualine_x = { ' location' },
390+ lualine_y = {},
391+ lualine_z = {},
392+ },
393+ tabline = {},
394+ winbar = {},
395+ inactive_winbar = {},
396+ extensions = {},
397+ }
398+ end ,
399+ },
400+
401+ -- indention markers
402+ {
403+ ' kiyoon/treesitter-indent-object.nvim' ,
404+ keys = {
405+ {
406+ ' ai' ,
407+ function ()
408+ require (' treesitter_indent_object.textobj' ).select_indent_outer ()
409+ end ,
410+ mode = { ' x' , ' o' },
411+ desc = ' Select context-aware indent (outer)' ,
412+ },
413+ {
414+ ' aI' ,
415+ function ()
416+ require (' treesitter_indent_object.textobj' ).select_indent_outer (true )
417+ end ,
418+ mode = { ' x' , ' o' },
419+ desc = ' Select context-aware indent (outer, line-wise)' ,
420+ },
421+ {
422+ ' ii' ,
423+ function ()
424+ require (' treesitter_indent_object.textobj' ).select_indent_inner ()
425+ end ,
426+ mode = { ' x' , ' o' },
427+ desc = ' Select context-aware indent (inner, partial range)' ,
428+ },
429+ {
430+ ' iI' ,
431+ function ()
432+ require (' treesitter_indent_object.textobj' ).select_indent_inner (true , ' V' )
433+ end ,
434+ mode = { ' x' , ' o' },
435+ desc = ' Select context-aware indent (inner, entire range) in line-wise visual mode' ,
436+ },
437+ },
438+ },
439+
440+ {
441+ ' lukas-reineke/indent-blankline.nvim' ,
442+ tag = ' v2.20.8' , -- Use v2
443+ event = ' BufReadPost' ,
444+ config = function ()
445+ vim .opt .list = true
446+ require (' indent_blankline' ).setup {
447+ space_char_blankline = ' ' ,
448+ show_current_context = true ,
449+ show_current_context_start = true ,
450+ }
451+ end ,
452+ },
453+ -- dap
454+ {
455+ ' mfussenegger/nvim-dap' ,
456+ dependencies = {
457+ ' leoluz/nvim-dap-go' ,
458+ ' rcarriga/nvim-dap-ui' ,
459+ ' theHamsta/nvim-dap-virtual-text' ,
460+ ' nvim-neotest/nvim-nio' ,
461+ ' williamboman/mason.nvim' ,
462+ },
463+ config = function ()
464+ local dap = require ' dap'
465+ local ui = require ' dapui'
466+
467+ require (' dapui' ).setup ()
468+ require (' dap-go' ).setup ()
469+
470+ dap .adapters .codelldb = {
471+ type = ' server' ,
472+ port = ' ${port}' ,
473+ executable = {
474+ command = ' codelldb' ,
475+ args = { ' --port' , ' ${port}' },
476+ },
477+ }
478+
479+ dap .configurations .zig = {
480+ {
481+ type = ' codelldb' ,
482+ name = ' Launch' ,
483+ request = ' launch' ,
484+ program = ' ${workspaceFolder}/zig-out/bin/${workspaceFolderBasename}' ,
485+ cwd = ' ${workspaceFolder}' ,
486+ stopOnEntry = false ,
487+ args = {},
488+ },
489+ }
490+
491+ vim .keymap .set (' n' , ' <space>b' , dap .toggle_breakpoint )
492+ vim .keymap .set (' n' , ' <space>gb' , dap .run_to_cursor )
493+
494+ -- Eval var under cursor
495+ vim .keymap .set (' n' , ' <space>?' , function ()
496+ require (' dapui' ).eval (nil , { enter = true })
497+ end )
498+ vim .keymap .set (' n' , ' <F1>' , dap .continue )
499+ vim .keymap .set (' n' , ' <F2>' , dap .step_into )
500+ vim .keymap .set (' n' , ' <F3>' , dap .step_over )
501+ vim .keymap .set (' n' , ' <F4>' , dap .step_out )
502+ vim .keymap .set (' n' , ' <F5>' , dap .step_back )
503+ vim .keymap .set (' n' , ' <F12>' , dap .restart )
504+
505+ dap .listeners .before .attach .dapui_config = function ()
506+ ui .open ()
507+ end
508+ dap .listeners .before .launch .dapui_config = function ()
509+ ui .open ()
510+ end
511+ dap .listeners .before .event_terminated .dapui_config = function ()
512+ ui .close ()
513+ end
514+ dap .listeners .before .event_exited .dapui_config = function ()
515+ ui .close ()
516+ end
517+ end ,
518+ },
519+
293520 { -- Useful plugin to show you pending keybinds.
294521 ' folke/which-key.nvim' ,
295522 event = ' VimEnter' , -- Sets the loading event to 'VimEnter'
@@ -990,12 +1217,11 @@ require('lazy').setup({
9901217 -- Here are some example plugins that I've included in the Kickstart repository.
9911218 -- Uncomment any of the lines below to enable them (you will need to restart nvim).
9921219 --
993- -- require 'kickstart.plugins.debug',
994- -- require 'kickstart.plugins.indent_line',
995- -- require 'kickstart.plugins.lint',
996- -- require 'kickstart.plugins.autopairs',
1220+ require ' kickstart.plugins.debug' ,
1221+ require ' kickstart.plugins.indent_line' ,
1222+ require ' kickstart.plugins.lint' ,
1223+ require ' kickstart.plugins.autopairs' ,
9971224 -- require 'kickstart.plugins.neo-tree',
998- -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps
9991225
10001226 -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua`
10011227 -- This is the easiest way to modularize your config.
0 commit comments