@@ -419,20 +419,25 @@ function! codeium#CycleOrComplete() abort
419
419
endif
420
420
endfunction
421
421
422
- function ! s: LaunchChat (out, err, status) abort
423
- let l: metadata = codeium#server#RequestMetadata ()
424
- let l: processes = json_decode (join (a: out , ' ' ))
425
- let l: chat_port = l: processes [' chatClientPort' ]
426
- let l: ws_port = l: processes [' chatWebServerPort' ]
427
-
422
+ function BuildChatUrl (metadata, chat_port, ws_port) abort
428
423
let config = get (g: , ' codeium_server_config' , {})
429
424
let l: has_enterprise_extension = ' false'
430
425
if has_key (config, ' api_url' ) && ! empty (config.api_url)
431
426
let l: has_enterprise_extension = ' true'
432
427
endif
433
428
434
429
" Hard-coded to English locale and allowed telemetry.
435
- let l: url = ' http://127.0.0.1:' . l: chat_port . ' /?' . ' api_key=' . l: metadata .api_key . ' &ide_name=' . l: metadata .ide_name . ' &ide_version=' . l: metadata .ide_version . ' &extension_name=' . l: metadata .extension_name . ' &extension_version=' . l: metadata .extension_version . ' &web_server_url=ws://127.0.0.1:' . l: ws_port . ' &has_enterprise_extension=' . l: has_enterprise_extension . ' &app_name=Vim&locale=en&ide_telemetry_enabled=true&has_index_service=true'
430
+ let l: url = ' http://127.0.0.1:' . a: chat_port . ' /?' . ' api_key=' . a: metadata .api_key . ' &ide_name=' . a: metadata .ide_name . ' &ide_version=' . a: metadata .ide_version . ' &extension_name=' . a: metadata .extension_name . ' &extension_version=' . a: metadata .extension_version . ' &web_server_url=ws://127.0.0.1:' . a: ws_port . ' &has_enterprise_extension=' . l: has_enterprise_extension . ' &app_name=Vim&locale=en&ide_telemetry_enabled=true&has_index_service=true'
431
+ return l: url
432
+ endfunction
433
+
434
+ function ! s: LaunchChat (out, err, status) abort
435
+ let l: metadata = codeium#server#RequestMetadata ()
436
+ let l: processes = json_decode (join (a: out , ' ' ))
437
+ let l: chat_port = l: processes [' chatClientPort' ]
438
+ let l: ws_port = l: processes [' chatWebServerPort' ]
439
+
440
+ let l: url = BuildChatUrl (l: metadata , l: chat_port , l: ws_port )
436
441
let l: browser = codeium#command#BrowserCommand ()
437
442
let opened_browser = v: false
438
443
if ! empty (browser)
@@ -501,6 +506,14 @@ function! codeium#Chat() abort
501
506
call codeium#RefreshContext ()
502
507
call codeium#server#Request (' GetProcesses' , codeium#server#RequestMetadata (), function (' s:LaunchChat' , []))
503
508
call codeium#AddTrackedWorkspace ()
509
+ " If user has chat_ports set, they are probably using vim remotely and trying to use chat via port forwarding.
510
+ " In that case display the url here so that it is easier to copy, as the browser will fail to open automatically.
511
+ let chat_ports = get (g: , ' codeium_port_config' , {})
512
+ if has_key (chat_ports, ' chat_client' ) && ! empty (chat_ports.chat_client) && has_key (chat_ports, ' web_server' ) && ! empty (chat_ports.web_server)
513
+ let l: metadata = codeium#server#RequestMetadata ()
514
+ let l: url = BuildChatUrl (l: metadata , chat_ports.chat_client, chat_ports.web_server)
515
+ echomsg l: url
516
+ endif
504
517
catch
505
518
call codeium#log#Exception ()
506
519
endtry
0 commit comments