32 lines
1.1 KiB
VimL
32 lines
1.1 KiB
VimL
function! copilot#handlers#window_logMessage(params, ...) abort
|
|
call copilot#logger#Raw(get(a:params, 'type', 6), get(a:params, 'message', ''))
|
|
endfunction
|
|
|
|
function! copilot#handlers#window_showMessageRequest(params, ...) abort
|
|
let choice = inputlist([a:params.message . "\n\nRequest Actions:"] +
|
|
\ map(copy(get(a:params, 'actions', [])), { i, v -> (i + 1) . '. ' . v.title}))
|
|
return choice > 0 ? get(a:params.actions, choice - 1, v:null) : v:null
|
|
endfunction
|
|
|
|
function! s:BrowserCallback(into, code) abort
|
|
let a:into.code = a:code
|
|
endfunction
|
|
|
|
function! copilot#handlers#window_showDocument(params, ...) abort
|
|
echo a:params.uri
|
|
if empty(get(a:params, 'external'))
|
|
return {'success': v:false}
|
|
endif
|
|
let browser = copilot#Browser()
|
|
if empty(browser)
|
|
return {'success': v:false}
|
|
endif
|
|
let status = {}
|
|
call copilot#job#Stream(browser + [a:params.uri], v:null, v:null, function('s:BrowserCallback', [status]))
|
|
let time = reltime()
|
|
while empty(status) && reltimefloat(reltime(time)) < 1
|
|
sleep 10m
|
|
endwhile
|
|
return {'success': get(status, 'code') ? v:false : v:true}
|
|
endfunction
|