return {
  'niuiic/track.nvim',
  dependencies = {
    'niuiic/core.nvim'
  },
  config = function()
    require("track").setup({
      sign = {
        text = "󰍒",
        text_color = "#00ff00",
        priority = 10,
      },
      search = {
        --@param mark track.Mark
        entry_label = function(mark)
          return string.format("[%s] %s | %s:%s", mark.id, mark.desc, mark.file, mark.lnum)
        end,
        --@param marks track.Mark[]
        --@return track.Mark[]
        sort_entry = function(marks)
          return require("core").lua.list.sort(marks, function(prev, cur)
            return prev.id < cur.id
          end)
        end,
      },
    })
    local keys = {
      {
        "mm",
        function()
          require("track").toggle()
        end,
        desc = "toggle mark",
      },
      {
        "mc",
        function()
          require("track").remove()
        end,
        desc = "remove all marks",
      },
      {
        "mj",
        function()
          require("track").jump_to_next()
        end,
        desc = "jump to next mark",
      },
      {
        "mk",
        function()
          require("track").jump_to_prev()
        end,
        desc = "jump to prev mark",
      },
      {
        "me",
        function()
          require("track").edit()
        end,
        desc = "edit mark",
      },
      {
        "<space>om",
        function()
          require("track").search()
        end,
        desc = "search marks",
      },
    }
    for key, value in pairs(keys) do
      vim.keymap.set('n', value[1], value[2], {})
    end
  end
}
