---@type LazyKeysSpec[]
local keys = {
    -- Add visual selection to Quickfix List
    {
        "<leader>q",
        function()
            local item = require("ctx.items").selection()
            require("ctx.utils").highlight(item)
            vim.fn.setqflist({ item }, "a")
        end,
        desc = "Add to Quickfix List",
        mode = { "v" },
    },
    -- Add visual selection to Location List
    {
        "<leader>l",
        function()
            local win = vim.api.nvim_get_current_win()
            local item = require("ctx.items").selection()
            require("ctx.utils").highlight(item)
            vim.fn.setloclist(win, { item }, "a")
        end,
        desc = "Add to Location List",
        mode = { "v" },
    },
    -- Yank Quickfix List to clipboard
    {
        "yq",
        function()
            local md = require("ctx").qflist_to_md()
            vim.fn.setreg("+", md)
            vim.notify("Yanked qflist")
        end,
        desc = "Yank Quickfix List",
        mode = { "n" },
    },
    -- Yank Location List to clipboard
    {
        "yl",
        function()
            local nr = vim.api.nvim_get_current_win()
            local md = require("ctx").loclist_to_md(nr)
            vim.fn.setreg("+", md)
            vim.notify("Yanked loclist")
        end,
        desc = "Yank Location List",
        mode = { "n" },
    },
    -- Quickfix List navigation
    {
        "[q",
        vim.cmd.cprev,
        desc = "Previous Quickfix item",
        mode = { "n" },
    },
    {
        "]q",
        vim.cmd.cnext,
        desc = "Next Quickfix item",
        mode = { "n" },
    },
    {
        "[Q",
        vim.cmd.colder,
        desc = "Older Quickfix list",
        mode = { "n" },
    },
    {
        "]Q",
        vim.cmd.cnewer,
        desc = "Newer Quickfix list",
        mode = { "n" },
    },
    -- Location List navigation
    {
        "[l",
        vim.cmd.lprev,
        desc = "Previous Location item",
        mode = { "n" },
    },
    {
        "]l",
        vim.cmd.lnext,
        desc = "Next Location item",
        mode = { "n" },
    },
    {
        "[L",
        vim.cmd.lolder,
        desc = "Older Location list",
        mode = { "n" },
    },
    {
        "]L",
        vim.cmd.lnewer,
        desc = "Newer Location list",
        mode = { "n" },
    },
    -- TODO: it
    --[[
    -- Send code context to LLM
    {
        "<leader>ai",
        function()
            -- Get context from quickfix list
            local context = require("ctx").qflist_to_md()

            -- Combine with user prompt
            local prompt = "Here's my code:\n\n"
                .. context
                .. "\n\nPlease explain what it does and suggest improvements."

            -- Send to LLM (implementation depends on your LLM plugin)
            require("your_llm_plugin").send_prompt(prompt)
        end,
        desc = "Send Context to LLM",
        mode = { "n" },
    },
    ]]
}

return keys