diff --git a/lua/symbols-outline.lua b/lua/symbols-outline.lua index ea56295..3200016 100644 --- a/lua/symbols-outline.lua +++ b/lua/symbols-outline.lua @@ -57,7 +57,7 @@ end M._refresh = utils.debounce(__refresh, 100) -function M._goto_location(change_focus) +local function goto_location(change_focus) local current_line = vim.api.nvim_win_get_cursor(M.view.winnr)[1] local node = M.state.flattened_outline_items[current_line] vim.api.nvim_win_set_cursor(M.state.code_win, { node.line + 1, node.character }) @@ -114,21 +114,25 @@ local function setup_keymaps(bufnr) utils.nmap(bufnr, ...) end -- goto_location of symbol and focus that window - map(config.options.keymaps.goto_location, ":lua require('symbols-outline')._goto_location(true)") + map(config.options.keymaps.goto_location, function() + goto_location(true) + end) -- goto_location of symbol but stay in outline - map(config.options.keymaps.focus_location, ":lua require('symbols-outline')._goto_location(false)") + map(config.options.keymaps.focus_location, function() + goto_location(false) + end) -- hover symbol - map(config.options.keymaps.hover_symbol, ":lua require('symbols-outline.hover').show_hover()") + map(config.options.keymaps.hover_symbol, require('symbols-outline.hover').show_hover) -- preview symbol - map(config.options.keymaps.toggle_preview, ":lua require('symbols-outline.preview').toggle()") + map(config.options.keymaps.toggle_preview, require('symbols-outline.preview').toggle) -- rename symbol - map(config.options.keymaps.rename_symbol, ":lua require('symbols-outline.rename').rename()") + map(config.options.keymaps.rename_symbol, require('symbols-outline.rename').rename) -- code actions - map(config.options.keymaps.code_actions, ":lua require('symbols-outline.code_action').show_code_actions()") + map(config.options.keymaps.code_actions, require('symbols-outline.code_action').show_code_actions) -- show help - map(config.options.keymaps.show_help, ":lua require('symbols-outline.config').show_help()") + map(config.options.keymaps.show_help, require('symbols-outline.config').show_help) -- close outline - map(config.options.keymaps.close, ':bw!') + map(config.options.keymaps.close, M.view.close) end local function handler(response) diff --git a/lua/symbols-outline/utils/init.lua b/lua/symbols-outline/utils/init.lua index 0033c8f..fe2ff2a 100644 --- a/lua/symbols-outline/utils/init.lua +++ b/lua/symbols-outline/utils/init.lua @@ -2,14 +2,15 @@ local M = {} ---maps the table|string of keys to the action ---@param keys table|string ----@param action string +---@param action function|string function M.nmap(bufnr, keys, action) if type(keys) == 'string' then keys = { keys } end - for _, value in ipairs(keys) do - vim.api.nvim_buf_set_keymap(bufnr, 'n', value, action, { silent = true, noremap = true }) + + for _, lhs in ipairs(keys) do + vim.keymap.set('n', lhs, action, { silent = true, noremap = true, buffer = bufnr }) end end