Add copilot configs for nvim and zed
This commit is contained in:
parent
a3804e67a5
commit
3fc3675808
9 changed files with 197 additions and 209 deletions
|
|
@ -1,208 +1,78 @@
|
|||
return {
|
||||
"jackMort/ChatGPT.nvim",
|
||||
opts = {
|
||||
api_key_cmd = nil,
|
||||
yank_register = "+",
|
||||
edit_with_instructions = {
|
||||
diff = false,
|
||||
keymaps = {
|
||||
-- close = "<C-c>",
|
||||
-- accept = "<C-y>",
|
||||
-- toggle_diff = "<C-d>",
|
||||
-- toggle_settings = "<C-o>",
|
||||
-- toggle_help = "<C-h>",
|
||||
-- cycle_windows = "<Tab>",
|
||||
-- use_output_as_input = "<C-i>",
|
||||
submit = "<C-a>",
|
||||
},
|
||||
},
|
||||
chat = {
|
||||
-- welcome_message = WELCOME_MESSAGE,
|
||||
loading_text = "Loading, please wait ...",
|
||||
question_sign = "", -- 🙂
|
||||
answer_sign = "ﮧ", -- 🤖
|
||||
border_left_sign = "",
|
||||
border_right_sign = "",
|
||||
max_line_length = 120,
|
||||
sessions_window = {
|
||||
active_sign = " ",
|
||||
inactive_sign = " ",
|
||||
current_line_sign = "",
|
||||
border = {
|
||||
style = "rounded",
|
||||
text = {
|
||||
top = " Sessions ",
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
|
||||
},
|
||||
},
|
||||
keymaps = {
|
||||
-- close = "<C-c>",
|
||||
-- yank_last = "<C-y>",
|
||||
-- yank_last_code = "<C-k>",
|
||||
-- scroll_up = "<C-u>",
|
||||
-- scroll_down = "<C-d>",
|
||||
-- new_session = "<C-n>",
|
||||
-- cycle_windows = "<Tab>",
|
||||
-- cycle_modes = "<C-f>",
|
||||
-- next_message = "<C-j>",
|
||||
-- prev_message = "<C-k>",
|
||||
-- select_session = "<Space>",
|
||||
-- rename_session = "r",
|
||||
-- delete_session = "d",
|
||||
-- draft_message = "<C-r>",
|
||||
-- edit_message = "e",
|
||||
-- delete_message = "d",
|
||||
-- toggle_settings = "<C-o>",
|
||||
-- toggle_sessions = "<C-p>",
|
||||
-- toggle_help = "<C-h>",
|
||||
-- toggle_message_role = "<C-r>",
|
||||
-- toggle_system_role_open = "<C-s>",
|
||||
-- stop_generating = "<C-x>",
|
||||
submit = "<C-a>",
|
||||
},
|
||||
},
|
||||
popup_layout = {
|
||||
default = "center",
|
||||
center = {
|
||||
width = "80%",
|
||||
height = "80%",
|
||||
},
|
||||
right = {
|
||||
width = "30%",
|
||||
width_settings_open = "50%",
|
||||
},
|
||||
},
|
||||
popup_window = {
|
||||
border = {
|
||||
highlight = "FloatBorder",
|
||||
style = "rounded",
|
||||
text = {
|
||||
top = " ChatGPT ",
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
wrap = true,
|
||||
linebreak = true,
|
||||
foldcolumn = "1",
|
||||
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
|
||||
},
|
||||
buf_options = {
|
||||
filetype = "markdown",
|
||||
},
|
||||
},
|
||||
system_window = {
|
||||
border = {
|
||||
highlight = "FloatBorder",
|
||||
style = "rounded",
|
||||
text = {
|
||||
top = " SYSTEM ",
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
wrap = true,
|
||||
linebreak = true,
|
||||
foldcolumn = "2",
|
||||
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
|
||||
},
|
||||
},
|
||||
popup_input = {
|
||||
prompt = " ",
|
||||
border = {
|
||||
highlight = "FloatBorder",
|
||||
style = "rounded",
|
||||
text = {
|
||||
top_align = "center",
|
||||
top = " Prompt ",
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
|
||||
},
|
||||
submit = "<C-Enter>",
|
||||
submit_n = "<Enter>",
|
||||
max_visible_lines = 20,
|
||||
},
|
||||
settings_window = {
|
||||
setting_sign = " ",
|
||||
border = {
|
||||
style = "rounded",
|
||||
text = {
|
||||
top = " Settings ",
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
|
||||
},
|
||||
},
|
||||
help_window = {
|
||||
setting_sign = " ",
|
||||
border = {
|
||||
style = "rounded",
|
||||
text = {
|
||||
top = " Help ",
|
||||
},
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = "Normal:Normal,FloatBorder:FloatBorder",
|
||||
},
|
||||
},
|
||||
openai_params = {
|
||||
model = "gpt-3.5-turbo",
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
max_tokens = 300,
|
||||
temperature = 0,
|
||||
top_p = 1,
|
||||
n = 1,
|
||||
},
|
||||
openai_edit_params = {
|
||||
model = "gpt-3.5-turbo",
|
||||
frequency_penalty = 0,
|
||||
presence_penalty = 0,
|
||||
temperature = 0,
|
||||
top_p = 1,
|
||||
n = 1,
|
||||
},
|
||||
use_openai_functions_for_edits = false,
|
||||
actions_paths = {},
|
||||
show_quickfixes_cmd = "Trouble quickfix",
|
||||
predefined_chat_gpt_prompts = "https://raw.githubusercontent.com/f/awesome-chatgpt-prompts/main/prompts.csv",
|
||||
highlights = {
|
||||
help_key = "@symbol",
|
||||
help_description = "@comment",
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
require("chatgpt").setup()
|
||||
end,
|
||||
"olimorris/codecompanion.nvim",
|
||||
dependencies = {
|
||||
"MunifTanjim/nui.nvim",
|
||||
"nvim-lua/plenary.nvim",
|
||||
"folke/trouble.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
{
|
||||
"zbirenbaum/copilot.lua",
|
||||
cmd = "Copilot",
|
||||
event = "InsertEnter",
|
||||
config = function()
|
||||
require("copilot").setup({
|
||||
suggestion = { enabled = false },
|
||||
panel = { enabled = false },
|
||||
})
|
||||
end,
|
||||
},
|
||||
"hrsh7th/nvim-cmp", -- Optional: For using slash commands and variables in the chat buffer
|
||||
"nvim-telescope/telescope.nvim", -- Optional: For using slash commands
|
||||
{ "stevearc/dressing.nvim", opts = {} }, -- Optional: Improves `vim.ui.select`
|
||||
},
|
||||
opts = {
|
||||
strategies = {
|
||||
chat = {
|
||||
adapter = "copilot",
|
||||
},
|
||||
inline = {
|
||||
adapter = "copilot",
|
||||
},
|
||||
agent = { adapter = "copilot" },
|
||||
},
|
||||
display = {
|
||||
action_palette = {
|
||||
prompt = " "
|
||||
}
|
||||
}
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>ap", "<cmd>ChatGPT<CR>", desc = "ChatGPT" },
|
||||
{ "<leader>ae", "<cmd>ChatGPTEditWithInstruction<CR>", desc = "Edit with instruction", mode = { "n", "v" } },
|
||||
{ "<leader>aa", "<cmd>ChatGPTActAs<CR>", desc = "Act as", mode = { "n", "v" } },
|
||||
{ "<leader>ag", "<cmd>ChatGPTRun grammar_correction<CR>", desc = "Grammar Correction", mode = { "n", "v" } },
|
||||
{ "<leader>aT", "<cmd>ChatGPTRun translate<CR>", desc = "Translate", mode = { "n", "v" } },
|
||||
{ "<leader>ak", "<cmd>ChatGPTRun keywords<CR>", desc = "Keywords", mode = { "n", "v" } },
|
||||
{ "<leader>ad", "<cmd>ChatGPTRun docstring<CR>", desc = "Docstring", mode = { "n", "v" } },
|
||||
{ "<leader>at", "<cmd>ChatGPTRun add_tests<CR>", desc = "Add Tests", mode = { "n", "v" } },
|
||||
{ "<leader>ao", "<cmd>ChatGPTRun optimize_code<CR>", desc = "Optimize Code", mode = { "n", "v" } },
|
||||
{ "<leader>as", "<cmd>ChatGPTRun summarize<CR>", desc = "Summarize", mode = { "n", "v" } },
|
||||
{ "<leader>af", "<cmd>ChatGPTRun fix_bugs<CR>", desc = "Fix Bugs", mode = { "n", "v" } },
|
||||
{ "<leader>ax", "<cmd>ChatGPTRun explain_code<CR>", desc = "Explain Code", mode = { "n", "v" } },
|
||||
{ "<leader>ar", "<cmd>ChatGPTRun roxygen_edit<CR>", desc = "Roxygen Edit", mode = { "n", "v" } },
|
||||
{
|
||||
"<leader>al",
|
||||
"<cmd>ChatGPTRun code_readability_analysis<CR>",
|
||||
desc = "Code Readability Analysis",
|
||||
mode = { "n", "v" },
|
||||
"<leader>at",
|
||||
function()
|
||||
require("codecompanion").toggle()
|
||||
end,
|
||||
desc = "Toggle AI chat",
|
||||
mode = { "n", "v" }
|
||||
},
|
||||
},
|
||||
{
|
||||
"<leader>aa",
|
||||
"<CMD>CodeCompanion<CR>",
|
||||
desc = "Run an inline prompt",
|
||||
mode = { "n", "v" }
|
||||
},
|
||||
{
|
||||
"<leader>aA",
|
||||
function()
|
||||
require("codecompanion").actions()
|
||||
end,
|
||||
desc = "Open AI actions",
|
||||
mode = { "n", "v" }
|
||||
},
|
||||
{
|
||||
"<leader>av",
|
||||
function()
|
||||
require("codecompanion").add()
|
||||
end,
|
||||
desc = "Add visual selection to chat",
|
||||
mode = "v"
|
||||
},
|
||||
{
|
||||
"<leader>ae",
|
||||
function()
|
||||
require("codecompanion").prompt("explain")
|
||||
end,
|
||||
desc = "Explain code",
|
||||
mode = "v"
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,12 @@ return {
|
|||
"petertriho/cmp-git",
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"windwp/nvim-autopairs",
|
||||
{
|
||||
"zbirenbaum/copilot-cmp",
|
||||
config = function()
|
||||
require("copilot_cmp").setup()
|
||||
end
|
||||
},
|
||||
},
|
||||
config = function()
|
||||
vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
|
||||
|
|
@ -64,6 +70,7 @@ return {
|
|||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = "conventionalcommits" },
|
||||
{ name = "copilot" },
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
{ name = "buffer" },
|
||||
|
|
@ -88,7 +95,24 @@ return {
|
|||
hl_group = "CmpGhostText",
|
||||
},
|
||||
},
|
||||
sorting = defaults.sorting,
|
||||
sorting = {
|
||||
priority_weight = 2,
|
||||
comparators = {
|
||||
require("copilot_cmp.comparators").prioritize,
|
||||
|
||||
-- Below is the default comparitor list and order for nvim-cmp
|
||||
cmp.config.compare.offset,
|
||||
-- cmp.config.compare.scopes, --this is commented in nvim-cmp too
|
||||
cmp.config.compare.exact,
|
||||
cmp.config.compare.score,
|
||||
cmp.config.compare.recently_used,
|
||||
cmp.config.compare.locality,
|
||||
cmp.config.compare.kind,
|
||||
cmp.config.compare.sort_text,
|
||||
cmp.config.compare.length,
|
||||
cmp.config.compare.order,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
cmp.setup(opts)
|
||||
|
|
|
|||
|
|
@ -61,11 +61,10 @@ return {
|
|||
{ mode = "n", keys = "<Leader>un", desc = "+Noice" },
|
||||
{ mode = "n", keys = "<Leader>w", desc = "+Workspace" },
|
||||
{ mode = "n", keys = "<Leader>p", desc = "+Run stuff" },
|
||||
{ mode = "n", keys = "<Leader>a", desc = "+ChatGPT" },
|
||||
{ mode = "n", keys = "<Leader>z", desc = "+ZK" },
|
||||
{ mode = "v", keys = "<Leader>z", desc = "+ZK" },
|
||||
{ mode = "v", keys = "<Leader>a", desc = "+ChatGPT" },
|
||||
{ mode = "n", keys = "<Leader>a", desc = "+ChatGPT" },
|
||||
{ mode = "v", keys = "<Leader>a", desc = "+AI" },
|
||||
{ mode = "n", keys = "<Leader>a", desc = "+AI" },
|
||||
{ mode = "n", keys = "g?", desc = "+Print Debug" },
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -82,6 +82,7 @@ return {
|
|||
},
|
||||
},
|
||||
html = {},
|
||||
["nil_ls"] = {},
|
||||
marksman = {},
|
||||
pyright = {},
|
||||
phpactor = {},
|
||||
|
|
|
|||
|
|
@ -4,9 +4,11 @@ return {
|
|||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
"cbochs/grapple.nvim",
|
||||
{ 'AndreM222/copilot-lualine' }
|
||||
},
|
||||
opts = function()
|
||||
local icons = require("aleidk.constants").icons
|
||||
local palete = require("catppuccin.palettes").get_palette "macchiato"
|
||||
|
||||
local function diff_source()
|
||||
local gitsigns = vim.b.gitsigns_status_dict
|
||||
|
|
@ -28,9 +30,45 @@ return {
|
|||
return str .. " " .. sbar[i]
|
||||
end
|
||||
|
||||
local codecompanion_status = require("lualine.component"):extend()
|
||||
|
||||
codecompanion_status.processing = false
|
||||
codecompanion_status.spinner_index = 1
|
||||
|
||||
local spinner_symbols = require("copilot-lualine.spinners").bouncing_bar
|
||||
|
||||
-- Initializer
|
||||
function codecompanion_status:init(options)
|
||||
codecompanion_status.super.init(self, options)
|
||||
|
||||
local group = vim.api.nvim_create_augroup("CodeCompanionHooks", {})
|
||||
|
||||
vim.api.nvim_create_autocmd({ "User" }, {
|
||||
pattern = "CodeCompanionRequest*",
|
||||
group = group,
|
||||
callback = function(request)
|
||||
if request.match == "CodeCompanionRequestStarted" then
|
||||
self.processing = true
|
||||
elseif request.match == "CodeCompanionRequestFinished" then
|
||||
self.processing = false
|
||||
end
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
-- Function that runs every time statusline is updated
|
||||
function codecompanion_status:update_status()
|
||||
if self.processing then
|
||||
self.spinner_index = (self.spinner_index % #spinner_symbols) + 1
|
||||
return spinner_symbols[self.spinner_index]
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
return {
|
||||
options = {
|
||||
theme = "auto",
|
||||
theme = "catppuccin",
|
||||
globalstatus = true,
|
||||
disabled_filetypes = { statusline = { "dashboard", "alpha" } },
|
||||
component_separators = "",
|
||||
|
|
@ -48,7 +86,35 @@ return {
|
|||
},
|
||||
lualine_b = {},
|
||||
lualine_c = {
|
||||
{ "branch", icon = icons.git.branch },
|
||||
{ "branch", icon = icons.git.branch },
|
||||
{
|
||||
"copilot",
|
||||
cond = function()
|
||||
return vim.bo.filetype ~= "codecompanion"
|
||||
end,
|
||||
show_colors = true,
|
||||
symbols = {
|
||||
status = {
|
||||
icons = {
|
||||
enabled = " ",
|
||||
sleep = " ", -- auto-trigger disabled
|
||||
disabled = " ",
|
||||
warning = " ",
|
||||
unknown = " "
|
||||
},
|
||||
hl = {
|
||||
enabled = palete.teal,
|
||||
sleep = palete.lavender,
|
||||
disabled = palete.subtext0,
|
||||
warning = palete.peach,
|
||||
unknown = palete.red
|
||||
}
|
||||
},
|
||||
spinners = spinner_symbols,
|
||||
spinner_color = palete.mauve
|
||||
},
|
||||
},
|
||||
{ codecompanion_status },
|
||||
{
|
||||
"overseer",
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
return {
|
||||
enabled = false,
|
||||
"anuvyklack/pretty-fold.nvim",
|
||||
opts = {
|
||||
sections = {
|
||||
|
|
@ -32,7 +33,7 @@ return {
|
|||
},
|
||||
|
||||
matchup_patterns = {
|
||||
{ "{", "}" },
|
||||
{ "{", "}" },
|
||||
{ "%(", ")" }, -- % to escape lua pattern char
|
||||
{ "%[", "]" }, -- % to escape lua pattern char
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue