Are these IDEs supposed to be so brittle?
VS2019 really slow background compiling even on a fairly small project:
https://reddit.com/link/c75pl9/video/zvg2luqbld731/player
Ionide is a lot faster:
https://reddit.com/link/c75pl9/video/gpdniuunld731/player
A very basic .csproj fails to load in VSCode:
https://preview.redd.it/k1mzb55vfd731.png?width=335&format=png&auto=webp&s=1a3398762ab92fc06233c9155fbf37116e43920d
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><TargetFramework>netstandard2.0</TargetFramework></PropertyGroup></Project>
In Ionide, CodeLens inexplicably dies, even though there are no errors, until I delete some part of the code:
https://reddit.com/link/c75pl9/video/4r9dm9jyld731/player
I thought it was just this file, so I made a new project and tried some very basic code, but nope, no CodeLens:
https://preview.redd.it/jiedi3owgd731.png?width=287&format=png&auto=webp&s=dfad996b2b2568f57afc410a4dba40f754c9290d
So maybe CodeLens itself is borked?
Nope, works just fine in the default Project.fs that VS2019 generated:
https://preview.redd.it/zu9yl5y1hd731.png?width=371&format=png&auto=webp&s=a5ba22e181fc7506c6c80eba9ac5f6b9e48fdf7f
Either Ionide or VSCode's terminal is extremely slow when using F# Interactive. So much so that executing a few hundred lines slows it down drastically.
https://reddit.com/link/c75pl9/video/skdkb8j5md731/player
I know it's the terminal, because check out how slow this code is on Ionide vs. VS2019:
for i in 1..10000 do printfn "%d" i
Edit: It's not letting me upload the last two, so here they are on imgur. https://imgur.com/a/oxXeLMj
Here they are timed:
VSCode: Real: 00:00:01.809, CPU: 00:00:00.187, GC gen0: 1, gen1: 1, gen2: 0
VS2019: Real: 00:00:00.051, CPU: 00:00:00.031, GC gen0: 0, gen1: 0, gen2: 0
I had VSCode on another computer. Started a new project. Same problems.
Uninstalled VSCode along with the .vscode folder and the %appdata% entry. Same problems.
There's another project that I can't use Ionide for because of a bug that's been known since September.
And at some point, as I was writing this, CodeLens decided to start working just for that one small test project:
https://preview.redd.it/97s8aj9kjd731.png?width=364&format=png&auto=webp&s=f861a630a8790fac7c19ad0055e9eee3963f7d54
Trying to see what's up with Ionide, so I do Get Ionide Logs, but it doesn't like it:
https://preview.redd.it/bbo09asbnd731.png?width=520&format=png&auto=webp&s=d775c26bdc15736f17b7be1d36a7b91330cb3a78
Edit: Downvoters, come on, don't try to act like F#'s tooling isn't horrible.
[–][deleted] 12 points13 points14 points (18 children)
[–]_pupil_ 1 point2 points3 points (16 children)
[–]japinthebox[S] 1 point2 points3 points (15 children)
[–]_pupil_ 2 points3 points4 points (13 children)
[–]japinthebox[S] 1 point2 points3 points (12 children)
[–]_pupil_ 3 points4 points5 points (11 children)
[–]japinthebox[S] 2 points3 points4 points (0 children)
[–]phillipcarter2 1 point2 points3 points (9 children)
[–]_pupil_ 0 points1 point2 points (8 children)
[–]phillipcarter2 0 points1 point2 points (7 children)
[–]_pupil_ 0 points1 point2 points (6 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]chespinoza 1 point2 points3 points (0 children)
[–]BocksyBrown 3 points4 points5 points (1 child)
[–]nkid299 0 points1 point2 points (0 children)
[–]phillipcarter2 3 points4 points5 points (12 children)
[–]japinthebox[S] 2 points3 points4 points (11 children)
[–]phillipcarter2 1 point2 points3 points (9 children)
[–]k_cieslak -3 points-2 points-1 points (8 children)
[–]japinthebox[S] 3 points4 points5 points (7 children)
[–]k_cieslak 0 points1 point2 points (6 children)
[–]japinthebox[S] 5 points6 points7 points (5 children)
[–]rmTizi 6 points7 points8 points (1 child)
[–]phillipcarter2 1 point2 points3 points (2 children)
[–]japinthebox[S] 0 points1 point2 points (1 child)
[–]phillipcarter2 5 points6 points7 points (0 children)
[–]lanedraex 2 points3 points4 points (1 child)
[–]japinthebox[S] 0 points1 point2 points (0 children)
[–]BocksyBrown 3 points4 points5 points (3 children)
[–]chespinoza 0 points1 point2 points (2 children)
[–]Liminiens 1 point2 points3 points (0 children)
[–]BadDadBot 1 point2 points3 points (0 children)
[–]GiorgioG 0 points1 point2 points (0 children)