Fixing drop bar
This commit is contained in:
125
lua/cargdev/plugins/codetyper.lua
Normal file
125
lua/cargdev/plugins/codetyper.lua
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- CODETYPER.NVIM: AI-powered coding assistant plugin
|
||||||
|
-- ============================================================================
|
||||||
|
-- A local development plugin that provides AI-assisted coding capabilities
|
||||||
|
-- using various LLM providers (Ollama, Claude, OpenAI, Gemini, Copilot).
|
||||||
|
-- Features include: inline code transformation with /@ @/ tags, Ask panel
|
||||||
|
-- for interactive queries, Agent panel for autonomous coding tasks,
|
||||||
|
-- Tree-sitter integration for scope detection, and diff review.
|
||||||
|
--
|
||||||
|
-- Key keymaps:
|
||||||
|
-- <leader>co - Open Coder view <leader>ca - Open Ask panel
|
||||||
|
-- <leader>ct - Toggle Coder view <leader>cg - Open Agent panel
|
||||||
|
-- <leader>cp - Process prompt <leader>cd - Open Diff Review
|
||||||
|
-- <leader>ctt - Transform tag at cursor (also works in visual mode)
|
||||||
|
-- ============================================================================
|
||||||
|
|
||||||
|
-- Get local config (loaded in core/init.lua)
|
||||||
|
local local_cfg = vim.g.cargdev_local or {}
|
||||||
|
|
||||||
|
-- Skip plugin if local config is missing required values
|
||||||
|
if not local_cfg.CODE_TYPER_DIR then
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
-- Codetyper.nvim - AI-powered coding partner
|
||||||
|
-- Local development version
|
||||||
|
dir = local_cfg.CODE_TYPER_DIR,
|
||||||
|
name = "codetyper.nvim",
|
||||||
|
lazy = false, -- Load on startup to create .coder folder
|
||||||
|
priority = 100, -- Load early
|
||||||
|
dependencies = {
|
||||||
|
"nvim-lua/plenary.nvim", -- Required: async utilities
|
||||||
|
-- "nvim-treesitter/nvim-treesitter", -- Required: scope detection via Tree-sitter
|
||||||
|
-- "nvim-treesitter/nvim-treesitter-textobjects", -- Optional: better text object support
|
||||||
|
"MunifTanjim/nui.nvim", -- Optional: UI components
|
||||||
|
},
|
||||||
|
event = {
|
||||||
|
"BufReadPre *.coder.*",
|
||||||
|
"BufNewFile *.coder.*",
|
||||||
|
},
|
||||||
|
cmd = {
|
||||||
|
"Coder",
|
||||||
|
"CoderOpen",
|
||||||
|
"CoderClose",
|
||||||
|
"CoderToggle",
|
||||||
|
"CoderProcess",
|
||||||
|
"CoderTree",
|
||||||
|
"CoderTreeView",
|
||||||
|
-- Ask commands
|
||||||
|
"CoderAsk",
|
||||||
|
"CoderAskToggle",
|
||||||
|
"CoderAskClear",
|
||||||
|
-- Agent commands
|
||||||
|
"CoderAgent",
|
||||||
|
"CoderAgentToggle",
|
||||||
|
"CoderAgentStop",
|
||||||
|
"CoderMode",
|
||||||
|
},
|
||||||
|
keys = {
|
||||||
|
-- Coder view commands
|
||||||
|
{ "<leader>co", "<cmd>Coder open<cr>", desc = "Coder: Open view" },
|
||||||
|
{ "<leader>cC", "<cmd>Coder close<cr>", desc = "Coder: Close view" },
|
||||||
|
{ "<leader>ct", "<cmd>Coder toggle<cr>", desc = "Coder: Toggle view" },
|
||||||
|
{ "<leader>cp", "<cmd>Coder process<cr>", desc = "Coder: Process prompt" },
|
||||||
|
{ "<leader>cs", "<cmd>Coder status<cr>", desc = "Coder: Show status" },
|
||||||
|
{ "<leader>cf", "<cmd>Coder focus<cr>", desc = "Coder: Switch focus" },
|
||||||
|
{ "<leader>cv", "<cmd>Coder tree-view<cr>", desc = "Coder: View tree" },
|
||||||
|
{ "<leader>cr", "<cmd>Coder tree<cr>", desc = "Coder: Refresh tree" },
|
||||||
|
-- Ask panel commands
|
||||||
|
{ "<leader>ca", "<cmd>Coder ask<cr>", desc = "Coder: Open Ask panel" },
|
||||||
|
{ "<leader>cA", "<cmd>Coder ask-toggle<cr>", desc = "Coder: Toggle Ask panel" },
|
||||||
|
{ "<leader>cx", "<cmd>Coder ask-clear<cr>", desc = "Coder: Clear Ask history" },
|
||||||
|
-- Agent panel commands
|
||||||
|
{ "<leader>cg", "<cmd>Coder agent<cr>", desc = "Coder: Open Agent panel" },
|
||||||
|
{ "<leader>cG", "<cmd>Coder agent-toggle<cr>", desc = "Coder: Toggle Agent panel" },
|
||||||
|
{ "<leader>cS", "<cmd>Coder agent-stop<cr>", desc = "Coder: Stop Agent" },
|
||||||
|
{ "<leader>cd", "<cmd>CoderDiffReview<cr>", desc = "Coder: Open Diff Review" },
|
||||||
|
-- Transform commands (inline /@ @/ replacement)
|
||||||
|
{ "<leader>ctt", mode = "n", desc = "Coder: Transform tag at cursor" },
|
||||||
|
{ "<leader>ctt", mode = "v", desc = "Coder: Transform selected tags" },
|
||||||
|
{ "<leader>ctT", "<cmd>Coder transform<cr>", desc = "Coder: Transform all tags" },
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
require("codetyper").setup({
|
||||||
|
llm = {
|
||||||
|
-- Available providers: "ollama", "claude", "openai", "gemini", "copilot"
|
||||||
|
provider = "copilot", -- Using GitHub Copilot
|
||||||
|
|
||||||
|
-- Ollama (local LLM)
|
||||||
|
ollama = {
|
||||||
|
host = "http://localhost:11434",
|
||||||
|
model = "deepseek-coder:6.7b",
|
||||||
|
-- model = "codellama:7b",
|
||||||
|
-- model = "qwen2.5-coder:7b",
|
||||||
|
},
|
||||||
|
|
||||||
|
-- GitHub Copilot (uses OAuth from copilot.vim/copilot.lua)
|
||||||
|
copilot = {
|
||||||
|
model = "gpt-4o", -- or "gpt-4", "gpt-3.5-turbo"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
window = {
|
||||||
|
width = 0.25, -- 1/4 of window
|
||||||
|
position = "left",
|
||||||
|
border = "rounded",
|
||||||
|
},
|
||||||
|
patterns = {
|
||||||
|
open_tag = "/@",
|
||||||
|
close_tag = "@/",
|
||||||
|
file_pattern = "*.coder.*",
|
||||||
|
},
|
||||||
|
auto_gitignore = true,
|
||||||
|
auto_open_ask = false, -- Don't auto-open Ask panel on startup
|
||||||
|
scheduler = {
|
||||||
|
enabled = true,
|
||||||
|
ollama_scout = false, -- Disabled since using Copilot directly
|
||||||
|
escalation_threshold = 0.7,
|
||||||
|
max_concurrent = 2,
|
||||||
|
completion_delay_ms = 100, -- Delay before checking completion visibility
|
||||||
|
apply_delay_ms = 2000, -- Wait 2 seconds before applying code
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
}
|
||||||
@@ -28,7 +28,7 @@ return {
|
|||||||
},
|
},
|
||||||
suggestion = {
|
suggestion = {
|
||||||
enabled = true,
|
enabled = true,
|
||||||
auto_trigger = true,
|
auto_trigger = false,
|
||||||
debounce = 75,
|
debounce = 75,
|
||||||
keymap = {
|
keymap = {
|
||||||
accept = "<C-l>",
|
accept = "<C-l>",
|
||||||
@@ -98,18 +98,22 @@ return {
|
|||||||
},
|
},
|
||||||
keys = {
|
keys = {
|
||||||
{ "<leader>cc", "<cmd>CopilotChatToggle<cr>", desc = "CopilotChat: Toggle chat window" },
|
{ "<leader>cc", "<cmd>CopilotChatToggle<cr>", desc = "CopilotChat: Toggle chat window" },
|
||||||
{ "<leader>cq", function()
|
{
|
||||||
|
"<leader>cq",
|
||||||
|
function()
|
||||||
local input = vim.fn.input("Quick Chat: ")
|
local input = vim.fn.input("Quick Chat: ")
|
||||||
if input ~= "" then
|
if input ~= "" then
|
||||||
require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer })
|
require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer })
|
||||||
end
|
end
|
||||||
end, desc = "CopilotChat: Quick chat (whole buffer)" },
|
end,
|
||||||
|
desc = "CopilotChat: Quick chat (whole buffer)",
|
||||||
|
},
|
||||||
{ "<leader>ce", "<cmd>CopilotChatExplain<cr>", mode = { "n", "v" }, desc = "CopilotChat: Explain code" },
|
{ "<leader>ce", "<cmd>CopilotChatExplain<cr>", mode = { "n", "v" }, desc = "CopilotChat: Explain code" },
|
||||||
{ "<leader>cr", "<cmd>CopilotChatReview<cr>", mode = { "n", "v" }, desc = "CopilotChat: Review code" },
|
{ "<leader>cr", "<cmd>CopilotChatReview<cr>", mode = { "n", "v" }, desc = "CopilotChat: Review code" },
|
||||||
{ "<leader>cf", "<cmd>CopilotChatFix<cr>", mode = { "n", "v" }, desc = "CopilotChat: Fix code" },
|
{ "<leader>cf", "<cmd>CopilotChatFix<cr>", mode = { "n", "v" }, desc = "CopilotChat: Fix code" },
|
||||||
{ "<leader>co", "<cmd>CopilotChatOptimize<cr>", mode = { "n", "v" }, desc = "CopilotChat: Optimize code" },
|
{ "<leader>co", "<cmd>CopilotChatOptimize<cr>", mode = { "n", "v" }, desc = "CopilotChat: Optimize code" },
|
||||||
{ "<leader>cd", "<cmd>CopilotChatDocs<cr>", mode = { "n", "v" }, desc = "CopilotChat: Generate docs" },
|
{ "<leader>cd", "<cmd>CopilotChatDocs<cr>", mode = { "n", "v" }, desc = "CopilotChat: Generate docs" },
|
||||||
{ "<leader>ct", "<cmd>CopilotChatTests<cr>", mode = { "n", "v" }, desc = "CopilotChat: Generate tests" },
|
{ "<leader>ctg", "<cmd>CopilotChatTests<cr>", mode = { "n", "v" }, desc = "CopilotChat: Generate tests" },
|
||||||
{ "<leader>cm", "<cmd>CopilotChatModels<cr>", desc = "CopilotChat: Select model" },
|
{ "<leader>cm", "<cmd>CopilotChatModels<cr>", desc = "CopilotChat: Select model" },
|
||||||
},
|
},
|
||||||
config = function()
|
config = function()
|
||||||
|
|||||||
49
lua/cargdev/plugins/fzf-lua.lua
Normal file
49
lua/cargdev/plugins/fzf-lua.lua
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- FZF-LUA: Fuzzy finder with LSP integration
|
||||||
|
-- ============================================================================
|
||||||
|
-- High-performance fuzzy finder written in Lua. Provides fast file search,
|
||||||
|
-- grep, LSP navigation (definitions, references, implementations), git operations,
|
||||||
|
-- and more. Replaces Telescope for better performance and native fzf feel.
|
||||||
|
-- ============================================================================
|
||||||
|
return {
|
||||||
|
"ibhagwan/fzf-lua",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
cmd = "FzfLua",
|
||||||
|
keys = {
|
||||||
|
{ "<leader>ff", "<cmd>FzfLua files<cr>", desc = "Find files" },
|
||||||
|
{ "<leader>fg", "<cmd>FzfLua live_grep<cr>", desc = "Live grep" },
|
||||||
|
{ "<leader>fb", "<cmd>FzfLua buffers<cr>", desc = "Find buffers" },
|
||||||
|
{ "<leader>fh", "<cmd>FzfLua helptags<cr>", desc = "Find help" },
|
||||||
|
{ "<leader>fr", "<cmd>FzfLua oldfiles<cr>", desc = "Recent files" },
|
||||||
|
{ "<leader>fc", "<cmd>FzfLua commands<cr>", desc = "Find commands" },
|
||||||
|
{ "<leader>fk", "<cmd>FzfLua keymaps<cr>", desc = "Find keymaps" },
|
||||||
|
},
|
||||||
|
opts = {
|
||||||
|
"default",
|
||||||
|
winopts = {
|
||||||
|
height = 0.85,
|
||||||
|
width = 0.80,
|
||||||
|
preview = {
|
||||||
|
horizontal = "right:50%",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
keymap = {
|
||||||
|
builtin = {
|
||||||
|
["<C-f>"] = "toggle-fullscreen",
|
||||||
|
["<C-r>"] = "toggle-preview-wrap",
|
||||||
|
["<C-p>"] = "toggle-preview",
|
||||||
|
["<C-d>"] = "preview-page-down",
|
||||||
|
["<C-u>"] = "preview-page-up",
|
||||||
|
},
|
||||||
|
fzf = {
|
||||||
|
["ctrl-a"] = "toggle-all",
|
||||||
|
["ctrl-d"] = "preview-page-down",
|
||||||
|
["ctrl-u"] = "preview-page-up",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
fzf_opts = {
|
||||||
|
["--layout"] = "reverse",
|
||||||
|
["--info"] = "inline",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
-- Powerful find and replace plugin with live preview and regex support.
|
-- Powerful find and replace plugin with live preview and regex support.
|
||||||
-- Provides project-wide search/replace with ripgrep backend.
|
-- Provides project-wide search/replace with ripgrep backend.
|
||||||
-- Keymaps: <leader>sr for search, <leader>sR for current word search.
|
-- Keymaps: <leader>sr for search, <leader>[sR for current word search.
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -47,17 +47,17 @@ return {
|
|||||||
windowCreationCommand = "vsplit",
|
windowCreationCommand = "vsplit",
|
||||||
transitionDuration = 80,
|
transitionDuration = 80,
|
||||||
keymaps = {
|
keymaps = {
|
||||||
replace = { n = "<localleader>r" },
|
replace = { n = "<leader>[r" },
|
||||||
qflist = { n = "<localleader>q" },
|
qflist = { n = "<leader>[q" },
|
||||||
syncLocations = { n = "<localleader>s" },
|
syncLocations = { n = "<leader>[s" },
|
||||||
syncLine = { n = "<localleader>l" },
|
syncLine = { n = "<leader>[l" },
|
||||||
close = { n = "q" },
|
close = { n = "q" },
|
||||||
historyOpen = { n = "<localleader>t" },
|
historyOpen = { n = "<leader>[t" },
|
||||||
historyAdd = { n = "<localleader>a" },
|
historyAdd = { n = "<leader>[a" },
|
||||||
refresh = { n = "<localleader>f" },
|
refresh = { n = "<leader>[f" },
|
||||||
gotoLocation = { n = "<enter>" },
|
gotoLocation = { n = "<enter>[" },
|
||||||
pickHistoryEntry = { n = "<enter>" },
|
pickHistoryEntry = { n = "<enter>[" },
|
||||||
abort = { n = "<localleader>b" },
|
Abort = { n = "<leader>[b" },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ return {
|
|||||||
"graphql",
|
"graphql",
|
||||||
"html",
|
"html",
|
||||||
"lua_ls",
|
"lua_ls",
|
||||||
|
"php",
|
||||||
"prismals",
|
"prismals",
|
||||||
"pyright",
|
"pyright",
|
||||||
"svelte",
|
"svelte",
|
||||||
@@ -156,6 +157,7 @@ return {
|
|||||||
prismals = {
|
prismals = {
|
||||||
filetypes = { "prisma" },
|
filetypes = { "prisma" },
|
||||||
},
|
},
|
||||||
|
php_ls = {},
|
||||||
pyright = {
|
pyright = {
|
||||||
settings = {
|
settings = {
|
||||||
python = {
|
python = {
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ return {
|
|||||||
"html",
|
"html",
|
||||||
"jdtls",
|
"jdtls",
|
||||||
"lua_ls",
|
"lua_ls",
|
||||||
|
"php",
|
||||||
"prismals",
|
"prismals",
|
||||||
"pyright",
|
"pyright",
|
||||||
"svelte",
|
"svelte",
|
||||||
|
|||||||
Reference in New Issue
Block a user