ionide / FsAutoComplete

F# language server using Language Server Protocol
Other
389 stars 151 forks source link

Transparent compiler #1240

Closed TheAngryByrd closed 2 months ago

TheAngryByrd commented 4 months ago

Adds support for Transparent Compiler in FSAC.

TheAngryByrd commented 2 months ago

Ok I think this is finally ready. This can now be turned on/off so we can merge safely without fear of being able to use the old stuff since transparent compiler may still have issues that we have no control of directly.

nojaf commented 2 months ago

How do we play with this? I checked out your branch, built and tried the following:

image

Or should --use-fcs-transparent-compiler be added somewhere else?

nojaf commented 2 months ago

Ok, $env:USE_TRANSPARENT_COMPILER = 'TransparentCompiler' did the trick. I tried this on three projects, it looks very promising! You can tell by how fast semantic highlighting is kicking in.

I'd be a fan of merging this into the nightly branch and playing with it for a while.

TheAngryByrd commented 2 months ago

How do we play with this? I checked out your branch, built and tried the following:

Or should --use-fcs-transparent-compiler be added somewhere else?

Unfortunately there isn't a way to add generic parameters via Ionide. (means that should get added at some point). I do have a PR available in Ionide to add it but you'll have to build a run a custom version of Ionide to access the setting.

Ok, $env:USE_TRANSPARENT_COMPILER = 'TransparentCompiler' did the trick. I tried this on three projects, it looks very promising! You can tell by how fast semantic highlighting is kicking in.

Are you sure that actually works? I'm only using USE_TRANSPARENT_COMPILER it in the tests to divide up test runs.

vzarytovskii commented 2 months ago

USE_TRANSPARENT_COMPILER has no effect on anything in the compiler/service itself, we for sure don't use this particular variable anywhere. I think this PR uses it in tests only.