Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit19283e7

Browse files
committed
Improve handling of buffer when line ends with /r
1 parent241dbc6 commit19283e7

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

‎vsintegration/src/vs/FsPkgs/FSharp.VS.FSI/sessions.fs‎

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -180,21 +180,25 @@ let readLinesAsync (reader: System.IO.StreamReader) trigger =
180180
letcharBuffer=
181181
letmaxCharsInBuffer= encoding.GetMaxCharCount byteBuffer.Length
182182
Array.zeroCreate maxCharsInBuffer
183-
183+
184184
let recfindLinesInBuffer pos=
185185
if pos>= buffer.Lengththen max(buffer.Length-1)0// exit and point to the last char
186186
else
187187
letc= buffer.[pos]
188-
if c='\r'|| c='\n'then
188+
letdeletePos=match cwith
189+
|'\r'when(pos+1)< buffer.Length&& buffer.[pos+1]='\n'-> Some(pos+2)
190+
|'\r'when(pos+1)= buffer.Length-> None
191+
|'\r'-> Some(pos+1)
192+
|'\n'-> Some(pos+1)
193+
|_-> None
194+
195+
match deletePoswith
196+
| Some deletePos->
189197
letline= buffer.ToString(0, pos)
190198
trigger line
191-
192-
letdeletePos=
193-
if c='\r'&&(pos+1)< buffer.Length&& buffer.[pos+1]='\n'then pos+2else pos+1
194199
buffer.Remove(0, deletePos)|> ignore
195200
findLinesInBuffer0
196-
else
197-
findLinesInBuffer(pos+1)
201+
| None-> findLinesInBuffer(pos+1)
198202

199203
let recread pos=
200204
async{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp