diff --git a/lua/go/inlay.lua b/lua/go/inlay.lua index 0780d86..34651d9 100644 --- a/lua/go/inlay.lua +++ b/lua/go/inlay.lua @@ -9,7 +9,8 @@ local log = utils.log local trace = utils.trace local config local nvim10 = vim.fn.has('nvim-0.10') == 1 - +-- whether the hints are enabled or not +local enabled = nil -- Update inlay hints when opening a new buffer and when writing a buffer to a -- file -- opts is a string representation of the table of options @@ -20,6 +21,7 @@ function M.setup() if not config or config.enable == false then -- diabled return end + enabled = config.enable if config.only_current_line then local user_events = vim.split(config.only_current_line_autocmd, ',') events = vim.tbl_extend('keep', events, user_events) @@ -30,7 +32,7 @@ function M.setup() group = cmd_group, pattern = { '*.go', '*.mod' }, callback = function() - if not vim.wo.diff then + if not vim.wo.diff and enabled then require('go.inlay').set_inlay_hints() end end, @@ -42,7 +44,9 @@ function M.setup() if not vim.wo.diff then local inlay = require('go.inlay') inlay.disable_inlay_hints(true) - inlay.set_inlay_hints() + if enabled then + inlay.set_inlay_hints() + end end end, }) @@ -72,8 +76,6 @@ local function get_params() end local namespace = vim.api.nvim_create_namespace('experimental/inlayHints') --- whether the hints are enabled or not -local enabled = nil -- parses the result into a easily parsable format -- input @@ -334,9 +336,8 @@ end function M.toggle_inlay_hints() if nvim10 then - return vim.lsp.inlay_hint(vim.buf.nvim_get_current_buf()) - end - if enabled then + vim.lsp.inlay_hint(vim.api.nvim_get_current_buf()) + elseif enabled then M.disable_inlay_hints(true) else M.set_inlay_hints() @@ -380,7 +381,7 @@ function M.set_inlay_hints() end if nvim10 then local bufnr = vim.api.nvim_get_current_buf() - return vim.lsp.inlay_hint(bufnr, true) + return vim.lsp.inlay_hint(bufnr, enabled) end local fname = fn.expand('%:p') local filetime = fn.getftime(fname)