Explorar el Código

add autopairs + add nvim-dap: python works

Noah Vogt hace 1 día
padre
commit
7ce45f1cea

+ 4 - 3
dot-config/nvim/init.lua

@@ -16,10 +16,10 @@ require('options')
 -- 3. Load plugins (lazy.nvim)
 require('plugins')
 
--- 4. Load Plugin configurations (some are still in vimscript)
+-- 4. Load vimscript Plugin configurations
 local plug_confs = {
-  'emmet', 'ctrlp', 'sneak', 'airline',
-  'startify', 'wilder', 'vcoolor', 'better-whitespace', 'vimspector'
+  'emmet', 'sneak', 'airline',
+  'startify', 'wilder', 'vcoolor', 'better-whitespace'
 }
 for _, conf in ipairs(plug_confs) do
   vim.cmd('source $XDG_CONFIG_HOME/nvim/plug-conf/' .. conf .. '.vim')
@@ -28,6 +28,7 @@ end
 -- 5. Load Lua-specific configurations
 require('treesitter')
 require('lsp')
+require('dap-conf')
 require('nvim-tree-conf')
 require('telescope-conf')
 require('refactoring-conf')

+ 6 - 1
dot-config/nvim/lazy-lock.json

@@ -3,16 +3,21 @@
   "blink.cmp": { "branch": "main", "commit": "612f4bd2bc29d9e7dc7be1dde960908951bedad1" },
   "cmake-tools.nvim": { "branch": "master", "commit": "5fc40e9e252a113be945019ab16301b851eb98d1" },
   "conform.nvim": { "branch": "master", "commit": "086a40dc7ed8242c03be9f47fbcee68699cc2395" },
-  "ctrlp.vim": { "branch": "master", "commit": "86872f021c4e245e3c583054fda82fb820a2faee" },
   "emmet-vim": { "branch": "master", "commit": "cc8b1a9f2241e087330195c76651c5f9d9519e2f" },
   "gitsigns.nvim": { "branch": "main", "commit": "7c4faa3540d0781a28588cafbd4dd187a28ac6e3" },
   "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" },
   "landscape.vim": { "branch": "master", "commit": "dcdd360f98d35d3b2c0bd1ce9f29ee053f906d07" },
   "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" },
   "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
+  "nvim-autopairs": { "branch": "master", "commit": "59bce2eef357189c3305e25bc6dd2d138c1683f5" },
   "nvim-colorizer.lua": { "branch": "master", "commit": "ef211089af881bea206c7aa3f2693a81feee7e90" },
+  "nvim-dap": { "branch": "master", "commit": "a9d8cb68ee7184111dc66156c4a2ebabfbe01bc5" },
+  "nvim-dap-python": { "branch": "master", "commit": "1808458eba2b18f178f990e01376941a42c7f93b" },
+  "nvim-dap-ui": { "branch": "master", "commit": "f5b6673f374626515401c5bc51b005f784a4f252" },
+  "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" },
   "nvim-lint": { "branch": "master", "commit": "606b823a57b027502a9ae00978ebf4f5d5158098" },
   "nvim-lspconfig": { "branch": "master", "commit": "e057806776c8bed91971338d96a78a0f6a313dae" },
+  "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" },
   "nvim-tree.lua": { "branch": "master", "commit": "e16cd38962bc40c22a51ee004aa4f43726d74a16" },
   "nvim-treesitter": { "branch": "main", "commit": "2b50ab5ccbcd9e5708deb351308edd738adbf84c" },
   "nvim-web-devicons": { "branch": "master", "commit": "d7462543c9e366c0d196c7f67a945eaaf5d99414" },

+ 0 - 10
dot-config/nvim/lua/autocmds.lua

@@ -102,16 +102,6 @@ autocmd({ "BufLeave", "FocusLost", "InsertEnter" }, {
 })
 
 
--- Vimspector log file fix
-augroup("fixVimSpectorLogFile", { clear = true })
-autocmd("User", {
-  group = "fixVimSpectorLogFile",
-  pattern = "VimspectorDebugEnded",
-  callback = function()
-    vim.fn.system("mv ~/.vimspector.log " .. vim.fn.expand("$XDG_CACHE_HOME") .. "/vim/")
-  end,
-})
-
 -- LSP Highlight
 augroup("LspHighlight", { clear = true })
 autocmd("CursorHold", {

+ 53 - 0
dot-config/nvim/lua/dap-conf.lua

@@ -0,0 +1,53 @@
+local dap = require('dap')
+local dapui = require('dapui')
+
+dapui.setup()
+
+require('nvim-dap-virtual-text').setup()
+
+-- Automatically open/close dap-ui
+dap.listeners.after.event_initialized["dapui_config"] = function()
+  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
+
+-- Python configuration
+require('dap-python').setup('python3') -- assumes python3 is in your path and has debugpy installed
+
+-- Keymaps
+local keymap = vim.keymap.set
+local opts = { silent = true }
+
+keymap('n', '<leader>dc', function() require('dap').continue() end, opts)
+keymap('n', '<leader>dn', function() require('dap').step_over() end, opts)
+keymap('n', '<leader>di', function() require('dap').step_into() end, opts)
+keymap('n', '<leader>do', function() require('dap').step_out() end, opts)
+keymap('n', '<leader>db', function() require('dap').toggle_breakpoint() end, opts)
+keymap('n', '<leader>dB', function() require('dap').set_breakpoint(vim.fn.input('Breakpoint condition: ')) end, opts)
+keymap('n', '<leader>lp', function() require('dap').set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end, opts)
+keymap('n', '<leader>dr', function() require('dap').repl.open() end, opts)
+keymap('n', '<leader>dl', function() require('dap').run_last() end, opts)
+
+-- Widgets
+keymap({'n', 'v'}, '<leader>dh', function()
+  require('dap.ui.widgets').hover()
+end)
+keymap({'n', 'v'}, '<leader>dp', function()
+  require('dap.ui.widgets').preview()
+end)
+keymap('n', '<leader>df', function()
+  local widgets = require('dap.ui.widgets')
+  widgets.centered_float(widgets.frames)
+end)
+keymap('n', '<leader>ds', function()
+  local widgets = require('dap.ui.widgets')
+  widgets.centered_float(widgets.scopes)
+end)
+
+-- DAP UI keymaps
+keymap('n', '<leader>du', function() dapui.toggle() end, opts)

+ 2 - 23
dot-config/nvim/lua/keymaps.lua

@@ -1,8 +1,6 @@
 local keymap = vim.keymap.set
 local opts = { silent = true }
 
-vim.g.mapleader = " "
-
 -- Move text buffer in visual mode
 keymap("v", "K", ":m '<-2<CR>gv=gv")
 keymap("v", "J", ":m '>+1<CR>gv=gv")
@@ -39,7 +37,7 @@ keymap("n", "<leader>P", "\"+P")
 -- Diagnostic navigation
 keymap("n", "[g", vim.diagnostic.goto_prev, opts)
 keymap("n", "]g", vim.diagnostic.goto_next, opts)
-keymap("n", "<leader>d", vim.diagnostic.open_float, opts)
+keymap("n", "gl", vim.diagnostic.open_float, opts)
 
 -- LSP gotos
 keymap("n", "gd", vim.lsp.buf.definition, opts)
@@ -71,7 +69,7 @@ keymap("n", "N", "Nzzzv")
 keymap("n", "<leader>g", ":TagbarToggle<CR>")
 
 -- Source vim config
-keymap("n", "<Leader>sv", ":source $XDG_CONFIG_HOME/nvim/init.vim<CR>")
+keymap("n", "<Leader>sv", ":source $XDG_CONFIG_HOME/nvim/init.lua<CR>")
 
 -- Telescope
 keymap("n", "<leader>l", ":Telescope live_grep<CR>")
@@ -95,22 +93,3 @@ keymap("n", "<C-h>", function() utils.win_move('h') end, opts)
 keymap("n", "<C-j>", function() utils.win_move('j') end, opts)
 keymap("n", "<C-k>", function() utils.win_move('k') end, opts)
 keymap("n", "<C-l>", function() utils.win_move('l') end, opts)
-
--- Vimspector
-keymap("n", "<leader>da", ":call vimspector#Launch()<CR>")
-keymap("n", "<leader>dc", ":call GotoWindow(g:vimspector_session_windows.code)<CR>")
-keymap("n", "<leader>dv", ":call GotoWindow(g:vimspector_session_windows.variables)<CR>")
-keymap("n", "<leader>dw", ":call vimspector#ClearBreakpoints()<CR>")
-keymap("n", "<leader>ds", ":call GotoWindow(g:vimspector_session_windows.stack_trace)<CR>")
-keymap("n", "<leader>do", ":call GotoWindow(g:vimspector_session_windows.output)<CR>")
-keymap("n", "<leader>di", ":call AddToWatch()<CR>")
-keymap("n", "<leader>dx", ":call vimspector#Reset()<CR>")
-keymap("n", "<leader>dX", ":call vimspector#ClearBreakpoints()<CR>")
-keymap("n", "<S-k>", ":call vimspector#StepOut()<CR>")
-keymap("n", "<S-l>", ":call vimspector#StepInto()<CR>")
-keymap("n", "<S-j>", ":call vimspector#StepOver()<CR>")
-keymap("n", "<leader>d_", ":call vimspector#Restart()<CR>")
-keymap("n", "<leader>dn", ":call vimspector#Continue()<CR>")
-keymap("n", "<leader>drc", ":call vimspector#RunToCursor()<CR>")
-keymap("n", "<leader>dh", ":call vimspector#ToggleBreakpoint()<CR>")
-keymap("n", "<leader>de", ":call vimspector#ToggleConditionalBreakpoint()<CR>")

+ 3 - 0
dot-config/nvim/lua/options.lua

@@ -1,3 +1,6 @@
+vim.g.mapleader = " "
+vim.g.maplocalleader = " "
+
 local opt = vim.opt
 
 -- Set vim paths

+ 21 - 4
dot-config/nvim/lua/plugins.lua

@@ -16,9 +16,6 @@ require("lazy").setup({
   { 'navarasu/onedark.nvim', priority = 1000 },
   'itchyny/landscape.vim',
 
-  -- Fuzzy find files
-  'ctrlpvim/ctrlp.vim',
-
   -- File Explorer (NvimTree)
   {
     'nvim-tree/nvim-tree.lua',
@@ -36,6 +33,15 @@ require("lazy").setup({
   'vim-airline/vim-airline',
   'vim-airline/vim-airline-themes',
 
+  -- Automatically close pairs like (), {}, etc.
+  {
+    'windwp/nvim-autopairs',
+    event = "InsertEnter",
+    config = true
+    -- use opts = {} for passing setup options
+    -- this is equivalent to setup({}) function
+  },
+
   -- Git
   'tpope/vim-fugitive',
   'lewis6991/gitsigns.nvim',
@@ -112,5 +118,16 @@ require("lazy").setup({
   'NvChad/nvim-colorizer.lua',
 
   -- Android
-  'hsanson/vim-android'
+  'hsanson/vim-android',
+
+  -- Debugging (DAP)
+  {
+    'mfussenegger/nvim-dap',
+    dependencies = {
+      'rcarriga/nvim-dap-ui',
+      'nvim-neotest/nvim-nio',
+      'theHamsta/nvim-dap-virtual-text',
+      'mfussenegger/nvim-dap-python',
+    },
+  }
 })

+ 6 - 0
dot-config/nvim/lua/whichkey.lua

@@ -21,3 +21,9 @@ wk.setup({
   },
   show_help = true,
 })
+
+wk.add({
+  { "<leader>d", group = "Debug" },
+  { "<leader>l", group = "LSP/Telescope" },
+  { "<leader>m", group = "Markdown" },
+})

+ 0 - 1
dot-config/nvim/plug-conf/ctrlp.vim

@@ -1 +0,0 @@
-let g:ctrlp_user_command = ['.git/', 'git --git-dir=%s/.git ls-files -oc --exclude-standard']

+ 0 - 29
dot-config/nvim/plug-conf/vimspector.vim

@@ -1,29 +0,0 @@
-fun! GotoWindow(id)
-    :call win_gotoid(a:id)
-endfun
-
-func! AddToWatch()
-    let word = expand("<cexpr>")
-    call vimspector#AddWatch(word)
-endfunction
-
-let g:vimspector_base_dir = expand('$HOME/.config/vimspector-config')
-let g:vimspector_sidebar_width = 60
-
-nnoremap <leader>da :call vimspector#Launch()<CR>
-nnoremap <leader>dc :call GotoWindow(g:vimspector_session_windows.code)<CR>
-nnoremap <leader>dv :call GotoWindow(g:vimspector_session_windows.variables)<CR>
-nnoremap <leader>dw :call GotoWindow(g:vimspector_session_windows.watches)<CR>
-nnoremap <leader>ds :call GotoWindow(g:vimspector_session_windows.stack_trace)<CR>
-nnoremap <leader>do :call GotoWindow(g:vimspector_session_windows.output)<CR>
-nnoremap <leader>di :call AddToWatch()<CR>
-nnoremap <leader>dx :call vimspector#Reset()<CR>
-nnoremap <leader>dX :call vimspector#ClearBreakpoints()<CR>
-nnoremap <S-k> :call vimspector#StepOut()<CR>
-nnoremap <S-l> :call vimspector#StepInto()<CR>
-nnoremap <S-j> :call vimspector#StepOver()<CR>
-nnoremap <leader>d_ :call vimspector#Restart()<CR>
-nnoremap <leader>dn :call vimspector#Continue()<CR>
-nnoremap <leader>drc :call vimspector#RunToCursor()<CR>
-nnoremap <leader>dh :call vimspector#ToggleBreakpoint()<CR>
-nnoremap <leader>de :call vimspector#ToggleConditionalBreakpoint()<CR>