ionide / Ionide-vim

F# Vim plugin based on FsAutoComplete and LSP protocol
MIT License
173 stars 21 forks source link

90% of time no autocompletion #25

Closed idchlife closed 2 years ago

idchlife commented 4 years ago

Describe the bug First of all big thank you for this plugin! Though it doesn't work as expected yet - possibility to code in F# in vim is fantastic!

90% of time plugin does not work. No errors. No autocompletion. No type hints etc. I don't understand how it worked 2 times to be honest. Maybe there are logs somewhere, where I can check what's happening?

To Reproduce Steps to reproduce the behaviour:

  1. Create new project with these:
Files contents

```xml netcoreapp3.0 false ``` ```fs module GradeSchool type School = Map let empty: School = School() let add (student: string) (grade: int) (school: School): School = Map.add grade student school //let compare let roster (school: School): string list = school |> Map.iter |> let grade (number: int) (school: School): string list = school[number] ```

  1. Open file with vim GradeSchool.fs
  2. See message down in vim that workspace loaded successfully
  3. See that there is no features of plugin. No autocomplete, errors, warnings, types etc

Expected behaviour To work as it worked for 2 times

Screenshots

Screenshot ![изображение](https://user-images.githubusercontent.com/4563032/85056674-4cd6f780-b1a8-11ea-8d5a-10163084e67e.png)

Environment (please complete the following information):

Additional context Here is my .vimrc just in case:


  1 syntax on
  2 set tabstop=2
  3 set expandtab
  4 set softtabstop=0
  5 set shiftwidth=2
  6 set nu
  7
  8 call plug#begin('~/.vim/plugged')
  9   Plug 'bling/vim-airline'
 10
 11   "Plug 'yggdroot/indentline'
 12
 13   if has('nvim')
 14     Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
 15   else
 16     Plug 'Shougo/deoplete.nvim'
 17     Plug 'roxma/nvim-yarp'
 18     Plug 'roxma/vim-hug-neovim-rpc'
 19   endif
 20   let g:deoplete#enable_at_startup = 1
 21
 22   Plug 'autozimu/LanguageClient-neovim', {
 23       \ 'branch': 'next',
 24       \ 'do': 'bash install.sh',
 25       \ }
 26
 27   Plug 'ionide/Ionide-vim', {
 28         \ 'do':  'make fsautocomplete',
 29         \}
 30
 31   Plug 'l04m33/vlime', {'rtp': 'vim/'}
 32
 33   Plug 'raimondi/delimitmate'
 34
 35   Plug 'luochen1990/rainbow'
 36   let g:rainbow_active = 1
 37
 38
 39 call plug#end()
 40
 41 " deoplete tab-complete
 42 inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
 43 " tern
 44 autocmd FileType javascript nnoremap <silent> <buffer> gb :TernDef<CR>
 45
 46 au FileType python setl shiftwidth=2 tabstop=2 softtabstop=0 expandtab
cannorin commented 4 years ago

This might be related to https://github.com/ionide/Ionide-vim/issues/22: try downgrading LC-neovim to 0.1.155 or calling :FSharpLoadWorkspaceAuto manuually.

Running dotnet restore and/or dotnet build tends to solve this kind of problem too.

idchlife commented 4 years ago

@cannorin it seems there is no tag for version you mentioned:

изображение

I tried loading and reloading workspace - no luck.

Tried dotnet restore - no luck

I remember that the last time plugin worked I did :FSharpUpdateFSAC (mayyybe it mattered?) but now when I try to repeat this step - nothing useful happens.

cannorin commented 4 years ago

0.1.155 is here: https://github.com/autozimu/LanguageClient-neovim/releases/tag/0.1.155

FSAC tends to break for no reason. From my experience removing bin and obj and then dotnet build sometimes fixes the issue. If you can provide the project you are working with I can try with it myself.

cannorin commented 4 years ago

For the tag, I think you can just write it as

Plug 'autozimu/LanguageClient-neovim', {
    \ 'branch': 'next',
    \ 'tag': '0.1.155',
    \ 'do': 'bash install.sh',
    \ }
idchlife commented 4 years ago

@cannorin here is project acrhive: https://ufile.io/0x211sl3

cannorin commented 4 years ago

Thanks, I'll check it tomorrow~

idchlife commented 4 years ago

@cannorin sorry to bother you. Did you have time to check bug?

cannorin commented 4 years ago

@idchlife Sorry, no time 😭 Will do on Sunday.

cannorin commented 4 years ago

Reproduced on my environment (Debian, neovim, latest FSAC). Ionide-VSCode loads correctly so this should be an issue with Ionide-vim.

cannorin commented 4 years ago

It is very weird but Ionide-vim starts working if you open the project with Ionide-VSCode. I'm investigating why...

cannorin commented 4 years ago

It turns out obj/fsac.cache matters but I don't know why it is not created on Ionide-vim in this case (it gets created when you open a fresh project created with dotnet new).

idchlife commented 4 years ago

@cannorin thanks for investigating!

is there way to create this fsac.cache via cli or something? ionide-vscode does not actually work on my machine at all unfortunately :( Cannot create it

cannorin commented 4 years ago

@idchlife I'm investigating but I don't know at the moment... The best workaround is to create a new project with dotnet new, open the created project with Ionide-vim, get the completion working, and then paste the existing codes.

cannorin commented 4 years ago

Opening a fresh project with Ionide-vim should create obj/fsac.cache correctly. If it doesn't please let me know...

OmanF commented 4 years ago

Attached gif shows indeed no autocomplete. (It's 1:30 minutes, I took my time). As can be seen in the "mini-buffer", FSAC knows the different built-in functions and displays their signature as I hover over them. Also, I get all the compiler errors and warnings.

But no autocomplete.

(Some metadata: NeoVim 0.4.4; Linux Debian Sid; Installed following the instructions on the README (paying attention to select the correct tag; Started a project from CLI via dotnet new console...)

2020-08-16_15h04_43

cannorin commented 4 years ago

@OmanF Did not reproduce on Neovim 0.3.4, Debian stable. Did you install deoplete or vim-mucomplete along with LanguageClient-neovim?

OmanF commented 4 years ago

I didn't install any other LSP plugin other than LC-neovim.

Having said that, I've transitioned to a RebornOS-based work machine and COC (also installed .Net Core using Pacman, as opposed to the Debian machine, where I manually extracted the SDK to a folder on the PATH). Lots of changes that now give me VSCode-quality F# editing experience in NeoVim. So, for me, I no longer have the issue since I moved away from the offending config.

But others still seem to...

Letting you decide if this can/should be closed.

cannorin commented 4 years ago

@OmanF I mean, if you do not install the auto-completion plugin like deoplete or vim-mucomplete, you will get poor auto-completion. I thought it might be the case you forgot to install one.

Sorry to hear you gave up using this plugin. I also understand how the configuration things irritated you. But let me say that I or this project have no intention to offend you and I seriously need your help and, say, you could have helped me. I have to take classes at univ. I have to do a part-time job to keep on living. I sometimes want to take a rest and play games. I also have many other OSS projects to work on. I have many responsibilities, and cannot do OSS stuff like 24/7. Your help is, or was, needed.

OmanF commented 4 years ago

Hi @cannorin. First off, no offense taken. I whole-heartedly appreciate all you folks doing OSS are doing. I try my hand at PR-ing when I feel up to the task, but usually, I'm a consumer. Never do I think you, an OSS maintainer, owe me anything!

That out of the way, the move away was not due to Ionide-Vim... I wanted to try a rolling-release distro, and once there, COC was just what "the internet" suggested, so that's what I went for.

That out of the way, I will, today, tomorrow, in the very near future, play around with my init.vim file. I'll re-install Ionide-Vim and an auto-completion framework and see if that is comparable to COC. No worries. I'll let you know my findings when I have them. (That would be really a dumb-moment for me if it turns out all it took was an auto-completing framework...)

OmanF commented 4 years ago

'K, tried playing around and here's what I found: (Preface: all plugin changing was done by commenting out the plugin(s) on init.vim, uncommenting the other plugin(s), running vim-plug's install command, run vim-plug's clean command to remove the "obsolete" plugins, quit Neovim all together, starting a fresh instance of Neovim. The test F# file is Program.fs created by starting a new console application: dontet new console -lang "F#").

All these are on the new config (I tossed the Debian VM and no longer has access to that specific one).

If there are other tests/ideas you need to me to test, let me know and I'll do my best.

cannorin commented 4 years ago

@OmanF Thanks 😍 Can you post the version of neovim and the init.vim you are using right now? Then I can create an chroot environment to experiment with.

OmanF commented 4 years ago

Hi.

I'm on NeoVim 0.4.4 (according to the "splash" screen) and the following is the content of init.vim (can't attach an nvim file apparently. :smile:):

" ===================================================================
" Vim-Plug setup
" ===================================================================

" If not already in the shell's config file (e.g. `.bashrc`, `.zshrc`, etc.) put the following lines in before starting Vim again
" Don't forget to source the shell's config file after saving it (either `. ~/.zshrc` or the more verbose `source ~/.zshrc`, for example, using Zsh):
" export TERM=xterm-256color
" export VIMCONFIG=$HOME/.config/nvim
" export VIMDATA=$HOME/.local/share/nvim

let vimplug_exists=expand('$VIMCONFIG/autoload/plug.vim')

if !filereadable(vimplug_exists)
  if !executable("curl")
    echoerr "You have to install curl or first install vim-plug yourself!"
    execute "q!"
  endif
  echo "Installing Vim-Plug..."
  echo ""
  silent exec "!\curl -fLo " . vimplug_exists . " --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim"
  let g:not_finish_vimplug = "yes"

  autocmd VimEnter * PlugInstall
endif

" ===================================================================
" Vim-Plug initialization and plug-ins installation
" ===================================================================

call plug#begin(expand('$VIMCONFIG/data/plugged'))
" Less useful than the alternative, buggy, or just fell out of my grace
" Plug 'vim-scripts/CSApprox'
" Plug 'preservim/nerdcommenter' # Looks *WAY* too powerful for what I need!
" Plug 'Yggdroot/indentLine' " Seems to have issues working for a lot of folks. Keep an eye on the GitHub project!
" Plug 'junegunn/vim-emoji'

" Visual
Plug 'nanotech/jellybeans.vim'
Plug 'itchyny/lightline.vim'
Plug 'ryanoasis/vim-devicons'
Plug 'frazrepo/vim-rainbow'
Plug 'wesQ3/vim-windowswap'
Plug 'ap/vim-buftabline'

" EditorConfig
Plug 'editorconfig/editorconfig-vim'

" File manipulation
Plug 'ms-jpq/chadtree', { 'branch': 'chad', 'do': ':UpdateRemotePlugins' }

" Search and moving-around
Plug 'pechorin/any-jump.vim'
Plug 'Yggdroot/LeaderF', { 'do': './install.sh' }
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
Plug 'junegunn/fzf.vim'
Plug 'easymotion/vim-easymotion'
Plug 'wellle/targets.vim'
Plug 'rhysd/clever-f.vim'
Plug 'junegunn/vim-peekaboo'

" Text manipulation
Plug 'jiangmiao/auto-pairs'
Plug 'tpope/vim-surround'
Plug 'tpope/vim-commentary'
Plug 'tpope/vim-speeddating'

" Git
Plug 'airblade/vim-gitgutter'
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-rhubarb' " Adds GitHub support for `vim-fugitive`
Plug 'shumphrey/fugitive-gitlab.vim' " Adds GitLab support for `vim-fugitive`
Plug 'tommcdo/vim-fubitive' " Adds BitBucket support for `vim-fugitive`

" Programming language support, LSP, linters, etc.
Plug 'sheerun/vim-polyglot'
Plug 'neoclide/coc.nvim', { 'branch': 'release' }
" Plug 'autozimu/LanguageClient-neovim', {
"     \ 'branch': 'next',
"     \ 'do': 'bash install.sh',
"     \ }
" Plug 'ionide/Ionide-vim', {
"     \ 'do': 'make fsautocomplete',
"     \ }
" Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }

" Sessions
Plug 'xolox/vim-misc'
Plug 'xolox/vim-session'
call plug#end()

" ===================================================================
" Basic setup
" ===================================================================

" Misc.
let mapleader="\<Space>"
set fileformats=unix,dos,mac " End-of-line characters, in priority. macOS is, rightly, last!
set backspace=indent,eol,start " Allow `Backspace` button to operate over listed items
set hidden " Allow buffers (i.e. files loaded in memory) to be moved to the background without being unloaded on focus loss
set confirm " Confirm destructive operations made on non-saved buffers
" set completefunc=emoji#complete " Emoji auto-complete ; Uncomment (and remove this part of the post-comment) to allow plug-in to work

" Visual
silent! colorscheme jellybeans
set background=dark " Make sure all color schemes opt for the `dark` variants, where applicable
set noshowmode " Since when using `LightLine` the mode name is already displayed, don't display it also in the mini-buffer
set ruler " Display the ruler in the statusline (if enabled). Ruler is the `Percentage, Line:Char` in the mini-buffer
set wildmenu " Display command line's tab completions as a menu
set number " Show line number in left-hand gutter
set relativenumber " Show relative line numbers to current cursor line in left-hand gutter
set mouse=a " Allow mouse for scrolling and resizing
set title " Set window's title to show current file being edited

" Indentation and folding
filetype plugin indent on " Indentation rules follow those of plug-ins, then file types
set autoindent " New lines inherit indentation of current line
set smartindent " Indent semi-smart, depending on current line indentation and language choice
set expandtab " Automatically convert tabs to spaces
set shiftround " When shifting lines, indent to the nearest multiple of `shiftwidth`
set smarttab " Insert `tabstop` number of spaces when <Tab> key is pressed
set foldmethod=indent " Fold based on indentation levels
set foldnestmax=5 " Allow folding up to 5 nested levels
set nowrap " Do not force *VISUAL* wrapping of long text (longer than window size)
set tw=0 " Alias for `textwidth`. When set to 0, no auto-break is enforced to limit lines to given length
set wm=0 " Alias for `wrapmargin`. When `tw=0` this may force *VISUAL* wrap on <value> chars from window edge. When 0, no such enforcement is made

" Search
set hlsearch " Highlight searches (use `:noh` to turn-off *CURRENT* highlights)
set ignorecase " Ignore letter case (UPPER vs lower) when doing searches
set incsearch " Incremental search: match character-by-character typed in
set smartcase " Override `ignorecase` when search pattern contains UPPER-CASE characters.

" Text rendering
syntax on " Turn syntax highlight on for known languages
set spell " Spell-check using specified, or default, dictionaries
set encoding=utf-8 " Setting encoding for all files and file types
set fileencoding=utf-8 " Setting encoding for all files and file types
set fileencodings=utf-8 " Setting encoding for all files and file types

" Performance tuning
set lazyredraw " Don't update the GUI during macro and script execution

" Default shell for `:!` commands and `:terminal`
if exists('$SHELL')
    set shell=$SHELL
else
    set shell=/bin/sh
endif

" Allow NeoVim to also use 24-bit colors
if has('nvim')
    let $NVIM_TUI_ENABLE_TRUE_COLOR=1
endif

" If terminal supports it, use 24-bit colors
if has('termguicolors')
    set termguicolors
endif

" If not supported, use 256 colors
if !has('gui_running')
    set t_Co=256
endif

" Use advanced clipboard registers (`unnamed`, `unnamedplus`)
if has('unnamedplus')
  set clipboard=unnamed,unnamedplus
endif

" ===================================================================
" Abbreviations
" ===================================================================

" No one is really happy until you have this shortcuts
cnoreabbrev W! w!
cnoreabbrev Q! q!
cnoreabbrev Qall! qall!
cnoreabbrev Wq wq
cnoreabbrev Wa wa
cnoreabbrev wQ wq
cnoreabbrev WQ wq
cnoreabbrev W w
cnoreabbrev Q q
cnoreabbrev Qall qall

" ===================================================================
" Custom key binding
" ===================================================================

" ===== Non Alphanumerical ==========================================
vmap < <gv
vmap > >gv

" ===== B =====================================================
nnoremap <silent> <leader>bb :Buffers<CR>
nnoremap <leader>bd :bd<CR>
" A hack, but it works: close *all* buffers, including current, then reopen  current for editing and close the `[No Name]` buffer that is auto-created after a "kill all buffers" action
nnoremap <leader>bm :%bd\|e#\|bd#<CR>
nnoremap <silent> <leader>BB :LeaderfBuffer<CR>

" ===== C =====================================================
nmap <silent> <leader>c :noh<CR>
vmap <silent> <leader>c :noh<CR>

" ===== F =====================================================
inoremap fd <Esc>
vnoremap fd <Esc>
cnoremap fd <Esc>

nnoremap <silent> <leader>fed :e <C-R>=expand("~/.config/nvim/init.vim")<CR><CR>
nnoremap <silent> <leader>ff :Files<CR>
nnoremap <silent> <leader>fl :Lines<CR>
nnoremap <silent> <leader>fn :vnew<CR>
nnoremap <leader>fs :w!<CR>
nnoremap <leader>ft <cmd>CHADopen<CR>
nnoremap <silent> <leader>FF :LeaderfFile<CR>
nnoremap <silent> <leader>FL :LeaderfLineAll<CR>

" ===== G =====================================================
noremap <leader>ga :Gwrite<CR>
noremap <leader>gb :Git_blame<CR>
noremap <leader>gc :Git commit<CR>
noremap <leader>gd :Gvdiffsplit<CR>
noremap <leader>gpl :Git pull<CR>
noremap <leader>gps :Git_push<CR>
noremap <leader>gr :GRemove<CR>
noremap <leader>gs :Git<CR>
noremap <leader>gB :.GBrowse<CR>

" ===== J =====================================================
nmap <leader>j/ <Plug>(easymotion-s)
vmap <leader>j/ <Plug>(easymotion-s)
nmap <leader>jj <Plug>(easymotion-sn)
vmap <leader>jj <Plug>(easymotion-sn)
nmap <leader>jw <Plug>(easymotion-bd-w)
vmap <leader>jw <Plug>(easymotion-bd-w)
nnoremap <silent> J :bp<CR>

" ===== K =====================================================
nnoremap <silent> K :bn<CR>

" ===== N =====================================================
nnoremap n nzzzv
nnoremap N Nzzzv

" ===== P =====================================================
cnoremap <C-P> <C-R>=expand("%:p:h") . "/"<CR>
nnoremap PC :PlugClean<CR>
nnoremap PG :PlugUpgrade<CR>
nnoremap PI :PlugInstall<CR>
nnoremap PU :PlugUpdate<CR>

" ===== Q =====================================================
nnoremap <leader>qq :q!<CR>

" ===== S =====================================================
nnoremap <leader>sc :CloseSession<CR>
nnoremap <leader>sd :DeleteSession<CR>
nnoremap <leader>so :OpenSession<Space>
nnoremap <leader>ss :SaveSession<Space>

" ===== W =====================================================
nnoremap <leader>wh <C-w>h
nnoremap <leader>wj <C-w>j
nnoremap <leader>wk <C-w>k
nnoremap <leader>wl <C-w>l
nnoremap <leader>wmh :vnew<CR>
nnoremap <leader>wml :vnew<CR>
nnoremap <leader>wr :source <C-R>=expand("~/.config/nvim/init.vim")<CR><CR>

" ===================================================================
" Custom commands
" ===================================================================

" Remove trailing whitespace (on demand only!)
command! FixWhitespace :%s/\s\+$//e

" ===================================================================
" IndentLine plug-in configuration
" ===================================================================
" let g:CSApprox_loaded = 1
" let g:indentLine_enabled = 1
" let g:indentLine_char_list = ['|', '¦', '┆', '┊']
" let g:indentLine_setConceal = 0

" ===================================================================
" Lightline plug-in configuration
" ===================================================================

let g:lightline = {
    \ 'colorscheme': 'seoul256',
    \ 'active': {
    \    'left': [ [ 'mode', 'paste'  ],
    \              [ 'gitbranch', 'readonly', 'filename', 'modified' ] ]
    \ },
    \ 'component_function': {
    \    'gitbranch': 'FugitiveHead'
    \ },
    \ }

" ===================================================================
" LeaderF plug-in configuration
" ===================================================================

let g:Lf_WindowPosition = 'popup'
let g:Lf_PreviewInPopup = 1
let g:Lf_ShowHidden = 1

" ===================================================================
" FZF plug-in configuration
" ===================================================================

set wildmode=list:longest,list:full
" let $FZF_DEFAULT_COMMAND =  "find * -path '*/\.*' -prune -o -path 'node_modules/**' -prune -o -path 'target/**' -prune -o -path 'dist/**' -prune -o  -type f -print -o -type l -print 2> /dev/null"
" Next command includes **MUCH** more files than the default `FZF_DEFAULT_COMMAND`, but is easier to parse.
" Make sure to have `fd` tool (On Debian-based distros known as `fdfind` or else this will, obviously, not work!)
let $FZF_DEFAULT_COMMAND = "fd -uu -t f -t l 2> /dev/null"

" ===================================================================
" Clever-F plug-in configuration
" ===================================================================

let g:clever_f_smart_case = 1
let g:clever_f_fix_key_direction = 1

" ===================================================================
" Vim-Rainbow plug-in configuration
" ===================================================================

let g:rainbow_active = 1

" ===================================================================
" Vim-Session plug-in configuration
" ===================================================================

let g:session_directory = expand('$VIMCONFIG/session')
let g:session_autoload = "no"
let g:session_autosave = "no"
let g:session_command_aliases = 1

" ===================================================================
" EasyMotion plug-in configuration
" ===================================================================

let g:EasyMotion_do_mapping = 0
let g:EasyMotion_smartcase = 1

" ===================================================================
" EditorConfig plug-in configuration
" ===================================================================

let g:EditorConfig_exclude_patterns = ['fugitive://.*']
cannorin commented 4 years ago

@OmanF I've been doing some experiments and figured out deoplete.nvim is not working in your setup for some reason.

I couldn't figure out why but the other plugins you installed might be causing the issue.

Here is a minimal init.vim that successfully triggers auto-completion.

call plug#begin(expand('$VIMCONFIG/data/plugged'))

Plug 'autozimu/LanguageClient-neovim', {
    \ 'branch': 'next',
    \ 'tag': '0.1.155',
    \ 'do': 'bash install.sh',
    \ }
Plug 'junegunn/fzf'

Plug 'ionide/Ionide-vim', {
    \ 'do':  'make fsautocomplete',
    \}

Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }

call plug#end()

let g:deoplete#enable_at_startup = 1
cannorin commented 4 years ago

@OmanF I think I figured out why. You didn't set let g:deoplete#enable_at_startup = 1 :wink:

OmanF commented 4 years ago

In the attached zip file there are two screen captures, one with Coc (and ALE, though the latter is not strictly necessary), the second with the combination of plugins.

As before, I commented out the plugin(s) I didn't want to test, uncommented those that I did want to use, ran vim-plug's install command to install new plugins, followed by an update to make sure they're up-to-date, quit Neovim then start a new session. The test file is, again, the basic Program.fs of the simplest console app by dotnet.

Each video shows my config, proving which plugin(s) are disabled, which are active, and that all are up to date.

As you can see, the Coc (and ALE) combination works. The other doesn't. It's even worse than the Debian version - now I don't even get compiler errors on obvious mistakes (a "hanging" . after an open expression... that doesn't get worse than that. Also, no warning about unused declaration).

As before, let me know if you need anything else...

trying_autocompletion.tar.gz

OmanF commented 4 years ago

I suspect you are right, that other plugin(s) are clashing with Ionide-vim, or the underlying LSP connector. I just tried the minimal setup you suggested, and, right as rain, it worked great!

Now, figuring out which other plugin(s) is clashing, and if it's indeed a mix of several plugins...

I'm going to leave it at that that we confirmed that the problem is not with Ionide-vim, but a clash of plugins. (I'll continue using my newer config, but at least we now proved this issue can be closed since the problem is not `Ionide-vim).

OmanF commented 4 years ago

Looked at you snippet again, saw that there's a line going 'tag': '0.1.155'... added it to my config, the loaded one, made sure to, as always, disable Coc and ALE. And vim-polyglot!

I guess you see where this is going... works like a charm. I was to blame all along for not copying the installation instruction to the letter. The tag parameter is mandatory!

Also, verified, Coc and Ionide-vim do not play nice together. Choose one, and if you need Coc for other languages... well, life's about tough choices.

Ok, can put this ticket to rest, finally. The issue is not in Ionide-vim, you need the tag parameter, and it doesn't play nice with other LSP providers.

cannorin commented 4 years ago

@OmanF I'm glad it finally worked for you! Yes we are having a problem with LanguageClient-neovim (see #22) and that tag is mandatory for now. Since it is apparently not going to be addressed by its owner, I'm thinking to migrate to something else such as ALE, vim-lsp, or Coc.

cannorin commented 4 years ago

@idchlife Do you still have a problem with this? If not I like to close this issue 🙂

OmanF commented 4 years ago

Moving to either ALE or Coc will be a lot of work for you, I suspect, but they are better known, the most known LSP providers in the Vim-sphere I'd reckon, so if done, would be a boost to both those plugins and to Ionide-vim (no one likes installing more and more plugins, especially ones that may conflict with existing ones).

That said, as I found out, unless my testing method was completely off, at the moment, and probably due to its reliance on LanguageClient-neovim, Ionide-vim is not compatible with Coc, actually clashing.

At any rate, thank you for bringing Ionide to Vim-sphere!

cannorin commented 2 years ago

Ionide-vim can now use nvim's built-in LSP feature, so I think it's safe to close this issue. The current problem of FSAC not launching is tracked here: https://github.com/ionide/Ionide-vim/issues/44