@@ -79,10 +79,17 @@ type XmlDocCollector() =
7979let prevGrabPointPos = grabPoints.[ grabPointIndex-1 ]
8080 Array.findFirstIndexWhereTrue lines( fun ( _ , pos ) -> posGeq pos prevGrabPointPos)
8181//printfn "#lines = %d, firstLineIndexAfterPrevGrabPoint = %d, firstLineIndexAfterGrabPoint = %d" lines.Length firstLineIndexAfterPrevGrabPoint firstLineIndexAfterGrabPoint
82- lines.[ firstLineIndexAfterPrevGrabPoint.. firstLineIndexAfterGrabPoint-1 ] |> Array.map fst
82+
83+ let lines = lines.[ firstLineIndexAfterPrevGrabPoint.. firstLineIndexAfterGrabPoint-1 ] |> Array.rev
84+ let firstLineNumber = ( snd lines.[ 0 ]) .Line
85+ lines
86+ |> Array.mapi( fun i x -> firstLineNumber- i, x)
87+ |> Array.takeWhile( fun ( sequencedLineNumber , ( _ , pos )) -> sequencedLineNumber= pos.Line)
88+ |> Array.map( fun ( _ , ( lineStr , _ )) -> lineStr)
89+ |> Array.rev
8390with e->
84- //printfn "unexpected error in LinesBefore:\n%s" (e.ToString())
85- [| |]
91+ //printfn "unexpected error in LinesBefore:\n%s" (e.ToString())
92+ [| |]
8693
8794type XmlDoc =
8895| XmlDocof string []