From 528a1a5a4517df8999ae01cb3c4e5af4abdfa833 Mon Sep 17 00:00:00 2001 From: NaiJi Date: Sat, 27 Apr 2024 18:09:21 +0400 Subject: [PATCH] stuff --- .config/nvim/init.lua | 12 +- .config/nvim/lua/kickstart/plugins/debug.lua | 122 +++++++++++++++++++ .gitignore | 1 + 3 files changed, 124 insertions(+), 11 deletions(-) create mode 100644 .config/nvim/lua/kickstart/plugins/debug.lua diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index f5fbfc2..43b5bd4 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -683,16 +683,6 @@ require("lazy").setup({ end, }, - { - "akinsho/flutter-tools.nvim", - lazy = false, - dependencies = { - "nvim-lua/plenary.nvim", - "stevearc/dressing.nvim", -- optional for vim.ui.select - }, - config = true, - }, - -- Highlight todo, notes, etc in comments { "folke/todo-comments.nvim", @@ -780,7 +770,7 @@ require("lazy").setup({ -- Here are some example plugins that I've included in the Kickstart repository. -- Uncomment any of the lines below to enable them (you will need to restart nvim). -- - -- require 'kickstart.plugins.debug', + require("kickstart.plugins.debug"), -- require 'kickstart.plugins.indent_line', -- require 'kickstart.plugins.lint', -- require 'kickstart.plugins.autopairs', diff --git a/.config/nvim/lua/kickstart/plugins/debug.lua b/.config/nvim/lua/kickstart/plugins/debug.lua new file mode 100644 index 0000000..8ecd127 --- /dev/null +++ b/.config/nvim/lua/kickstart/plugins/debug.lua @@ -0,0 +1,122 @@ +-- debug.lua +-- +-- Shows how to use the DAP plugin to debug your code. +-- +-- be extended to other languages as well. That's why it's called +-- kickstart.nvim and not kitchen-sink.nvim ;) + +return { + -- NOTE: Yes, you can install new plugins here! + "mfussenegger/nvim-dap", + -- NOTE: And you can specify dependencies as well + dependencies = { + -- Creates a beautiful debugger UI + "rcarriga/nvim-dap-ui", + + -- Required dependency for nvim-dap-ui + "nvim-neotest/nvim-nio", + + -- Installs the debug adapters for you + "williamboman/mason.nvim", + "jay-babu/mason-nvim-dap.nvim", + + -- Add your own debuggers here + }, + config = function() + local dap = require("dap") + local dapui = require("dapui") + + -- Dart / Flutter + dap.adapters.dart = { + type = "executable", + command = "dart", + args = { "debug_adapter" }, + } + dap.adapters.flutter = { + type = "executable", + command = "flutter", + args = { "debug_adapter" }, + } + dap.configurations.dart = { + { + type = "dart", + request = "launch", + name = "Launch dart", + dartSdkPath = "/opt/flutter/bin/cache/dart-sdk/bin/dart", -- ensure this is correct + flutterSdkPath = "/opt/flutter/bin/flutter", -- ensure this is correct + program = "${workspaceFolder}/lib/main.dart", -- ensure this is correct + cwd = "${workspaceFolder}", + }, + { + type = "flutter", + request = "launch", + name = "Launch flutter", + dartSdkPath = "/opt/flutter/bin/cache/dart-sdk/bin/dart", -- ensure this is correct + flutterSdkPath = "/opt/flutter/bin/flutter", -- ensure this is correct + program = "${workspaceFolder}/lib/main.dart", -- ensure this is correct + cwd = "${workspaceFolder}", + }, + } + + dap.adapters.gdb = { + type = "executable", + command = "gdb", + args = { "-i", "dap" }, + } + dap.configurations.c = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input("Path to executable: ", vim.fn.getcwd() .. "/a.out") + end, + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + }, + } + + require("mason-nvim-dap").setup({ + automatic_setup = true, + handlers = {}, + ensure_installed = { + "dart-debug-adapter", + }, + }) + + -- Basic debugging keymaps, feel free to change to your liking! + vim.keymap.set("n", "", dap.continue, { desc = "Debug: Start/Continue" }) + vim.keymap.set("n", "", dap.step_into, { desc = "Debug: Step Into" }) + vim.keymap.set("n", "", dap.step_over, { desc = "Debug: Step Over" }) + vim.keymap.set("n", "", dap.step_out, { desc = "Debug: Step Out" }) + vim.keymap.set("n", "db", dap.toggle_breakpoint, { desc = "Debug: Toggle Breakpoint" }) + -- Dap UI setup + -- For more information, see |:help nvim-dap-ui| + dapui.setup({ + -- Set icons to characters that are more likely to work in every terminal. + -- Feel free to remove or use ones that you like more! :) + -- Don't feel like these are good choices. + icons = { expanded = "▾", collapsed = "▸", current_frame = "*" }, + controls = { + icons = { + pause = "⏸", + play = "▶", + step_into = "⏎", + step_over = "⏭", + step_out = "⏮", + step_back = "b", + run_last = "▶▶", + terminate = "⏹", + disconnect = "⏏", + }, + }, + }) + + -- Toggle to see last session result. Without this, you can't see session output in case of unhandled exception. + vim.keymap.set("n", "", dapui.toggle, { desc = "Debug: See last session result." }) + + dap.listeners.after.event_initialized["dapui_config"] = dapui.open + dap.listeners.before.event_terminated["dapui_config"] = dapui.close + dap.listeners.before.event_exited["dapui_config"] = dapui.close + end, +} diff --git a/.gitignore b/.gitignore index 9e213b4..fdbe992 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,4 @@ Videos/ .pki/ .pulse-cookie .wget-hsts +.config/DjVuLibre/