fsprojects / fsharp-language-server

Other
214 stars 37 forks source link

Feature Request: Update to F# 5 to get new features support #88

Closed MangelMaxime closed 2 years ago

MangelMaxime commented 3 years ago

F# 5 is now out and support for new features like string interpolation.

let name = "Maxime"

$"Hello {name}"
PhilT commented 3 years ago

Here's an alternative which might work for you if you fancy dipping into Neovim 0.5: #90

MangelMaxime commented 3 years ago

@PhilT Thank you for the suggestion but on my project Ionide is too slow.

That's why I need to switch to fsharp-language-server even if it has less features... I also tried using others IDEs but it is hard to forget all those years of muscle memore and shortcuts etc. πŸ˜…

PhilT commented 3 years ago

I'd like to understand this. Do you have some example projects which cause problems?

Running a language server on on .NET 5 will give you an instant performance boost. Admittedly, I have a pretty fast machine but I've not noticed any issues with using FsAutoComplete.

I'm sure if you posted your issues over there they would look into it. In fact. Better to open an issue there and we can continue the conversation.

MangelMaxime commented 3 years ago

@PhilT

My project is a work project so I can't share anything.

Don't worry, if I could have isolated the problem I would have send an issue or a fixes. I did contribute to FSAutoComplete and Ionide in the past. πŸ˜‰

But sometimes, you just don't have the time to investigate the issue and just have to use an alternative until you have that time again.

georgewfraser commented 3 years ago

I'd love to bump the version, does anyone feel like volunteering to work up a PR?

FsAutoComplete has always prioritized features rather than performance. That's why I made fsharp-language-server in the first place. fsharp-language-server is basically just a shim between the language server protocol, and F# Compiler Service, so it's pretty much as fast as you can possibly be.

baronfel commented 3 years ago

It's honestly not a huge amount of work. There are a lot of API breakages in recent versions of FCS, but a lot of it is renames to things that make a bit more holistic sense. The biggest thing is that you'll basically have to move to .net5.0 if you're not already due to odd lookup reference cracking logic in the reference resolvers.

georgewfraser commented 3 years ago

I don’t suppose MS has released an officially supported project cracker in the last year?

baronfel commented 3 years ago

Nope, but ionide/proj info now uses msbuild libraries directly to do the cracking, and in fact includes a new mode that uses their new, fast static graph build. I've had pretty good success with it in FSAC on my work projects.

MangelMaxime commented 3 years ago

I would be ok to volunteer to work on a PR however I have no experience with project cracking... πŸ˜…

On FSAC, most of my work was related to isolated quality of life improvements.

MangelMaxime commented 3 years ago

Hello @georgewfraser, @baronfel

just wanted to let you know that I started working on upgrading fsharp-language-server to the latest version of FCS.

Locally, I have a prototype working with FCS 39.

I just have a problem with the Navigation.fs file because FCS 39 doesn't seems to expose some of the API used in that file which was ported from FCS repo.

When the port to FCS 39 is been done, I will give a try to port the project cracker code.

faldor20 commented 2 years ago

done, see #101