return {
  "folke/todo-comments.nvim",
  event = "VeryLazy", -- start only after UI is ready
  dependencies = { "nvim-lua/plenary.nvim" },
  opts = {
    signs = true, -- show icons in the sign column
    sign_priority = 10,
    keywords = {
      FIX = { icon = " ", color = "error", alt = { "FIXME", "BUG", "FIXIT", "ISSUE" } },
      TODO = { icon = " ", color = "info", alt = { "todo" } },
      HACK = { icon = " ", color = "warning", alt = { "hack" } },
      WARN = { icon = " ", color = "warning", alt = { "WARNING", "XXX" } },
      PERF = { icon = " ", color = "#e6645a", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
      NOTE = { icon = " ", color = "hint", alt = { "INFO", "NOTE" } },
      TEST = { icon = "⏲ ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } },
    },
    merge_keywords = true, -- merge with default list above
    highlight = {
      before = "", -- "fg" or "bg" or ""
      keyword = "wide", -- "fg", "bg", "wide" or ""
      after = "fg", -- "fg" or "bg" or ""
      pattern = [[.*<(KEYWORDS)\s*:]],
      comments_only = true, -- highlight only inside comments
      max_line_len = 400,
      exclude = {}, -- list of filetypes to exclude
    },
    colors = {
      error = { "DiagnosticError", "#e6645a" },
      warning = { "DiagnosticWarn", "#ff9e64" },
      info = { "DiagnosticInfo", "#7aa2f7" },
      hint = { "DiagnosticHint", "#9ece6a" },
      test = { "#d4ae5b" },
    },
    search = {
      command = "rg",
      args = {
        "--color=never",
        "--no-heading",
        "--with-filename",
        "--line-number",
        "--column",
      },
      pattern = [[\b(KEYWORDS):]], -- ripgrep regex
    },
  },
  keys = {
    -- navigation between todo-comments
    {
      "]t",
      function()
        require("todo-comments").jump_next()
      end,
      desc = "Next todo comment",
    },
    {
      "[t",
      function()
        require("todo-comments").jump_prev()
      end,
      desc = "Previous todo comment",
    },
    -- telescope / fzf-lua live search
    { "<leader>st", "<cmd>TodoTelescope<CR>", desc = "Todo comments (Telescope)" },
    { "<leader>sT", "<cmd>TodoFzfLua<CR>", desc = "Todo comments (FzfLua)" },
    -- Trouble.nvim integration
    { "<leader>xt", "<cmd>TodoTrouble<CR>", desc = "Todo comments (Trouble)" },
  },
}
