| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- local M = {
- {
- "echasnovski/mini.icons",
- init = function()
- package.preload["nvim-web-devicons"] = function()
- require("mini.icons").mock_nvim_web_devicons()
- return package.loaded["nvim-web-devicons"]
- end
- end,
- },
- {
- "echasnovski/mini.ai",
- config = function()
- -- - va) - [V]isually select [A]round [)]paren
- -- - yinq - [Y]ank [I]nside [N]ext [Q]uote
- -- - ci' - [C]hange [I]nside [']quote
- require("mini.ai").setup({ n_lines = 500 })
- end,
- },
- {
- "echasnovski/mini.surround",
- config = function()
- -- Add/delete/replace surroundings (brackets, quotes, etc.)
- --
- -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren
- -- - sd' - [S]urround [D]elete [']quotes
- -- - sr)' - [S]urround [R]eplace [)] [']
- require("mini.surround").setup({})
- end,
- },
- {
- "echasnovski/mini.statusline",
- version = false,
- config = function()
- require("mini.statusline").setup({})
- MiniStatusline.section_codeium = function(args)
- args = args or {}
- local trunc_width = args.trunc_width or 75
- if MiniStatusline.is_truncated(trunc_width) then
- return ""
- end
- local status = vim.fn["codeium#GetStatusString"]()
- if status and status ~= "" then
- local icon = args.icon or " "
- return icon .. status
- end
- return ""
- end
- MiniStatusline.section_worktree = function(args)
- args = args or {}
- local trunc_width = args.trunc_width or 75
- if MiniStatusline.is_truncated(trunc_width) then
- return ""
- end
- -- Get current directory
- local cwd = vim.fn.getcwd()
- -- Run git worktree list to check if we're in a worktree
- local handle = io.popen("git worktree list 2>/dev/null")
- if not handle then
- return ""
- end
- local output = handle:read("*a")
- handle:close()
- for line in output:gmatch("[^\n]+") do
- local path, branch = line:match("^([^%s]+)%s+%[?([^%]]*)")
- if path and path == cwd and branch and branch ~= "" then
- local icon = args.icon or "🌿 "
- return icon .. branch
- end
- end
- return ""
- end
- MiniStatusline.config.content.active = function()
- local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
- local git = MiniStatusline.section_git({ trunc_width = 40 })
- local diff = MiniStatusline.section_diff({ trunc_width = 75 })
- local diagnostics = MiniStatusline.section_diagnostics({ trunc_width = 75 })
- local lsp = MiniStatusline.section_lsp({ trunc_width = 75 })
- local filename = MiniStatusline.section_filename({ trunc_width = 140 })
- local fileinfo = MiniStatusline.section_fileinfo({ trunc_width = 120 })
- local location = MiniStatusline.section_location({ trunc_width = 75 })
- local search = MiniStatusline.section_searchcount({ trunc_width = 75 })
- local codeium = MiniStatusline.section_codeium({ trunc_width = 75 })
- local worktree = MiniStatusline.section_worktree({ trunc_width = 75 })
- return MiniStatusline.combine_groups({
- { hl = mode_hl, strings = { mode } },
- { hl = "MiniStatuslineDevinfo", strings = { git, diff, diagnostics, lsp } },
- "%<", -- Mark general truncate point
- { hl = "MiniStatuslineFilename", strings = { filename } },
- "%=", -- End left alignment
- { hl = "MiniStatuslineFileinfo", strings = { fileinfo, worktree } },
- { hl = mode_hl, strings = { codeium, search, location } },
- })
- end
- end,
- },
- }
- return M
|