From 21ebd9083027ec2bdd0007809dbfd32db31cdb54 Mon Sep 17 00:00:00 2001 From: Salar Rahmanian Date: Sun, 2 Jun 2024 11:16:46 -0700 Subject: [PATCH] add gen.nvim --- lua/plugins/gen.lua | 48 +++++++++++++++++++++++++++++++++++++++ lua/plugins/telescope.lua | 2 ++ 2 files changed, 50 insertions(+) create mode 100644 lua/plugins/gen.lua diff --git a/lua/plugins/gen.lua b/lua/plugins/gen.lua new file mode 100644 index 0000000..6659e80 --- /dev/null +++ b/lua/plugins/gen.lua @@ -0,0 +1,48 @@ +return { + "David-Kunz/gen.nvim", + lazy = false, + keys = { + { "ai", ":Gen", mode = { "n", "v" }, desc = "AI tools using Ollama" }, + { "aa", ":Gen Ask", mode = { "n", "v" }, desc = "[A]I [A]sk" }, + { + "am", + function() + require("gen").select_model() + end, + mode = { "n", "v" }, + desc = "Select [A]I [m]odel", + }, + }, + config = function() + require("gen").setup({ + ollama = { + model = "codellama", + host = "localhost", + port = "11434", + quit_map = "q", + retry_map = "", + init = function(options) + pcall(io.popen, "ollama serve > /dev/null 2>&1 &") + end, + command = function(options) + local body = { model = options.model, stream = true } + return "curl --silent --no-buffer -X POST http://" + .. options.host + .. ":" + .. options.port + .. "/api/chat -d $body" + end, + display_mode = "split", -- "split" or "float" + show_prompt = true, + show_model = true, + no_auto_close = false, + debug = false, + }, + }) + require("gen").prompts["Fix_Code"] = { + prompt = "Fix the following code. Only ouput the result in format ```$filetype\n...\n```:\n```$filetype\n$text\n```", + replace = true, + extract = "```$filetype\n(.-)```", + } + end, +} diff --git a/lua/plugins/telescope.lua b/lua/plugins/telescope.lua index adb9354..c460410 100644 --- a/lua/plugins/telescope.lua +++ b/lua/plugins/telescope.lua @@ -5,6 +5,7 @@ return { "nvim-lua/plenary.nvim", { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, "debugloop/telescope-undo.nvim", + "nvim-telescope/telescope-ui-select.nvim", }, config = function() require("telescope").setup({ @@ -21,6 +22,7 @@ return { -- Enable telescope fzf native, if installed pcall(require("telescope").load_extension, "fzf") pcall(require("telescope").load_extension, "scaladex") + pcall(require("telescope").load_extension, "ui-select") pcall(require("telescope").load_extension, "undo") -- See `:help telescope.builtin`