-- You can add your own plugins here or in other files in this directory! -- I promise not to create any merge conflicts in this directory :) -- -- See the kickstart.nvim README for more information local function do_custom_commit(prefix) local ok, _ = pcall(vim.cmd, 'G commit -a') if ok then local branch = vim.fn.system "git branch --show-current | tr -d '\n'" local ticket = branch:match '([A-Z]+%-%d+)' vim.cmd 'startinsert' if not ticket then vim.api.nvim_put({ string.format('%s: ', prefix) }, 'c', true, true) return end if prefix == '' then vim.api.nvim_put({ string.format('%s: ', ticket) }, 'c', true, true) return end vim.api.nvim_put({ string.format('%s(%s): ', prefix, ticket) }, 'c', true, true) end end return { { 'christoomey/vim-tmux-navigator', cmd = { 'TmuxNavigateLeft', 'TmuxNavigateDown', 'TmuxNavigateUp', 'TmuxNavigateRight', 'TmuxNavigatePrevious', }, keys = { -- there were come ctrl+hjkl stuff here but i don't think i need it, use alt+arrows }, }, { 'nvim-tree/nvim-tree.lua', version = '*', lazy = false, dependencies = { 'nvim-tree/nvim-web-devicons', }, config = function() require('nvim-tree').setup { vim.keymap.set('n', 'tt', ':NvimTreeToggle\n', { desc = '[T]oggle NVim[T]ree' }), } end, }, { 'nvimtools/none-ls.nvim', ft = { 'python' }, opts = function() local null_ls = require 'null-ls' return { sources = { null_ls.builtins.diagnostics.mypy.with { extra_args = function() local virtual = os.getenv 'VIRTUAL_ENV' or os.getenv 'CONDA_PREFIX' or '/usr' return { '--python-executable', virtual .. '/bin/python3' } end, }, null_ls.builtins.formatting.isort.with { prefer_local = true }, }, } end, }, { 'mfussenegger/nvim-dap', config = function() vim.keymap.set('n', 'db', ' DapToggleBreakpoint ', { desc = '[D]ebug [B]reakpoint' }) vim.keymap.set('n', '', function() require('dap').continue() end, { desc = 'Step Over' }) vim.keymap.set('n', '', function() require('dap').step_over() end, { desc = 'Step Over' }) vim.keymap.set('n', '', function() require('dap').step_into() end, { desc = 'Step Into' }) end, }, { 'mfussenegger/nvim-dap-python', ft = 'python', dependencies = { 'mfussenegger/nvim-dap', }, config = function() local path = '~/.local/share/nvim/mason/packages/debugpy/venv/bin/python' require('dap-python').setup(path) end, }, { 'nvim-neotest/neotest', dependencies = { 'nvim-neotest/nvim-nio', 'nvim-lua/plenary.nvim', 'antoinemadec/FixCursorHold.nvim', 'nvim-treesitter/nvim-treesitter', 'nvim-neotest/neotest-python', }, config = function() require('neotest').setup { adapters = { require 'neotest-python' { dap = { justMyCode = false }, pytest_discover_instances = true, }, }, } vim.keymap.set('n', 'tn', function() require('neotest').run.run() end, { desc = '[T]ests: Run [N]earest' }) vim.keymap.set('n', 'tdn', function() require('neotest').run.run { strategy = 'dap' } end, { desc = '[T]ests: [D]ebug [N]earest' }) vim.keymap.set('n', 'tf', function() require('neotest').run.run(vim.fn.expand '%') end, { desc = '[T]ests: Run all tests in [F]ile' }) vim.keymap.set('n', 'to', function() require('neotest').output.open { enter = true } end, { desc = '[T]ests: Open [O]utput Window' }) end, }, { 'rcarriga/nvim-dap-ui', dependencies = { 'mfussenegger/nvim-dap', 'nvim-neotest/nvim-nio' }, config = function() local dap, dapui = require 'dap', require 'dapui' dap.listeners.before.attach.dapui_config = function() dapui.setup() dapui.open() end dap.listeners.before.launch.dapui_config = function() dapui.setup() dapui.open() end dap.listeners.before.event_terminated.dapui_config = function() dapui.close() end dap.listeners.before.event_exited.dapui_config = function() dapui.close() end end, }, { 'folke/neodev.nvim', opts = {}, config = function() require('neodev').setup { library = { plugins = { 'nvim-dap-ui' }, types = true }, } end, }, { 'tpope/vim-fugitive', config = function() vim.keymap.set('n', 'gb', 'Telescope git_branches', { desc = '[G]it [B]ranches' }) vim.keymap.set('n', 'gs', 'Git', { desc = '[G]it [S]tatus' }) vim.keymap.set('n', 'gcf', function() do_custom_commit 'feat' end, { desc = '[G]it [C]ommit [F]eat' }) vim.keymap.set('n', 'gcc', function() do_custom_commit 'chore' end, { desc = '[G]it [C]ommit [C]hore' }) vim.keymap.set('n', 'gcr', function() do_custom_commit 'refactor' end, { desc = '[G]it [C]ommit [R]efactor' }) vim.keymap.set('n', 'gce', 'Git commit -a', { desc = '[G]it [C]ommit [E]mpty' }) vim.keymap.set('n', 'gp', 'Git push', { desc = '[G]it [P]ush' }) vim.keymap.set('n', 'gf', 'Git pull', { desc = '[G]it [F]pull' }) vim.keymap.set('n', 'gd', 'Git diff', { desc = '[G]it [D]iff' }) vim.keymap.set('n', 'gl', 'Git log', { desc = '[G]it [L]og' }) vim.keymap.set('n', 'gw', 'Git blame', { desc = '[G]it [W]hodunit (Blame)' }) end, }, { 'LunarVim/breadcrumbs.nvim', dependencies = { { 'SmiteshP/nvim-navic' }, }, config = function() require('nvim-navic').setup { lsp = { auto_attach = true, preference = { 'pyright' } } } require('breadcrumbs').setup() end, }, { 'github/copilot.vim', }, { 'nvimdev/dashboard-nvim', event = 'VimEnter', config = function() require('dashboard').setup { config = { header = { '⠀⢀⣴⣦⠀⠀⠀⠀⢰⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀', '⣰⣿⣿⣿⣷⡀⠀⠀⢸⣿⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀', '⣿⣿⣿⣿⣿⣿⣄⠀⢸⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀', '⣿⣿⣿⠈⢿⣿⣿⣦⢸⣿⣿⡇⠀⣠⠴⠒⠢⣄⠀⠀⣠⠴⠲⠦⣄⠐⣶⣆⠀⠀⢀⣶⡖⢰⣶⠀⢰⣶⣴⡶⣶⣆⣴⡶⣶⣶⡄', '⣿⣿⣿⠀⠀⠻⣿⣿⣿⣿⣿⡇⢸⣁⣀⣀⣀⣘⡆⣼⠁⠀⠀⠀⠘⡇⠹⣿⡄⠀⣼⡿⠀⢸⣿⠀⢸⣿⠁⠀⢸⣿⡏⠀⠀⣿⣿', '⠹⣿⣿⠀⠀⠀⠙⣿⣿⣿⡿⠃⢸⡀⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⢀⡏⠀⢻⣿⣸⣿⠁⠀⢸⣿⠀⢸⣿⠀⠀⢸⣿⡇⠀⠀⣿⣿', '⠀⠈⠻⠀⠀⠀⠀⠈⠿⠋⠀⠀⠈⠳⢤⣀⣠⠴⠀⠈⠧⣄⣀⡠⠞⠁⠀⠀⠿⠿⠃⠀⠀⢸⣿⠀⢸⣿⠀⠀⠸⣿⡇⠀⠀⣿⡿', }, shortcut = {}, project = { enable = false }, mru = { cwd_only = true }, footer = { ' ', ' 👾 github.com/feakuru 👾 ', }, }, hide = { statusline = false, tabline = false, winbar = false }, } end, dependencies = { { 'nvim-tree/nvim-web-devicons' } }, }, { 'ThePrimeagen/vim-be-good', }, }