-- UI plugins return { { 'folke/which-key.nvim', event = 'VimEnter', opts = { icons = { mappings = vim.g.have_nerd_font, keys = vim.g.have_nerd_font and {} or { Up = ' ', Down = ' ', Left = ' ', Right = ' ', C = ' ', M = ' ', D = ' ', S = ' ', CR = ' ', Esc = ' ', ScrollWheelDown = ' ', ScrollWheelUp = ' ', NL = ' ', BS = ' ', Space = ' ', Tab = ' ', F1 = '', F2 = '', F3 = '', F4 = '', F5 = '', F6 = '', F7 = '', F8 = '', F9 = '', F10 = '', F11 = '', F12 = '', }, }, spec = { -- Groups { 'c', group = '[C]ode', mode = { 'n', 'x' } }, { 'd', group = '[D]ocument' }, { 'r', group = '[R]ename' }, { 's', group = '[S]earch' }, { 'W', group = '[W]orkspace' }, { 't', group = '[T]oggle' }, { 'h', group = 'Git [H]unk', mode = { 'n', 'v' } }, -- General keybinds { 'w', desc = 'Save File' }, { 'pv', desc = 'Go back to Dir' }, { 'q', desc = 'Open diagnostic quickfix list' }, { 'f', desc = 'Format buffer', mode = { 'n', 'v' } }, -- LSP keybinds { 'D', desc = 'Type Definition' }, { 'ds', desc = 'Document Symbols' }, { 'ws', desc = 'Workspace Symbols' }, { 'rn', desc = 'Rename' }, { 'ca', desc = 'Code Action', mode = { 'n', 'v' } }, { 'th', desc = 'Toggle Inlay Hints' }, -- Harpoon keybinds { 'A', desc = 'Add file to harpoon' }, { 'a', desc = 'Open harpoon nav' }, { '1', desc = 'Go to file 1' }, { '2', desc = 'Go to file 2' }, { '3', desc = 'Go to file 3' }, { '4', desc = 'Go to file 4' }, { '5', desc = 'Go to file 5' }, { 'z', desc = 'Open harpoon in telescope' }, -- Telescope search keybinds { 'sh', desc = 'Search Help' }, { 'sk', desc = 'Search Keymaps' }, { 'sf', desc = 'Search Files' }, { 'ss', desc = 'Search Select Telescope' }, { 'sw', desc = 'Search current Word' }, { 'sg', desc = 'Search by Grep' }, { 'sd', desc = 'Search Diagnostics' }, { 'sr', desc = 'Search Resume' }, { 's.', desc = 'Search Recent Files' }, { '', desc = 'Find existing buffers' }, { '/', desc = 'Fuzzily search in current buffer' }, { 's/', desc = 'Search in Open Files' }, { 'sn', desc = 'Search Neovim files' }, -- Debug keybinds { 'b', desc = 'Debug: Toggle Breakpoint' }, { 'B', desc = 'Debug: Set Breakpoint' }, -- Git hunk actions { 'hs', desc = 'Stage hunk', mode = { 'n', 'v' } }, { 'hr', desc = 'Reset hunk', mode = { 'n', 'v' } }, { 'hS', desc = 'Stage buffer' }, { 'hu', desc = 'Undo stage hunk' }, { 'hR', desc = 'Reset buffer' }, { 'hp', desc = 'Preview hunk' }, { 'hb', desc = 'Blame line' }, { 'hd', desc = 'Diff against index' }, { 'hD', desc = 'Diff against last commit' }, -- Git toggles { 'tb', desc = 'Toggle git show blame line' }, { 'tD', desc = 'Toggle git show deleted' }, -- Function keys { '', desc = 'Debug: Step Into' }, { '', desc = 'Debug: Step Over' }, { '', desc = 'Debug: Step Out' }, { '', desc = 'Debug: Start/Continue' }, { '', desc = 'Debug: See last session result' }, -- Other important keybinds { '\\', desc = 'NeoTree reveal' }, { 'gd', desc = 'Go to Definition' }, { 'gr', desc = 'Go to References' }, { 'gI', desc = 'Go to Implementation' }, { 'gD', desc = 'Go to Declaration' }, { ']c', desc = 'Next git change' }, { '[c', desc = 'Previous git change' }, }, }, }, { 'echasnovski/mini.nvim', config = function() require('mini.ai').setup { n_lines = 500 } require('mini.surround').setup() local statusline = require 'mini.statusline' statusline.setup { use_icons = vim.g.have_nerd_font } statusline.section_location = function() return '%2l:%-2v' end end, }, { 'lukas-reineke/indent-blankline.nvim', main = 'ibl', event = 'BufReadPost', config = function() vim.api.nvim_set_hl(0, 'IblIndent', { fg = '#0a0a0a' }) vim.api.nvim_set_hl(0, 'IblScope', { fg = '#0e0e0e' }) require('ibl').setup({ indent = { char = '│', highlight = 'IblIndent', }, scope = { enabled = true, show_start = false, show_end = false, highlight = 'IblScope', }, }) end, }, }