seblj / roslyn.nvim

Roslyn LSP plugin for neovim
MIT License
107 stars 10 forks source link

[Question] Setup help #33

Closed GustavEikaas closed 1 month ago

GustavEikaas commented 1 month ago

I dont really understand how to set this up. Im using lazy.nvim and this is my config

return {
  "seblj/roslyn.nvim",
  config = function()
    require("roslyn").setup({
      config = {},
      exe = {
        "dotnet",
        vim.fs.joinpath(vim.fn.stdpath("data"), "roslyn", "Microsoft.CodeAnalysis.LanguageServer.dll"),
      },
      filewatching = true,
    })
  end
}

The plugin is recognized and setup by lazy The CodeAnalysis dll is present and the path is verified correct. Nvim version: V0.10.1

Is there any more steps needed? Do i need to configure the lsp or is that handled under the hood? When I run LspInfo in a .cs buffer I see no roslyn or no error messages

marcinjahn commented 1 month ago

You can have a look at my dotfiles

seblj commented 1 month ago

Shouldn't need to do anything else. You don't need to provide those values to the setup method though as all of them are the default values. However, impossible to say what is wrong. If there is a solution file/csproj file, then it should work

GustavEikaas commented 1 month ago

Seems lazy got confused when I changed from the original repo to this fork and checkout out an old commit. After forcing the latest commit on main the lsp seems to try to start but immediately when entering a file there is a notification saying "Roslyn server stopped" Any ideas? lsp.log is empty

seblj commented 1 month ago

Difficult to say. I would think that the lsp log should contain something. Or at least of you set the log level to trace, then it should

GustavEikaas commented 1 month ago

I tried modifying the library code and the server starts and the first RPC message is being sent, but it seems to stop the server with an exit code: 0 right after

It seems the lsp never attaches because the server stops immediately after starting

GustavEikaas commented 1 month ago

When starting the server i get this rpc message

{ 
  jsonrpc = "2.0", 
  method = "window/logMessage",
  params = { 
    message = "[Program]Language server initialized", 
    type = 3                                                                                                                                  
  }  
}

Looking through the code it seems to look for the "pipeName" property. Should this have been sent as part of the server start. in my case it does not

seblj commented 1 month ago

What version of the server do you have?

GustavEikaas commented 1 month ago

I was using the latest from this feed: https://dev.azure.com/azure-public/vside/_artifacts/feed/vs-impl

I fixed the issue by downloading the vscode c# extension, digging through the files and finding the dlls for the language server then copying them into nvim-data/roslyn

FYI: Im using windows so if you are on linux that might be why.

Do you want me to add some information to the readme for people facing the same issue as me?

seblj commented 1 month ago

Hmm, I instead want to fix the potential issue then🤔 I have a VM with windows that I can try setting this up with

But are you sure you installed the correct one? There is 3 for windows. I don't have my laptop right now, but I am pretty sure that I once set it up on my windows and that it worked

seblj commented 1 month ago

Works for me. If I were to guess, I think you installed the wrong architecture, and because of this, it just fails immediately

GustavEikaas commented 1 month ago

Such a weird issue, hmm. Im running windows x64 and installed the x64 version. The dll runs and outputs data which I suspect it wouldnt if I installed the wrong architecture?

When I installed C# devkit in vscode it installed the x64 win architecture so I really dont know what is going on. Anyways it works for me now using the roslyn dlls from vscode, lets just close this issue and you can point people to it if others report it