github / github/copilot.vim

LS job fails on windows vim if &shell is powershell

Offen
#276 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Vim Script
Sterne
11.7k
Forks
810
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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$\|^$'
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.