-
Notifications
You must be signed in to change notification settings - Fork 847
Description
The VS project system in 15.6/master seems to have a problem preparing correct arguments for new-style projects using EmbeddedText, FsLex, FsYacc items.
Compare these
fcs\Fsharp.Compiler.Service.sln
.\FSharp.sln
Both FSharp.Compiler.Service.fsproj (new stlye) and FSharp.Compiler.Private.fsproj (old style) has
<EmbeddedText Include="$(FSharpSourcesRoot)/fsharp/FSComp.txt">
<Link>FSComp.txt</Link>
</EmbeddedText>
In an old-style project files the item appears:
In new-style project files the item is absent:
This seems to mean that the generated file does not get passed to FCS in Visual Studio. The same applies to files like pars.fs. The corresponding generated file does get passed when using command line msbuild:
msbuild C:\GitHub\dsyme\visualfsharp\fcs\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj
… obj\Debug\netstandard2.0\FSComp.fs …
Compare these two similar scenarios:
- open src\FSharp.Compiler.Service.fsproj (new-style projects), edit
src\fsharp\symbols\Symbols.fs
against
- open FSharp.sln (old-style projects), edit
src\fsharp\symbols\Symbols.fs
The first takes 240seconds of CPU time to colorize. The second takes about 40 seconds (as expected).
It might be because the project is checked twice - one for netstandard2.0 and one for net45. But I thought that wasn't implemented. That would explain only half the difference, and colorization shouldn't be delayed.
There is also a difference in treatment of signature files which I will also investigate.

