From b5f6ddc1a26d583c724f80813de3b6f4d1f60bc7 Mon Sep 17 00:00:00 2001 From: cannorin Date: Tue, 4 Jul 2023 23:18:20 +0900 Subject: [PATCH] Fix #69: force refresh CodeLens on attach --- autoload/fsharp.vim | 2 +- lua/ionide/init.lua | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/autoload/fsharp.vim b/autoload/fsharp.vim index 1c7ccea..182c9de 100644 --- a/autoload/fsharp.vim +++ b/autoload/fsharp.vim @@ -580,7 +580,7 @@ function! fsharp#openFsi(returnFocus) if a:returnFocus | call s:win_gotoid_safe(current_win) | endif return s:fsi_buffer else - echom "[FSAC] Your (neo)vim does not support terminal". + echom "[FSAC] Your (neo)vim does not support terminal." return 0 endif endif diff --git a/lua/ionide/init.lua b/lua/ionide/init.lua index 04aa1f8..9a18009 100644 --- a/lua/ionide/init.lua +++ b/lua/ionide/init.lua @@ -53,7 +53,17 @@ local function get_default_config() return result end -M.manager = nil +-- https://github.com/ionide/Ionide-vim/issues/69 +local function inject_codelens_refresh(config) + local new_config = tbl_extend("keep", config, {}) + new_config.on_attach = function(client, bufnr) + if config.on_attach then + config.on_attach(client, bufnr) + end + vim.lsp.codelens.refresh() + end + return new_config +end local function autostart_if_needed(m, config) local auto_setup = (vim.g['fsharp#lsp_auto_setup'] == 1) @@ -78,6 +88,8 @@ local function delegate_to_lspconfig(config) lspconfig.ionide.setup(config) end +M.manager = nil + -- partially adopted from neovim/nvim-lspconfig, see lspconfig.LICENSE.md local function create_manager(config) validate { @@ -222,10 +234,11 @@ function M._setup_buffer(client_id, bufnr) end function M.setup(config) + local new_config = inject_codelens_refresh(config) if lspconfig_is_present then - return delegate_to_lspconfig(config) + return delegate_to_lspconfig(new_config) end - return create_manager(config) + return create_manager(new_config) end function M.status()