Will .Net CoreCLR allow for easier interop with LSP's especially on Linux systems?

Hello everyone, I am a software engineer who loves making games, but my biggest hurdle has been the abysmal experience of Unity on Linux systems combined with abysmal experience with Neovim IDE. The editor lags but I can get around that, but my preferred editor is just unusable because no LSP will work.

I do not write C# on my job and I am as you can imagine not well versed in the .Net ecosystem but I am very excited for the Unity 6 release and would love to get back into it. I’ve since been using Godot since their C# implementation just works out of the box with Neovim with little tinkering and all of the features I’d expect from an LSP work. Would this new migration from their homemade Mono to CoreCLR have any impact on this experience? Would it improve it? Have no effect?

It would help when you avoid fancy abbreviations and at least once be clear what it actually refers to. LSP could mean many things and most programmers would probably think of the Liskov substitution principle (as it’s the L in SOLID).

However I guess you talk about the Language Server Protocol… Personally I can’t really help you here since I don’t use NeoVim or Vim as I don’t like the editor and I’m mainly coding on windows anways.

Though this sounds more like an IDE / setup issue and doesn’t really seem directly related to Unity. What issues do you actually have with Unity’s Mono version? The C# is still just ordinary C#.

2 Likes

C# is C#. The target framework / assemblies in use make the real difference, not the runtime they ultimately end up running on. User code is by default C# 9 targeting .NET Standard 2.1 or .NET Framework 4.8 + .NET Standard 2.1 features, with references to assemblies shipped by the editor, so it shouldn’t stress out anything that can deal with that.

Are the csproj files for assemblies being generated? As far as I know, those only come from editor packages like com.unity.ide.visualstudio and com.unity.ide.rider and when those specific editors are selected as the active script editor. If those are absent, then there’s not much something like omnisharp can do. If you haven’t already, perhaps try using one of those packages and use the regenerate project files action, then see if your code editor works.

3 Likes