summaryrefslogtreecommitdiff
path: root/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/ai.lua
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-06-19 18:34:13 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-06-19 18:34:13 +0900
commit307fceea38b7352a79b0bdb87025a34b76973867 (patch)
tree382eb3e6a11973bc2c6ba33eee14d43ec2a9566b /ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/ai.lua
parentb66f68b8c014a3041c936ee9de1b57db5bcb50fb (diff)
updates
Diffstat (limited to 'ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/ai.lua')
-rw-r--r--ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/ai.lua286
1 files changed, 0 insertions, 286 deletions
diff --git a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/ai.lua b/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/ai.lua
deleted file mode 100644
index 7dcc5d5..0000000
--- a/ar/.config/TheSiahxyz/lua/thesiahxyz/plugins/ai.lua
+++ /dev/null
@@ -1,286 +0,0 @@
-return {
- {
- "robitx/gp.nvim",
- init = function()
- local wk = require("which-key")
- wk.add({
- mode = { "n", "v", "x" },
- { "<leader>G", group = "GPT" },
- { "<leader>Gg", group = "Gp" },
- { "<leader>GW", group = "Whisper" },
- })
- end,
- config = function()
- local function keymapOptions(desc)
- return {
- noremap = true,
- silent = true,
- nowait = true,
- desc = desc,
- }
- end
-
- local conf = {
- -- For customization, refer to Install > Configuration in the Documentation/Readme
- -- openai_api_key = { "pass", "show", "api/chatGPT/nvim" },
- openai_api_key = { "pass", "show", "api/chatGPT/nvim" },
- providers = {
- openai = {
- disable = false,
- endpoint = "https://api.openai.com/v1/chat/completions",
- -- secret = { "pass", "show", "api/chatGPT/nvim" },
- },
- },
- hooks = {
- -- GpInspectPlugin provides a detailed inspection of the plugin state
- InspectPlugin = function(plugin, params)
- local bufnr = vim.api.nvim_create_buf(false, true)
- local copy = vim.deepcopy(plugin)
- local key = copy.config.openai_api_key or ""
- copy.config.openai_api_key = key:sub(1, 3) .. string.rep("*", #key - 6) .. key:sub(-3)
- local plugin_info = string.format("Plugin structure:\n%s", vim.inspect(copy))
- local params_info = string.format("Command params:\n%s", vim.inspect(params))
- local lines = vim.split(plugin_info .. "\n" .. params_info, "\n")
- vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, lines)
- vim.api.nvim_win_set_buf(0, bufnr)
- end,
-
- -- GpInspectLog for checking the log file
- InspectLog = function(plugin, params)
- local log_file = plugin.config.log_file
- local buffer = plugin.helpers.get_buffer(log_file)
- if not buffer then
- vim.cmd("e " .. log_file)
- else
- vim.cmd("buffer " .. buffer)
- end
- end,
-
- -- GpImplement rewrites the provided selection/range based on comments in it
- Implement = function(gp, params)
- local template = "Having following from {{filename}}:\n\n"
- .. "```{{filetype}}\n{{selection}}\n```\n\n"
- .. "Please rewrite this according to the contained instructions."
- .. "\n\nRespond exclusively with the snippet that should replace the selection above."
-
- local agent = gp.get_command_agent()
- gp.logger.info("Implementing selection with agent: " .. agent.name)
-
- gp.Prompt(
- params,
- gp.Target.rewrite,
- agent,
- template,
- nil, -- command will run directly without any prompting for user input
- nil -- no predefined instructions (e.g. speech-to-text from Whisper)
- )
- end,
-
- -- your own functions can go here, see README for more examples like
- -- :GpExplain, :GpUnitTests.., :GpTranslator etc.
-
- -- example of making :%GpChatNew a dedicated command which
- -- opens new chat with the entire current buffer as a context
- BufferChatNew = function(gp, _)
- -- call GpChatNew command in range mode on whole buffer
- vim.api.nvim_command("%" .. gp.config.cmd_prefix .. "ChatNew")
- end,
-
- -- example of adding command which opens new chat dedicated for translation
- Translator = function(gp, params)
- local chat_system_prompt = "You are a Translator, please translate between English and Korean."
- gp.cmd.ChatNew(params, chat_system_prompt)
-
- -- -- you can also create a chat with a specific fixed agent like this:
- -- local agent = gp.get_chat_agent("ChatGPT4o")
- -- gp.cmd.ChatNew(params, chat_system_prompt, agent)
- end,
-
- -- example of adding command which writes unit tests for the selected code
- UnitTests = function(gp, params)
- local template = "I have the following code from {{filename}}:\n\n"
- .. "```{{filetype}}\n{{selection}}\n```\n\n"
- .. "Please respond by writing table driven unit tests for the code above."
- local agent = gp.get_command_agent()
- gp.Prompt(params, gp.Target.enew, agent, template)
- end,
-
- -- example of adding command which explains the selected code
- Explain = function(gp, params)
- local template = "I have the following code from {{filename}}:\n\n"
- .. "```{{filetype}}\n{{selection}}\n```\n\n"
- .. "Please respond by explaining the code above."
- local agent = gp.get_chat_agent()
- gp.Prompt(params, gp.Target.popup, agent, template)
- end,
-
- -- example of usig enew as a function specifying type for the new buffer
- CodeReview = function(gp, params)
- local template = "I have the following code from {{filename}}:\n\n"
- .. "```{{filetype}}\n{{selection}}\n```\n\n"
- .. "Please analyze for code smells and suggest improvements."
- local agent = gp.get_chat_agent()
- gp.Prompt(params, gp.Target.enew("markdown"), agent, template)
- end,
- },
- }
- require("gp").setup(conf)
-
- -- Setup shortcuts here (see Usage > Shortcuts in the Documentation/Readme)
- vim.keymap.set({ "n", "i" }, "<leader>Gc", "<cmd>GpChatNew<cr>", keymapOptions("New chat"))
- vim.keymap.set({ "n", "i" }, "<leader>Gb", "<cmd>GpBufferChatNew<cr>", keymapOptions("New buffer chat"))
- vim.keymap.set({ "n", "i" }, "<leader>Gt", "<cmd>GpChatToggle<cr>", keymapOptions("Toggle chat"))
- vim.keymap.set({ "n", "i" }, "<leader>Gf", "<cmd>GpChatFinder<cr>", keymapOptions("Chat finder"))
-
- vim.keymap.set("v", "<leader>Gc", ":<C-u>'<,'>GpChatNew<cr>", keymapOptions("Chat new"))
- vim.keymap.set("v", "<leader>Gb", ":<C-u>'<,'>GpBufferChatNew<cr>", keymapOptions("Buffer chat new"))
- vim.keymap.set("v", "<leader>Gp", ":<C-u>'<,'>GpChatPaste<cr>", keymapOptions("Chat paste"))
- vim.keymap.set("v", "<leader>Gt", ":<C-u>'<,'>GpChatToggle<cr>", keymapOptions("Toggle chat"))
-
- vim.keymap.set({ "n", "i" }, "<leader>Gh", "<cmd>gpchatnew split<cr>", keymapOptions("New chat split"))
- vim.keymap.set({ "n", "i" }, "<leader>Gv", "<cmd>gpchatnew vsplit<cr>", keymapOptions("New chat vsplit"))
- vim.keymap.set({ "n", "i" }, "<leader>Gn", "<cmd>gpchatnew tabnew<cr>", keymapOptions("New chat tabnew"))
-
- vim.keymap.set("v", "<leader>Gh", ":<C-u>'<,'>GpChatNew split<cr>", keymapOptions("Chat new split"))
- vim.keymap.set("v", "<leader>Gv", ":<C-u>'<,'>GpChatNew vsplit<cr>", keymapOptions("Chat new vsplit"))
- vim.keymap.set("v", "<leader>Gn", ":<C-u>'<,'>GpChatNew tabnew<cr>", keymapOptions("Chat new tabnew"))
-
- -- Prompt commands
- vim.keymap.set({ "n", "i" }, "<leader>Gw", "<cmd>GpRewrite<cr>", keymapOptions("Inline rewrite"))
- vim.keymap.set({ "n", "i" }, "<leader>Gr", "<cmd>GpCodeReview<cr>", keymapOptions("Code review"))
- vim.keymap.set({ "n", "i" }, "<leader>G]", "<cmd>GpAppend<cr>", keymapOptions("Append (after)"))
- vim.keymap.set({ "n", "i" }, "<leader>G[", "<cmd>GpPrepend<cr>", keymapOptions("Prepend (before)"))
-
- vim.keymap.set("v", "<leader>Gw", ":<C-u>'<,'>GpRewrite<cr>", keymapOptions("Rewrite"))
- vim.keymap.set("v", "<leader>Gr", ":<C-u>'<,'>GpCodeReview<cr>", keymapOptions("Code review"))
- vim.keymap.set("v", "<leader>G]", ":<C-u>'<,'>GpAppend<cr>", keymapOptions("Append (after)"))
- vim.keymap.set("v", "<leader>G[", ":<C-u>'<,'>GpPrepend<cr>", keymapOptions("Prepend (before)"))
- vim.keymap.set("v", "<leader>Gi", ":<C-u>'<,'>GpImplement<cr>", keymapOptions("Implement selection"))
-
- vim.keymap.set({ "n", "i" }, "<leader>Ggp", "<cmd>GpPopup<cr>", keymapOptions("Popup"))
- vim.keymap.set({ "n", "i" }, "<leader>Gge", "<cmd>GpEnew<cr>", keymapOptions("GpEnew"))
- vim.keymap.set({ "n", "i" }, "<leader>Ggc", "<cmd>GpNew<cr>", keymapOptions("GpNew"))
- vim.keymap.set({ "n", "i" }, "<leader>Ggv", "<cmd>GpVnew<cr>", keymapOptions("GpVnew"))
- vim.keymap.set({ "n", "i" }, "<leader>Ggn", "<cmd>GpTabnew<cr>", keymapOptions("GpTabnew"))
-
- vim.keymap.set("v", "<leader>Ggp", ":<C-u>'<,'>GpPopup<cr>", keymapOptions("Popup"))
- vim.keymap.set("v", "<leader>Gge", ":<C-u>'<,'>GpEnew<cr>", keymapOptions("GpEnew"))
- vim.keymap.set("v", "<leader>Ggc", ":<C-u>'<,'>GpNew<cr>", keymapOptions("GpNew"))
- vim.keymap.set("v", "<leader>Ggv", ":<C-u>'<,'>GpVnew<cr>", keymapOptions("GpVnew"))
- vim.keymap.set("v", "<leader>Ggn", ":<C-u>'<,'>GpTabnew<cr>", keymapOptions("GpTabnew"))
-
- vim.keymap.set({ "n", "i" }, "<leader>Gx", "<cmd>GpContext<cr>", keymapOptions("Toggle context"))
- vim.keymap.set("v", "<leader>Gx", ":<C-u>'<,'>GpContext<cr>", keymapOptions("Toggle context"))
-
- vim.keymap.set({ "n", "i", "v", "x" }, "<leader>Ggs", "<cmd>GpStop<cr>", keymapOptions("Stop"))
- vim.keymap.set({ "n", "i", "v", "x" }, "<leader>Gg]", "<cmd>GpNextAgent<cr>", keymapOptions("Next agent"))
-
- -- optional Whisper commands with prefix <C-g>w
- vim.keymap.set({ "n", "i" }, "<leader>GWw", "<cmd>GpWhisper<cr>", keymapOptions("Whisper"))
- vim.keymap.set("v", "<leader>GWw", ":<C-u>'<,'>GpWhisper<cr>", keymapOptions("Whisper"))
-
- vim.keymap.set({ "n", "i" }, "<leader>GWr", "<cmd>GpWhisperRewrite<cr>", keymapOptions("Inline rewrite"))
- vim.keymap.set({ "n", "i" }, "<leader>GW]", "<cmd>GpWhisperAppend<cr>", keymapOptions("Append (after)"))
- vim.keymap.set({ "n", "i" }, "<leader>GW[", "<cmd>GpWhisperPrepend<cr>", keymapOptions("Prepend (before) "))
-
- vim.keymap.set("v", "<leader>GWr", ":<C-u>'<,'>GpWhisperRewrite<cr>", keymapOptions("Rewrite"))
- vim.keymap.set("v", "<leader>GW]", ":<C-u>'<,'>GpWhisperAppend<cr>", keymapOptions("Append (after)"))
- vim.keymap.set("v", "<leader>GW[", ":<C-u>'<,'>GpWhisperPrepend<cr>", keymapOptions("Prepend (before)"))
-
- vim.keymap.set({ "n", "i" }, "<leader>GWp", "<cmd>GpWhisperPopup<cr>", keymapOptions("Popup"))
- vim.keymap.set({ "n", "i" }, "<leader>GWe", "<cmd>GpWhisperEnew<cr>", keymapOptions("Enew"))
- vim.keymap.set({ "n", "i" }, "<leader>GWc", "<cmd>GpWhisperNew<cr>", keymapOptions("New"))
- vim.keymap.set({ "n", "i" }, "<leader>GWv", "<cmd>GpWhisperVnew<cr>", keymapOptions("Vnew"))
- vim.keymap.set({ "n", "i" }, "<leader>GWn", "<cmd>GpWhisperTabnew<cr>", keymapOptions("Tabnew"))
-
- vim.keymap.set("v", "<leader>GWp", ":<C-u>'<,'>GpWhisperPopup<cr>", keymapOptions("Popup"))
- vim.keymap.set("v", "<leader>GWe", ":<C-u>'<,'>GpWhisperEnew<cr>", keymapOptions("Enew"))
- vim.keymap.set("v", "<leader>GWc", ":<C-u>'<,'>GpWhisperNew<cr>", keymapOptions("New"))
- vim.keymap.set("v", "<leader>GWv", ":<C-u>'<,'>GpWhisperVnew<cr>", keymapOptions("Vnew"))
- vim.keymap.set("v", "<leader>GWn", ":<C-u>'<,'>GpWhisperTabnew<cr>", keymapOptions("Tabnew"))
- end,
- },
- -- {
- -- "zbirenbaum/copilot.lua",
- -- cmd = "Copilot",
- -- build = ":Copilot auth",
- -- event = "InsertEnter",
- -- dependencies = {
- -- "hrsh7th/nvim-cmp",
- -- { "AndreM222/copilot-lualine" },
- -- {
- -- "zbirenbaum/copilot-cmp",
- -- config = function()
- -- require("copilot_cmp").setup()
- -- end,
- -- },
- -- },
- -- config = function()
- -- require("copilot").setup({
- -- panel = {
- -- enabled = true,
- -- auto_refresh = true,
- -- keymap = {
- -- jump_prev = "[a",
- -- jump_next = "]a",
- -- accept = "<CR>",
- -- refresh = "gr",
- -- open = "<C-CR>",
- -- },
- -- layout = {
- -- position = "right", -- | top | left | right
- -- ratio = 0.4,
- -- },
- -- },
- -- suggestion = {
- -- enabled = true,
- -- auto_trigger = true,
- -- hide_during_completion = true,
- -- debounce = 75,
- -- keymap = {
- -- accept = "<C-q>",
- -- accept_word = false,
- -- accept_line = false,
- -- next = "<C-n>",
- -- prev = "<C-p>",
- -- dismiss = "<C-\\>",
- -- },
- -- },
- -- filetypes = {
- -- cvs = false,
- -- gitcommit = false,
- -- gitrebase = false,
- -- help = true,
- -- hgcommit = false,
- -- markdown = true,
- -- sh = function()
- -- if string.match(vim.fs.basename(vim.api.nvim_buf_get_name(0)), "^%.env.*") then
- -- -- disable for .env files
- -- return false
- -- end
- -- return true
- -- end,
- -- svn = false,
- -- yaml = false,
- -- ["."] = false,
- -- ["*"] = true,
- -- },
- -- copilot_node_command = "node", -- Node.js version must be > 18.x
- -- server_opts_overrides = {},
- -- })
- --
- -- local cmp = require("cmp")
- -- cmp.event:on("menu_opened", function()
- -- vim.b.copilot_suggestion_hidden = true
- -- end)
- --
- -- cmp.event:on("menu_closed", function()
- -- vim.b.copilot_suggestion_hidden = false
- -- end)
- -- end,
- --
- -- vim.keymap.set("n", "<leader>ct", function()
- -- require("copilot.suggestion").toggle_auto_trigger()
- -- end, { noremap = true, silent = true, desc = "Toggle copilot" }),
- -- },
-}