github / github/copilot.vim

LS job fails on windows vim if &shell is powershell

Open
#276 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Vim Script
Stars
11.7k
Forks
810
PR merge metrics
No merged PRs in 30d

Description

The language server runs in node.js and is launched using:
```pwsh
> npx @github/copilot-language-server@^1.408.0 --stdio
```
the problem is that the plugin (see `copilot.vim/autoload/copilot/client.vim` function `copilot#client#New()`)
uses:
```vim
job_start(['npx', '@github/copilot-language-server@^1.408.0', '--stdio'], ...)
```
which fails (is a win32 `CreateProcess(...)` issue) and should instead use:
```vim
job_start('npx "@github/copilot-language-server@^1.408.0" --stdio', ...)
```
The following patch works for me:
```
diff --git a/autoload/copilot/client.vim b/autoload/copilot/client.vim
index c3ec862..c052bc8 100644
--- a/autoload/copilot/client.vim
+++ b/autoload/copilot/client.vim
@@ -736,7 +736,7 @@ function! copilot#client#New() abort
let instance.workspaceFolders[folder.uri] = v:true
endfor
call copilot#logger#Debug('Spawning ' . join(command, ' '))
- let is_win_shell = has('win32') && &shellcmdflag !~# '^-'
+ let is_win_shell = has('win32') && ( &shell =~? 'powershell\|pwsh' || &shellcmdflag !~# '^-')
if is_win_shell && command[0] !~# '[\/]'
let exepath = exepath(command[0])
if exepath !~? '\.exe$\|^$'
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.