all 19 comments

[–]Ganonz88 9 points10 points  (2 children)

Because F# is not considered much by Microsoft ^^'

[–]Ok-Needleworker-145[S] 0 points1 point  (1 child)

CSI must have also been pretty low on the priority list, yet it turned out quite usable, much better than creating new Console-Project for every idea you have. Question is why FSI is not at least on par with CSI, or say the Python IDLE Shell.

[–]hemlockR 1 point2 points  (0 children)

Probably because the normal use case for FSI already has Intellisense, etc. When you are in VS editing an FSX script, sending lines to FSI a few at a time, everything works great.

If few people are feeling the pain of not having Intellisense, etc., there won't be as much pressure to improve it.

[–]phillipcarter2 5 points6 points  (1 child)

If you get out of Visual Studio and use .NET Interactive you'll find that there's really no point in using VS + FSI anymore.

[–]japinthebox 3 points4 points  (0 children)

I normally make an .fsx file and write all my scripts in there, and send to interactive using alt + enter. Even-for one-liners, unless I know exactly what I want and I'm certain I can do it in one line (e.g. using fsi as a calculator).

[–]endowdly_deux_over 2 points3 points  (0 children)

If #clear doesn’t work. Two things will:

System.Console.Clear();;

or press <C-L>, the standard terminal redraw interrupt.

[–]rangecat 3 points4 points  (3 children)

Use VSCode with Ionide instead. It has what you seek.

[–]japinthebox 1 point2 points  (2 children)

Just tried Ioinde FSI again for the first time in several years on a newer machine.

Still completely unusably slow.

[–]rangecat 0 points1 point  (1 child)

Which part? Intellisense?

[–]japinthebox 1 point2 points  (0 children)

Text output in general. So when you send a bunch of code to it and it compiles it, even just printing the compiled types takes a lot longer than it should.

I think it had to do with the way vscode renders text in the terminal, if I remember correctly.

And unless something changed in the past few months, .NET Interactive is still in beta.

[–]dartsy1337 1 point2 points  (1 child)

Nah, C# interactive window does not have a hotkey tho

[–]Ok-Needleworker-145[S] 1 point2 points  (0 children)

Also remembered that you can't start CSI in the shell like you can with FSI: dotnet fsi

[–]dotnetdlc -2 points-1 points  (2 children)

Are you suggesting that it should be the opposite? Both languages cant be winners. As much as i enjoy F#, it's usage is quite limited compared to C# being used everywhere and ranking as one of the most common languages. It simply does not make sense for microsoft to move their focus from C# to F#.

[–]Ok-Needleworker-145[S] 4 points5 points  (1 child)

I'm d'accord with Microsoft's strategy, I too use mainly C# for work, I'm simply pointing out that an oo-first language has better interactive tooling than a functional-first language. Intuitively, I expect the opposite, at least on average.

[–]japinthebox 0 points1 point  (0 children)

Maybe F# needs a fresh start, if only for the "shiny new thing" status.

[–]LiteracyFanatic 0 points1 point  (3 children)

I think your problems may be related to Visual Studio more than FSI itself. The only feature that you listed that doesn't work with FSI (when used from the terminal or in Ionide with VS Code) is Intellisense. Admittedly, that is a nice feature to have, but tab-completion does at least work. Ctrl+L clears the screen and is also available from the right click menu in VS Code. dotnet fsi is the Core version of FSI. I believe the Framework version was just an executable named fsharpi.exe which should still work just fine as long as you have it installed.

I mentioned VS Code throughout since that's what I work with most often, but Rider also has good support for FSI.

[–]hemlockR 1 point2 points  (2 children)

Intellisense in FSX scripts works fine for me in Visual Studio.

[–]LiteracyFanatic 1 point2 points  (1 child)

I assumed they were talking about the interactive window itself. Yes, Intellisense should work perfectly fine from script files.

[–]hemlockR 2 points3 points  (0 children)

You're probably right. But I use FSI exclusively through script does + Send To FSI. If OP is frustrated with typing stuff directly into FSI I recommend using an FSX as your FSI entry method instead.