@@ -11,20 +11,19 @@ type CheckerImpl(checker: InteractiveChecker) =
1111 member __.Checker = checker
1212 interface IChecker
1313
14- let mapErrors ( checkProjectResults : FSharpCheckProjectResults ) =
15- checkProjectResults.Errors
16- |> Array.map ( fun er -> {
17- FileName = er.FileName
18- StartLineAlternate = er.StartLineAlternate
19- StartColumn = er.StartColumn
20- EndLineAlternate = er.EndLineAlternate
21- EndColumn = er.EndColumn
22- Message = er.Message
14+ let mapError ( error : FSharpErrorInfo ) =
15+ {
16+ FileName = error.FileName
17+ StartLineAlternate = error.StartLineAlternate
18+ StartColumn = error.StartColumn
19+ EndLineAlternate = error.EndLineAlternate
20+ EndColumn = error.EndColumn
21+ Message = error.Message
2322 IsWarning =
24- match er .Severity with
23+ match error .Severity with
2524 | FSharpErrorSeverity.Error -> false
2625 | FSharpErrorSeverity.Warning -> true
27- })
26+ }
2827
2928type ParseResults ( optimizedProject : Lazy < Project >,
3029 unoptimizedProject: Lazy< Project>,
@@ -42,7 +41,7 @@ type ParseResults (optimizedProject: Lazy<Project>,
4241 member __.CheckProjectResults = checkProjectResults
4342
4443 interface IParseResults with
45- member __.Errors = mapErrors checkProjectResults
44+ member __.Errors = checkProjectResults.Errors |> Array.map mapError
4645
4746let inline private tryGetLexerSymbolIslands ( sym : Lexer.LexerSymbol ) =
4847 match sym.Text with
@@ -134,12 +133,12 @@ let makeProject projectOptions (projectResults: FSharpCheckProjectResults) optim
134133 project
135134
136135let parseFSharpScript ( checker : InteractiveChecker ) projectFileName fileName source =
137- let parseResults , typeCheckResults , projectResults =
136+ let parseResults , checkResults , projectResults =
138137 checker.ParseAndCheckScript ( projectFileName, fileName, source)
139138 let projectOptions = makeProjOptions projectFileName [| fileName |]
140139 let optimizedProject = lazy ( makeProject projectOptions projectResults true )
141140 let unoptimizedProject = lazy ( makeProject projectOptions projectResults false )
142- ParseResults ( optimizedProject, unoptimizedProject, Some parseResults, Some typeCheckResults , projectResults)
141+ ParseResults ( optimizedProject, unoptimizedProject, Some parseResults, Some checkResults , projectResults)
143142
144143let parseFSharpProject ( checker : InteractiveChecker ) projectFileName fileNames sources =
145144 let projectResults = checker.ParseAndCheckProject ( projectFileName, fileNames, sources)
@@ -148,6 +147,13 @@ let parseFSharpProject (checker: InteractiveChecker) projectFileName fileNames s
148147 let unoptimizedProject = lazy ( makeProject projectOptions projectResults false )
149148 ParseResults ( optimizedProject, unoptimizedProject, None, None, projectResults)
150149
150+ let parseFSharpFileInProject ( checker : InteractiveChecker ) fileName projectFileName fileNames sources =
151+ let parseResults , checkResultsOpt , projectResults = checker.ParseAndCheckFileInProject ( fileName, projectFileName, fileNames, sources)
152+ let projectOptions = makeProjOptions projectFileName fileNames
153+ let optimizedProject = lazy ( makeProject projectOptions projectResults true )
154+ let unoptimizedProject = lazy ( makeProject projectOptions projectResults false )
155+ ParseResults ( optimizedProject, unoptimizedProject, Some parseResults, checkResultsOpt, projectResults)
156+
151157let tooltipToString ( el : FSharpToolTipElement < string >): string [] =
152158 let dataToString ( data : FSharpToolTipElementData < string >) =
153159 [| match data.ParamName with
@@ -254,6 +260,10 @@ let init () =
254260 let c = checker :?> CheckerImpl
255261 parseFSharpProject c.Checker projectFileName fileNames sources :> IParseResults
256262
263+ member __.ParseFSharpFileInProject ( checker , fileName , projectFileName , fileNames , sources ) =
264+ let c = checker :?> CheckerImpl
265+ parseFSharpFileInProject c.Checker fileName projectFileName fileNames sources :> IParseResults
266+
257267 member __.GetParseErrors ( parseResults : IParseResults ) =
258268 parseResults.Errors
259269
0 commit comments