local user_data = require('copilot.setup').get_cred() local util = require('copilot.util') local M = {} local send_editor_info = function (a, b, c, d) local responses = vim.lsp.buf_request_sync(0, 'setEditorInfo', { editorPluginInfo = { name = 'copilot.vim', version = '1.1.0', }, editorInfo= { version = '0.7.0-dev+1343-g4d3acd6be-dirty', name = "Neovim", }, }, 600) end local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.getCompletions = true M.start = function (plugin_path) vim.lsp.start_client({ cmd = {require('copilot.util').get_copilot_path(plugin_path)}, cmd_env = { ["GITHUB_USER"] = user_data.user, ["GITHUB_TOKEN"] = user_data.token, ["COPILOT_AGENT_VERBOSE"] = 1, }, handlers={ ["getCompletions"] = function () print("get completions") end, ["textDocumentSync"] = function () print("handle") end, }, name = "copilot", trace = "messages", root_dir = vim.loop.cwd(), autostart = true, on_init = function(client, _) vim.lsp.buf_attach_client(0, client.id) vim.api.nvim_create_autocmd({'BufEnter'}, { callback = function () if not vim.lsp.buf_get_clients(0)[client.id] then vim.lsp.buf_attach_client(0, client.id) end end, once = false, }) end, on_attach = function() send_editor_info() end }) end return M