Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 25 additions & 29 deletions lua/CopilotChat/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1060,41 +1060,37 @@ function M.setup(config)
M.chat:close(state.source and state.source.bufnr or nil)
M.chat:delete()
end
M.chat = require('CopilotChat.ui.chat')(
M.config,
utils.key_to_info('show_help', M.config.mappings.show_help),
function(bufnr)
for name, _ in pairs(M.config.mappings) do
map_key(name, bufnr)
end
M.chat = require('CopilotChat.ui.chat')(M.config, function(bufnr)
for name, _ in pairs(M.config.mappings) do
map_key(name, bufnr)
end

require('CopilotChat.completion').enable(bufnr, M.config.chat_autocomplete)
require('CopilotChat.completion').enable(bufnr, M.config.chat_autocomplete)

vim.api.nvim_create_autocmd({ 'BufEnter', 'BufLeave' }, {
buffer = bufnr,
callback = function(ev)
if ev.event == 'BufEnter' then
update_source()
end
vim.api.nvim_create_autocmd({ 'BufEnter', 'BufLeave' }, {
buffer = bufnr,
callback = function(ev)
if ev.event == 'BufEnter' then
update_source()
end

vim.schedule(update_highlights)
end,
})

vim.schedule(update_highlights)
if M.config.insert_at_end then
vim.api.nvim_create_autocmd({ 'InsertEnter' }, {
buffer = bufnr,
callback = function()
vim.cmd('normal! 0')
vim.cmd('normal! G$')
vim.v.char = 'x'
end,
})

if M.config.insert_at_end then
vim.api.nvim_create_autocmd({ 'InsertEnter' }, {
buffer = bufnr,
callback = function()
vim.cmd('normal! 0')
vim.cmd('normal! G$')
vim.v.char = 'x'
end,
})
end

finish(true)
end
)

finish(true)
end)

for name, prompt in pairs(list_prompts()) do
if prompt.prompt then
Expand Down
32 changes: 19 additions & 13 deletions lua/CopilotChat/ui/chat.lua
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ end
---@field private separator string
---@field private spinner CopilotChat.ui.spinner.Spinner
---@field private chat_overlay CopilotChat.ui.overlay.Overlay
local Chat = class(function(self, config, help, on_buf_create)
Overlay.init(self, 'copilot-chat', help, on_buf_create)
local Chat = class(function(self, config, on_buf_create)
Overlay.init(self, 'copilot-chat', utils.key_to_info('show_help', config.mappings.show_help), on_buf_create)

self.winnr = nil
self.config = config
Expand All @@ -83,18 +83,24 @@ local Chat = class(function(self, config, help, on_buf_create)
self.separator = config.separator

self.spinner = Spinner()
self.chat_overlay = Overlay('copilot-overlay', 'q to close', function(bufnr)
vim.keymap.set('n', 'q', function()
self.chat_overlay:restore(self.winnr, self.bufnr)
end)

vim.api.nvim_create_autocmd({ 'BufHidden', 'BufDelete' }, {
buffer = bufnr,
callback = function()
self.chat_overlay = Overlay(
'copilot-overlay',
utils.key_to_info('close', {
normal = config.mappings.close.normal,
}),
function(bufnr)
vim.keymap.set('n', config.mappings.close.normal, function()
self.chat_overlay:restore(self.winnr, self.bufnr)
end,
})
end)
end)

vim.api.nvim_create_autocmd({ 'BufHidden', 'BufDelete' }, {
buffer = bufnr,
callback = function()
self.chat_overlay:restore(self.winnr, self.bufnr)
end,
})
end
)

notify.listen(notify.MESSAGE, function(msg)
utils.schedule_main()
Expand Down
Loading