summaryrefslogtreecommitdiff
path: root/lua/user/dap.lua
diff options
context:
space:
mode:
authorVito G. Graffagnino <vito@graffagnino.xyz>2022-07-22 10:37:14 +0100
committerVito G. Graffagnino <vito@graffagnino.xyz>2022-07-22 10:37:14 +0100
commitf6e0aff4356dc2598966657895c777e6bea23d54 (patch)
treeb7ab1692faa0882b4bc12d685b0e2bca036aa654 /lua/user/dap.lua
parent1afd76ff2fa2d7cfb408a78cd8e47209f0305a24 (diff)
Changes to create unbreakable IDE part 1 from chris@machine
Diffstat (limited to 'lua/user/dap.lua')
-rw-r--r--lua/user/dap.lua95
1 files changed, 95 insertions, 0 deletions
diff --git a/lua/user/dap.lua b/lua/user/dap.lua
new file mode 100644
index 0000000..b51dfd7
--- /dev/null
+++ b/lua/user/dap.lua
@@ -0,0 +1,95 @@
+local dap_status_ok, dap = pcall(require, "dap")
+if not dap_status_ok then
+ return
+end
+
+local dap_install_status_ok, dap_install = pcall(require, "dap-install")
+if not dap_install_status_ok then
+ return
+end
+
+local dap_ui_status_ok, dapui = pcall(require, "dapui")
+if not dap_ui_status_ok then
+ return
+end
+
+if not dap_install_status_ok then
+ return
+end
+
+dap_install.setup({
+ installation_path = vim.fn.stdpath('data') .. "/dapinstall/",
+})
+
+dap_install.config("python", {})
+
+-- dapui.setup()
+dapui.setup({
+ icons = { expanded = "▾", collapsed = "▸" },
+ mappings = {
+ -- Use a table to apply multiple mappings
+ expand = { "<CR>", "<2-LeftMouse>" },
+ open = "o",
+ remove = "d",
+ edit = "e",
+ repl = "r",
+ toggle = "t",
+ },
+ -- Expand lines larger than the window
+ -- Requires >= 0.7
+ expand_lines = vim.fn.has("nvim-0.7"),
+ -- Layouts define sections of the screen to place windows.
+ -- The position can be "left", "right", "top" or "bottom".
+ -- The size specifies the height/width depending on position. It can be an Int
+ -- or a Float. Integer specifies height/width directly (i.e. 20 lines/columns) while
+ -- Float value specifies percentage (i.e. 0.3 - 30% of available lines/columns)
+ -- Elements are the elements shown in the layout (in order).
+ -- Layouts are opened in order so that earlier layouts take priority in window sizing.
+ layouts = {
+ {
+ elements = {
+ -- Elements can be strings or table with id and size keys.
+ { id = "scopes", size = 0.25 },
+ "breakpoints",
+ -- "stacks",
+ -- "watches",
+ },
+ size = 40, -- 40 columns
+ position = "right",
+ },
+ {
+ elements = {
+ "repl",
+ "console",
+ },
+ size = 0.25, -- 25% of total lines
+ position = "bottom",
+ },
+ },
+ floating = {
+ max_height = nil, -- These can be integers or a float between 0 and 1.
+ max_width = nil, -- Floats will be treated as percentage of your screen.
+ border = "single", -- Border style. Can be "single", "double" or "rounded"
+ mappings = {
+ close = { "q", "<Esc>" },
+ },
+ },
+ windows = { indent = 1 },
+ render = {
+ max_type_length = nil, -- Can be integer or nil.
+ }
+})
+
+local icons = require "user.icons"
+
+vim.fn.sign_define('DapBreakpoint', {text="", texthl='DiagnosticSignError', linehl='', numhl=''})
+
+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