summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/my/packages/dap.lua
blob: c9240f95a576d380687f07ed55dbfed9e2e24e4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
local dap = require("dap")
local adapters =  dap.adapters
local configurations = dap.configurations

local dapui = require("dapui")
local dappy = require("dap-python")

adapters.delve = {
  type="server",
  port="${port}",
  executable={
    command="dlv",
    args= { "dap", "-l", "127.0.0.1:${port}" }
  }
}

configurations.go = {
  {type    = "delve",
   name    = "Debug",
   request = "launch",
   env     = {CGO_CFLAGS="-Wno-error=cpp"},
   program = "${file}"},
  {type    = "delve",
   name    = "DebugTest",
   request = "launch",
   mode    = "test",
   env     = {CGO_CFLAGS="-Wno-error=cpp"},
   program = "${file}"},
  {type    = "delve",
   name    = "DebugTerraform",
   request = "launch",
   program = "${file}",
   env     = {CGO_CFLAGS="-Wno-error=cpp"},
   args    = { "-debug" }},
  {type    = "delve",
   name    = "DebugTerraformAcc",
   request = "launch",
   program = "${file}",
   mode    = "test",
   env     = {CGO_CFLAGS="-Wno-error=cpp", TF_ACC=1}},
  {type    = "delve",
   name    = "DebugTestSuite",
   request = "launch",
   mode    = "test",
   env     = {CGO_CFLAGS="-Wno-error=cpp"},
   program = "${fileDirname}"},
}

dapui.setup {
  expand_lines=false,
  layouts={
    {position="bottom", size=10, elements={ {id="repl", size=0.5}, {id="console", size=0.5} }},
    {position="left", size=40, elements={ {id="breakpoints",size=0.25}, {id="stacks", size=0.25}, {id="watches", size=0.25}, {id="scopes", size=0.25} }},
    {position="bottom", size=25, elements={ {id="repl", size=0.35}, {id="watches", size=0.65} }},
  }
}

dappy.setup()

-- (local run_table
--        {:python
--         (fn [fname]
--           {
--            :name (.. "Launch " fname)
--            :program fname
--            :console "externalTerminal"
--            :request "launch"
--            :type "python"
--            :cwd :/Users/ivi/Programming
--            :waitOnAbnormalExit true
--            :waitOnNormalExit true})})
-- (vim.keymap.set
--   :n
--   "s;"
--   (fn []
--     (local fname (vim.fn.fnamemodify (vim.fn.bufname "%") ":p"))
--     (local get_config (. run_table (vim.opt_local.ft:get)))
--
--     (set dap.defaults.fallback.external_terminal
--       {:command :/Applications/Alacritty.app/Contents/MacOS/alacritty
--        :args [:-T :dap :--working-directory (vim.fn.getcwd) :-e]})
--
--     (if get_config
--       (dap.run (get_config fname)))))


vim.keymap.set("n", "si",
  function()
   dapui.toggle {layout=1, reset=true}
   dapui.toggle {layout=2, reset=true}
 end,  {silent=true})

vim.keymap.set("n", "s<enter>", function() dapui.toggle {layout=3, reset=true} end, {silent=true})
-- ;;     "breakpoints",
-- ;;     "repl",
-- ;;     "scopes",
-- ;;     "stacks",
-- ;;     "watches",
-- ;;     "hover",
-- ;;     "console",)
vim.keymap.set("n", "sfw",
  function()
    dapui.float_element("watches", {width=vim.api.nvim_win_get_width(0), height=30, enter=true})
  end,  {silent=true})

vim.keymap.set("n", "sfs",
  function()
    dapui.float_element("scopes", {width=vim.api.nvim_win_get_width(0), height=30, enter=true})
  end, {silent=true})

vim.keymap.set("n", "sq", dap.terminate, {silent=true})
vim.keymap.set("n", "sc", dap.continue, {silent=true})
vim.keymap.set("n", "sr", dap.run_to_cursor, {silent=true})
vim.keymap.set("n", "sn", dap.step_over, {silent=true})
vim.keymap.set("n", "ss", dap.step_into, {silent=true})
vim.keymap.set("n", "so", dap.step_out, {silent=true})
vim.keymap.set("n", "sb", dap.toggle_breakpoint, {silent=true})
vim.keymap.set("n", "sB", dap.set_breakpoint, {silent=true})
vim.keymap.set("n", "slp",
  function()
    dap.set_breakpoint(nil, nil, vim.fn.input("Log point message: "))
  end, {silent=true})

vim.keymap.set("n", "st", dap.repl.toggle, {silent=true})
vim.keymap.set("n", "sl", dap.run_last, {silent=true})