Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

When will intellisense be restored in Ionide? #2627

Open
adam-c-anderson opened this issue Dec 22, 2021 · 5 comments
Open

When will intellisense be restored in Ionide? #2627

adam-c-anderson opened this issue Dec 22, 2021 · 5 comments

Comments

@adam-c-anderson
Copy link

The issue reported here is still in effect. It seems the solution is known, but it hasn't been implemented in the 9 months since it was reported. Will it be in the 5.21 release?

@github-actions
Copy link

Welcome to the FAKE community! Thank you so much for creating your first issue and therefore improving the project!

@baronfel
Copy link
Contributor

in the interim, you can #load the .fake/<build script name>/intellisense.fsx manually to get intellisense, the FAKE extension in Ionide just looked this up by convention (plus a couple other UX helpers).

@adam-c-anderson
Copy link
Author

Thanks for the tip. I am already doing that, but still get intellisense errors everywhere.
image

@ImaginaryDevelopment
Copy link

I think, at least in part, because of this MiniScaffold, and other community projects have moved to using a build.fsproj and simply referencing and calling fake. @adam-c-anderson

@Luiz-Monad
Copy link

Luiz-Monad commented Apr 5, 2022

I had a similar problem when cleaning everything for a NetCore50 update. You need to at least do a first build before the intellisense can work.

mkdir tst
cd tst
dotnet new -i fake-template
dotnet new fake
code .

Other thing the template misses is ignoring the #r directive, its doesn't work with Ionide, but that's no problem as long as you do the following, it will work.

fake -v build --list

build.fsx

#if FAKE
#r "paket:
nuget Fake.DotNet.Cli
nuget Fake.IO.FileSystem
nuget Fake.Core.Target //"
#endif
#load ".fake/build.fsx/intellisense.fsx"
open Fake.Core
open Fake.DotNet
open Fake.IO
open Fake.IO.FileSystemOperators
open Fake.IO.Globbing.Operators
open Fake.Core.TargetOperators

//rest.....

This chicken and egg problem is kinda funny, fake needs paket, paket needs fake, ionide needs both, and the Fsharp language services, aka FCS, which is incompatible with the former tools need just the assembly list.
Things are a bit better if you use dotnet tool, or chocolatey to set up those 2 tools. It is what it is, C# doesn't suffer that badly from it I guess, its bootstrapped already from dotnet with everything it needs.

Microsoft really should upstream both Fake and Paket as de-facto F# build environment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants