migrating the cmp brain
This commit is contained in:
@@ -1,34 +0,0 @@
|
||||
local logger = require("codetyper.support.logger")
|
||||
|
||||
--- Extract the prompt type from content
|
||||
---@param content string Prompt content
|
||||
---@return "refactor" | "add" | "document" | "explain" | "generic" Prompt type
|
||||
local function detect_prompt_type(content)
|
||||
logger.func_entry("parser", "detect_prompt_type", { content_preview = content:sub(1, 50) })
|
||||
|
||||
local lower = content:lower()
|
||||
|
||||
if lower:match("refactor") then
|
||||
logger.debug("parser", "detect_prompt_type: detected 'refactor'")
|
||||
logger.func_exit("parser", "detect_prompt_type", "refactor")
|
||||
return "refactor"
|
||||
elseif lower:match("add") or lower:match("create") or lower:match("implement") then
|
||||
logger.debug("parser", "detect_prompt_type: detected 'add'")
|
||||
logger.func_exit("parser", "detect_prompt_type", "add")
|
||||
return "add"
|
||||
elseif lower:match("document") or lower:match("comment") or lower:match("jsdoc") then
|
||||
logger.debug("parser", "detect_prompt_type: detected 'document'")
|
||||
logger.func_exit("parser", "detect_prompt_type", "document")
|
||||
return "document"
|
||||
elseif lower:match("explain") or lower:match("what") or lower:match("how") then
|
||||
logger.debug("parser", "detect_prompt_type: detected 'explain'")
|
||||
logger.func_exit("parser", "detect_prompt_type", "explain")
|
||||
return "explain"
|
||||
end
|
||||
|
||||
logger.debug("parser", "detect_prompt_type: detected 'generic'")
|
||||
logger.func_exit("parser", "detect_prompt_type", "generic")
|
||||
return "generic"
|
||||
end
|
||||
|
||||
return detect_prompt_type
|
||||
@@ -1,56 +0,0 @@
|
||||
local logger = require("codetyper.support.logger")
|
||||
local find_prompts_in_buffer = require("codetyper.parser.find_prompts_in_buffer")
|
||||
|
||||
--- Get prompt at cursor position
|
||||
---@param bufnr? number Buffer number (default: current)
|
||||
---@return CoderPrompt|nil Prompt at cursor or nil
|
||||
local function get_prompt_at_cursor(bufnr)
|
||||
bufnr = bufnr or vim.api.nvim_get_current_buf()
|
||||
local cursor = vim.api.nvim_win_get_cursor(0)
|
||||
local line = cursor[1]
|
||||
local col = cursor[2] + 1 -- Convert to 1-indexed
|
||||
|
||||
logger.func_entry("parser", "get_prompt_at_cursor", {
|
||||
bufnr = bufnr,
|
||||
line = line,
|
||||
col = col,
|
||||
})
|
||||
|
||||
local prompts = find_prompts_in_buffer(bufnr)
|
||||
|
||||
logger.debug("parser", "get_prompt_at_cursor: checking " .. #prompts .. " prompts")
|
||||
|
||||
for i, prompt in ipairs(prompts) do
|
||||
logger.debug(
|
||||
"parser",
|
||||
"get_prompt_at_cursor: checking prompt " .. i .. " (lines " .. prompt.start_line .. "-" .. prompt.end_line .. ")"
|
||||
)
|
||||
if line >= prompt.start_line and line <= prompt.end_line then
|
||||
logger.debug("parser", "get_prompt_at_cursor: cursor line " .. line .. " is within prompt line range")
|
||||
if line == prompt.start_line and col < prompt.start_col then
|
||||
logger.debug(
|
||||
"parser",
|
||||
"get_prompt_at_cursor: cursor col " .. col .. " is before prompt start_col " .. prompt.start_col
|
||||
)
|
||||
goto continue
|
||||
end
|
||||
if line == prompt.end_line and col > prompt.end_col then
|
||||
logger.debug(
|
||||
"parser",
|
||||
"get_prompt_at_cursor: cursor col " .. col .. " is after prompt end_col " .. prompt.end_col
|
||||
)
|
||||
goto continue
|
||||
end
|
||||
logger.debug("parser", "get_prompt_at_cursor: found prompt at cursor")
|
||||
logger.func_exit("parser", "get_prompt_at_cursor", "prompt found")
|
||||
return prompt
|
||||
end
|
||||
::continue::
|
||||
end
|
||||
|
||||
logger.debug("parser", "get_prompt_at_cursor: no prompt found at cursor")
|
||||
logger.func_exit("parser", "get_prompt_at_cursor", nil)
|
||||
return nil
|
||||
end
|
||||
|
||||
return get_prompt_at_cursor
|
||||
@@ -1,34 +0,0 @@
|
||||
local utils = require("codetyper.support.utils")
|
||||
local logger = require("codetyper.support.logger")
|
||||
local get_config = require("codetyper.utils.get_config").get_config
|
||||
|
||||
--- Check if buffer has any unclosed prompts
|
||||
---@param bufnr? number Buffer number (default: current)
|
||||
---@return boolean
|
||||
local function has_unclosed_prompts(bufnr)
|
||||
bufnr = bufnr or vim.api.nvim_get_current_buf()
|
||||
|
||||
logger.func_entry("parser", "has_unclosed_prompts", { bufnr = bufnr })
|
||||
|
||||
local lines = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false)
|
||||
local content = table.concat(lines, "\n")
|
||||
|
||||
local cfg = get_config()
|
||||
local escaped_open = utils.escape_pattern(cfg.patterns.open_tag)
|
||||
local escaped_close = utils.escape_pattern(cfg.patterns.close_tag)
|
||||
|
||||
local _, open_count = content:gsub(escaped_open, "")
|
||||
local _, close_count = content:gsub(escaped_close, "")
|
||||
|
||||
local has_unclosed = open_count > close_count
|
||||
|
||||
logger.debug(
|
||||
"parser",
|
||||
"has_unclosed_prompts: open=" .. open_count .. ", close=" .. close_count .. ", unclosed=" .. tostring(has_unclosed)
|
||||
)
|
||||
logger.func_exit("parser", "has_unclosed_prompts", has_unclosed)
|
||||
|
||||
return has_unclosed
|
||||
end
|
||||
|
||||
return has_unclosed_prompts
|
||||
Reference in New Issue
Block a user