sakhnik / nvim-gdb

Neovim thin wrapper for GDB, LLDB, PDB/PDB++ and BashDB
712 stars 34 forks source link

nvim_config_override works with vimscript functions but not lua functions #200

Closed Magicrafter13 closed 1 year ago

Magicrafter13 commented 1 year ago

I'm trying to move my config files from vimscript to lua, and the settings for this plugin seemed pretty easy to transfer over so I did, and I got this:

function nvim_gdb_no_tkeymaps()
    vim.keymap.set('t', "<esc>", "<C-\\><C-n>", { silent = true })
end

vim.g.nvimgdb_config_override = {
    key_next = 'n',
    key_step = 's',
    key_finish = 'f',
    key_continue = 'c',
    key_until = 'u',
    key_breakpoint = 'b',
    set_tkeymaps = "v:lua.nvim_gdb_no_tkeymaps"
}

I also tried "nvim_gdb_no_tkeymaps", "lua nvim_gdb_no_tkeymaps" and 'luaeval("nvim_gdb_no_tkeymaps")'.

What happens? - Any logs, error output, etc?

(Log shown after trying "lua nvim_gdb_no_tkeymaps", not "v:lua.nvim_gdb_no_tkeymaps".)

Error executing Lua callback: ...w/.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb/config.lua:52: Vim:E117: Unknown function: lua nvim_gdb_no_tkeymaps
stack traceback:
        [C]: in function 'nvim_call_function'
        ...w/.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb/config.lua:52: in function <...w/.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb/config.lua:52>
        .../.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb/keymaps.lua:99: in function '_dispatch'
        .../.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb/keymaps.lua:118: in function 'dispatch_set_t'
        ...thew/.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb/app.lua:105: in function 'postinit'
        .../matthew/.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb.lua:41: in function 'new'
        .../matthew/.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb.lua:320: in function 'spawn'
        .../matthew/.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb.lua:325: in function <.../matthew/.local/share/nvim/lazy/nvim-gdb/lua/nvimgdb.lua:325>
sakhnik commented 1 year ago

There are a couple of ways to specify functions:

See config.lua for more details: https://github.com/sakhnik/nvim-gdb/blob/6fd4eb53ac25fda0c2f1a60457c5f0592a0e95ad/lua/nvimgdb/config.lua#L41

This works, for example:

local function 
  vim.keymap.set('t', "<esc>", "<C-\\><C-n>", { silent = true })
end

vim.g.nvimgdb_config_override = {
  set_tkeymaps = nvim_gdb_no_tkeymaps
}

Or you can use an anonymous function:

vim.g.nvimgdb_config_override = {
  set_tkeymaps = function()
    vim.keymap.set('t', "<esc>", "<C-\\><C-n>", { silent = true })
  end
}