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()