1- module internal rec LanguageServiceProfiling.Options
1+ module internal LanguageServiceProfiling.Options
22
33open Microsoft.FSharp .Compiler
44open Microsoft.FSharp .Compiler .Range
@@ -17,22 +17,16 @@ type CompletionPosition = {
1717type Options =
1818{ Options: FSharpProjectOptions
1919 FileToCheck: string
20+ FilesToCheck: string list
2021 SymbolText: string
2122 SymbolPos: pos
2223 CompletionPositions: CompletionPosition list }
2324
24- let get ( repositoryDir : string ) : Options =
25- match DirectoryInfo( repositoryDir) .Name.ToLower() with
26- | " fsharp.compiler.service" -> FCS( repositoryDir)
27- | " fsharpvspowertools" -> VFPT( repositoryDir)
28- | _ -> failwithf" %s is not supported" repositoryDir
2925
3026let FCS ( repositoryDir : string ) : Options =
31- { Options=
32- { ProjectFileName= repositoryDir</> @" src\fsharp\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj"
33- ProjectFileNames=
34- [| @" src\fsharp\FSharp.Compiler.Service\obj\Debug\FSComp.fs"
35- @" src\fsharp\FSharp.Compiler.Service\obj\Debug\FSIstrings.fs"
27+ let files =
28+ [| @" src\fsharp\FSharp.Compiler.Service\obj\Release\FSComp.fs"
29+ @" src\fsharp\FSharp.Compiler.Service\obj\Release\FSIstrings.fs"
3630@" src\assemblyinfo\assemblyinfo.FSharp.Compiler.Service.dll.fs"
3731@" src\assemblyinfo\assemblyinfo.shared.fs"
3832@" src\utils\reshapedreflection.fs"
@@ -199,9 +193,12 @@ let FCS (repositoryDir: string) : Options =
199193@" src\fsharp\vs\SimpleServices.fs"
200194@" src\fsharp\fsi\fsi.fsi"
201195@" src\fsharp\fsi\fsi.fs" |]
202- |> Array.map( fun x -> repositoryDir</> x)
196+
197+ { Options=
198+ { ProjectFileName= repositoryDir</> @" src\fsharp\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj"
199+ ProjectFileNames= files|> Array.map( fun x -> repositoryDir</> x)
203200 OtherOptions=
204- [| @" -o:obj\Debug \FSharp.Compiler.Service.dll" ; " -g" ; " --noframework" ;
201+ [| @" -o:obj\Release \FSharp.Compiler.Service.dll" ; " -g" ; " --noframework" ;
205202@" --baseaddress:0x06800000" ; " --define:DEBUG" ;
206203@" --define:CROSS_PLATFORM_COMPILER" ; " --define:FX_ATLEAST_45" ;
207204@" --define:FX_ATLEAST_40" ; " --define:BE_SECURITY_TRANSPARENT" ;
@@ -219,6 +216,7 @@ let FCS (repositoryDir: string) : Options =
219216@" -r:" + ( repositoryDir</> @" packages\Microsoft.DiaSymReader.PortablePdb\lib\net45\Microsoft.DiaSymReader.PortablePdb.dll" );
220217@" -r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" ;
221218@" -r:" + ( repositoryDir</> @" packages\System.Collections.Immutable\lib\netstandard1.0\System.Collections.Immutable.dll" );
219+ @" -r:" + ( repositoryDir</> @" packages\FSharp.Core\lib\net40\FSharp.Core.dll" );
222220@" -r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll" ;
223221@" -r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" ;
224222@" -r:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Numerics.dll" ;
@@ -286,6 +284,17 @@ let FCS (repositoryDir: string) : Options =
286284 UnresolvedReferences= None;
287285 OriginalLoadReferences= []
288286 ExtraProjectInfo= None}
287+ FilesToCheck=
288+ files
289+ |> Array.filter( fun s -> s.Contains" TypeChecker.fs" ||
290+ s.Contains" Optimizer.fs" ||
291+ s.Contains" IlxGen.fs" ||
292+ s.Contains" TastOps.fs" ||
293+ s.Contains" TcGlobals.fs" ||
294+ s.Contains" CompileOps.fs" ||
295+ s.Contains" CompileOptions.fs" )
296+ |> Array.map( fun x -> repositoryDir</> x)
297+ |> Array.toList
289298 FileToCheck= repositoryDir</> @" src\fsharp\TypeChecker.fs"
290299 SymbolText= " Some"
291300 SymbolPos= mkPos120 7
@@ -395,6 +404,7 @@ let VFPT (repositoryDir: string) : Options =
395404 UnresolvedReferences= None
396405 OriginalLoadReferences= []
397406 ExtraProjectInfo= None}
407+ FilesToCheck= []
398408 FileToCheck= repositoryDir</> @" src\FSharp.Editing\CodeGeneration\RecordStubGenerator.fs"
399409 SymbolText= " option"
400410 SymbolPos= mkPos19 23
@@ -404,4 +414,12 @@ let VFPT (repositoryDir: string) : Options =
404414 QualifyingNames= []
405415 PartialName= " "
406416}]
407- }
417+ }
418+
419+ let get ( repositoryDir : string ) : Options =
420+ let repositoryDir = Path.GetFullPath( repositoryDir)
421+ match DirectoryInfo( Path.GetFullPath( repositoryDir)) .Name.ToLower() with
422+ | " fsharp.compiler.service" -> FCS( repositoryDir)
423+ | " fsharpvspowertools" -> VFPT( repositoryDir)
424+ | _ -> failwithf" %s is not supported" repositoryDir
425+