Fixing drop bar

This commit is contained in:
2026-03-05 17:02:29 -05:00
parent 017a82dc61
commit a75f899500
6 changed files with 196 additions and 15 deletions

View 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,
}

View File

@@ -28,7 +28,7 @@ return {
},
suggestion = {
enabled = true,
auto_trigger = true,
auto_trigger = false,
debounce = 75,
keymap = {
accept = "<C-l>",
@@ -98,18 +98,22 @@ return {
},
keys = {
{ "<leader>cc", "<cmd>CopilotChatToggle<cr>", desc = "CopilotChat: Toggle chat window" },
{ "<leader>cq", function()
{
"<leader>cq",
function()
local input = vim.fn.input("Quick Chat: ")
if input ~= "" then
require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer })
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>cr", "<cmd>CopilotChatReview<cr>", mode = { "n", "v" }, desc = "CopilotChat: Review 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>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" },
},
config = function()

View 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",
},
},
}

View File

@@ -3,7 +3,7 @@
-- ============================================================================
-- Powerful find and replace plugin with live preview and regex support.
-- 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 {
@@ -47,17 +47,17 @@ return {
windowCreationCommand = "vsplit",
transitionDuration = 80,
keymaps = {
replace = { n = "<localleader>r" },
qflist = { n = "<localleader>q" },
syncLocations = { n = "<localleader>s" },
syncLine = { n = "<localleader>l" },
replace = { n = "<leader>[r" },
qflist = { n = "<leader>[q" },
syncLocations = { n = "<leader>[s" },
syncLine = { n = "<leader>[l" },
close = { n = "q" },
historyOpen = { n = "<localleader>t" },
historyAdd = { n = "<localleader>a" },
refresh = { n = "<localleader>f" },
gotoLocation = { n = "<enter>" },
pickHistoryEntry = { n = "<enter>" },
abort = { n = "<localleader>b" },
historyOpen = { n = "<leader>[t" },
historyAdd = { n = "<leader>[a" },
refresh = { n = "<leader>[f" },
gotoLocation = { n = "<enter>[" },
pickHistoryEntry = { n = "<enter>[" },
Abort = { n = "<leader>[b" },
},
},
}

View File

@@ -31,6 +31,7 @@ return {
"graphql",
"html",
"lua_ls",
"php",
"prismals",
"pyright",
"svelte",
@@ -156,6 +157,7 @@ return {
prismals = {
filetypes = { "prisma" },
},
php_ls = {},
pyright = {
settings = {
python = {

View File

@@ -45,6 +45,7 @@ return {
"html",
"jdtls",
"lua_ls",
"php",
"prismals",
"pyright",
"svelte",