Is anyone interested in writing Github Copilot plugin?

It really helps a lot:

there is an official vim plugin:

and, an unofficial emacs plugin:

I want to implement it in kakoune, but have absolutely no clue.

1 Like

Sublime Plugin: GitHub - TheSecEng/LSP-copilot: GitHub Copilot support for Sublime Text LSP plugin provided through Copilot.vim.

I’ve been using Kakoune for over 1 week now and I really like various aspects of Kakoune, but I can’t really stand not having copilot.

Maybe I’ll just have to change to neovim for now …

Pure Lua plugin: GitHub - zbirenbaum/copilot.lua: Lua plugin for starting and interacting with github copilot

Does anyone know how to implement it in kakoune? I need some outline style guides…

Usually the process for implementing a more complex plug-in in kakoune is to write a command-line program that does the functionality and interface kakoune with the program using named pipes.
So writing (or finding) a command-line program that does the heavy lifting will probably be most of the way!

Thanks! I learned how to write a basic kakoune plugin, I really like it’s simple concepts, I even wrote one: GitHub - theowenyoung/kakoune-buffer-manager: Managing Buffers within the file, support multiple selections, delete buffers, open buffers , but copilot is another level for me. cause it need to handle login github service, and start a local agent to communicate with github service and text editor.

should I try to a kak-lsp compatible language server for this? or I don’t have to?

You should handle all the tricky stuff and communication with github copilot in a command-line program written in your favorite programming language. Then on the kakoune side, it will be similar to kakoune-snippets, I think, where the snippets will be provided by your commandline program.

I’ve looked a bit at other plugins, and I think writing a language server is indeed a good idea, if that works, you don’t need a kakoune plugin at all!

I think this file in copilot.vim is in fact already the language server implementation copilot.vim/agent.js at release · github/copilot.vim · GitHub

1 Like

Thanks! then I need to learn more about @krobelus kak-lsp, to figure out how to build it.

VSCode supports running multiple language servers in a single file. This issue tracks how we can add that feature to kak-lsp. We might be able to write a special language server that merely acts as a proxy to multiple language servers. That would be usable in any editor.

Anyway that’s not needed for basic Copilot support. It would be nice if there was a generic Copilot language server (maybe there is one?) then there is no extra work

VSCode supports running multiple language servers in a single file. This issue tracks how we can add that feature to kak-lsp. We might be able to write a special language server that merely acts as a proxy to multiple language servers. That would be usable in any editor.

Anyway that’s not needed for basic Copilot support. It would be nice if there was a generic Copilot language server (maybe there is one?) then it is trivial to integrate it with kak-lsp.

neovim also supports multiple lsp. but it seems GitHub - github/copilot.vim: Neovim plugin for GitHub Copilot and GitHub - zerolfx/copilot.el: An unofficial Copilot plugin for Emacs. , both of them are not using lsp.

only GitHub - TheSecEng/LSP-copilot: GitHub Copilot support for Sublime Text LSP plugin provided through Copilot.vim. is using lsp.

I’m super down for a kakoune copilot plugin!
Would love to try it on my favorite editor

Reading the first POC commit of LSP-copilot helps understand how to communicate with it copilot-node-server used by copilot.vim and LSP-copilot