40 lines
1.4 KiB
Lua
40 lines
1.4 KiB
Lua
local M = {}
|
|
|
|
local context = require('chatgpt_nvim.context')
|
|
|
|
function M.run_chatgpt_command()
|
|
vim.schedule(function()
|
|
-- Prompt the user for input
|
|
local user_input = vim.fn.input("Message for O1 Model: ")
|
|
if user_input == "" then
|
|
print("No input provided.")
|
|
return
|
|
end
|
|
|
|
local project_structure = context.get_project_structure()
|
|
local current_file_content, current_file_path = context.get_current_file()
|
|
local readme_content = context.get_readme_content()
|
|
|
|
local sections = {
|
|
"User Message:\n" .. user_input,
|
|
"\nProject Structure:\n" .. project_structure,
|
|
"\nCurrent File:\nPath: " .. current_file_path .. "\n" .. current_file_content,
|
|
"\nInstructions:\nPlease return code blocks for the changes. Each code block must start with the file path on the first line, followed by the code.",
|
|
"Do not comment out the file path. Just plain text.",
|
|
"If multiple files are needed, return multiple code blocks each starting with a file path."
|
|
}
|
|
|
|
if readme_content then
|
|
table.insert(sections, "\nREADME Content:\n" .. readme_content)
|
|
end
|
|
|
|
local prompt = table.concat(sections, "\n")
|
|
|
|
-- Copy prompt to clipboard so user can paste it into the website form.
|
|
vim.fn.setreg('+', prompt)
|
|
print("Prompt (including README if found) copied to clipboard! Paste it into the website form.")
|
|
end)
|
|
end
|
|
|
|
return M
|