Skip to content

Commit 67713d6

Browse files
committed
Don't read buffer lines unnecessarily
1 parent e33c7ce commit 67713d6

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

autoload/OmniSharp/stdio.vim

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -174,18 +174,6 @@ function! OmniSharp#stdio#Request(command, opts) abort
174174
\ fnamemodify(bufname(bufnr), ':p'))
175175
let send_buffer = get(a:opts, 'SendBuffer', 1)
176176
endif
177-
let lines = getbufline(bufnr, 1, '$')
178-
if has_key(a:opts, 'OverrideBuffer')
179-
let lines[a:opts.OverrideBuffer.LineNr - 1] = a:opts.OverrideBuffer.Line
180-
let cnum = a:opts.OverrideBuffer.Col
181-
endif
182-
let tmp = join(lines, '')
183-
" Unique string separator which must not exist in the buffer
184-
let sep = '@' . matchstr(reltimestr(reltime()), '\v\.@<=\d+') . '@'
185-
while stridx(tmp, sep) >= 0
186-
let sep = '@' . matchstr(reltimestr(reltime()), '\v\.@<=\d+') . '@'
187-
endwhile
188-
let buffer = join(lines, sep)
189177

190178
let body = {
191179
\ 'Arguments': {
@@ -195,7 +183,20 @@ function! OmniSharp#stdio#Request(command, opts) abort
195183
\ }
196184
\}
197185
if send_buffer
198-
let body.Arguments.Buffer = buffer
186+
let lines = getbufline(bufnr, 1, '$')
187+
if has_key(a:opts, 'OverrideBuffer')
188+
let lines[a:opts.OverrideBuffer.LineNr - 1] = a:opts.OverrideBuffer.Line
189+
let cnum = a:opts.OverrideBuffer.Col
190+
endif
191+
let tmp = join(lines, '')
192+
" Unique string separator which must not exist in the buffer
193+
let sep = '@' . matchstr(reltimestr(reltime()), '\v\.@<=\d+') . '@'
194+
while stridx(tmp, sep) >= 0
195+
let sep = '@' . matchstr(reltimestr(reltime()), '\v\.@<=\d+') . '@'
196+
endwhile
197+
let body.Arguments.Buffer = join(lines, sep)
198+
else
199+
let sep = ''
199200
endif
200201

201202
call s:Request(job, body, a:command, a:opts, sep)

0 commit comments

Comments
 (0)