Public Access
141 lines
4.5 KiB
Lua
141 lines
4.5 KiB
Lua
vim.pack.add({
|
|
{
|
|
src = "https://github.com/echasnovski/mini.nvim",
|
|
name = "mini.nvim",
|
|
branch = "stable",
|
|
},
|
|
})
|
|
|
|
local clue = require("mini.clue")
|
|
local completion = require("mini.completion")
|
|
local icons = require("mini.icons")
|
|
local files = require("mini.files")
|
|
local git = require("mini.git")
|
|
local diff = require("mini.diff")
|
|
local statusline = require("mini.statusline")
|
|
local cmdline = require("mini.cmdline")
|
|
local hipatterns = require("mini.hipatterns")
|
|
local pairs = require("mini.pairs")
|
|
local ai = require("mini.ai")
|
|
local notify = require("mini.notify")
|
|
local surround = require("mini.surround")
|
|
|
|
clue.setup({
|
|
triggers = {
|
|
{ mode = "n", keys = "<leader>" },
|
|
{ mode = "n", keys = "g" },
|
|
{ mode = "n", keys = "<C-w>" },
|
|
{ mode = "n", keys = "z" },
|
|
{ mode = "i", keys = "<C-x>" },
|
|
},
|
|
clues = {
|
|
clue.gen_clues.builtin_completion(),
|
|
clue.gen_clues.g(),
|
|
clue.gen_clues.marks(),
|
|
clue.gen_clues.registers(),
|
|
clue.gen_clues.windows(),
|
|
clue.gen_clues.z(),
|
|
},
|
|
window = {
|
|
delay = 500,
|
|
},
|
|
})
|
|
|
|
icons.setup({})
|
|
|
|
files.setup(require("romanzy.custom.mini_files").setup())
|
|
|
|
git.setup({})
|
|
|
|
diff.setup({})
|
|
local function set_mini_diff_highlights()
|
|
vim.api.nvim_set_hl(0, "MiniDiffSignAdd", { fg = "#9ccf8d", bold = true })
|
|
vim.api.nvim_set_hl(0, "MiniDiffSignChange", { fg = "#f6c177", bold = true })
|
|
vim.api.nvim_set_hl(0, "MiniDiffSignDelete", { fg = "#eb6f92", bold = true })
|
|
vim.api.nvim_set_hl(0, "MiniDiffOverAdd", { fg = "#9ccf8d", bg = "#333c48", bold = true })
|
|
vim.api.nvim_set_hl(0, "MiniDiffOverChange", { fg = "#eb6f92", bg = "#43293a", bold = true })
|
|
vim.api.nvim_set_hl(0, "MiniDiffOverChangeBuf", { fg = "#9ccf8d", bg = "#333c48", bold = true })
|
|
vim.api.nvim_set_hl(0, "MiniDiffOverContext", { fg = "#908caa", bg = "#26233a" })
|
|
vim.api.nvim_set_hl(0, "MiniDiffOverContextBuf", { fg = "#e0def4", bg = "#1f1d2e" })
|
|
vim.api.nvim_set_hl(0, "MiniDiffOverDelete", { fg = "#eb6f92", bg = "#43293a", bold = true })
|
|
end
|
|
set_mini_diff_highlights()
|
|
vim.api.nvim_create_autocmd("ColorScheme", {
|
|
callback = set_mini_diff_highlights,
|
|
})
|
|
|
|
local function statusline_filetype()
|
|
local filetype = vim.bo.filetype
|
|
if filetype == "" then
|
|
return ""
|
|
end
|
|
|
|
local icon = MiniIcons.get("filetype", filetype)
|
|
return icon .. " " .. filetype
|
|
end
|
|
|
|
-- Custom de-cluttered status line output. The default was waaay to noisy
|
|
local function statusline_active()
|
|
local mode, mode_hl = statusline.section_mode({ trunc_width = 120 })
|
|
local git_info = statusline.section_git({ trunc_width = 40 })
|
|
-- local diff_info = statusline.section_diff({ trunc_width = 75 })
|
|
-- local diagnostics = statusline.section_diagnostics({ trunc_width = 75 })
|
|
local lsp = statusline.section_lsp({ trunc_width = 75 })
|
|
local filename = statusline.section_filename({ trunc_width = 140 })
|
|
local fileinfo = statusline_filetype()
|
|
local search = statusline.section_searchcount({ trunc_width = 75 })
|
|
|
|
return statusline.combine_groups({
|
|
{ hl = mode_hl, strings = { mode } },
|
|
{ hl = "MiniStatuslineDevinfo", strings = { git_info, lsp } },
|
|
"%<",
|
|
{ hl = "MiniStatuslineFilename", strings = { filename } },
|
|
"%=",
|
|
{ hl = "MiniStatuslineFileinfo", strings = { fileinfo } },
|
|
{ hl = mode_hl, strings = { search } },
|
|
})
|
|
end
|
|
|
|
statusline.setup({
|
|
use_icons = true,
|
|
content = { active = statusline_active },
|
|
})
|
|
|
|
cmdline.setup({})
|
|
|
|
hipatterns.setup({
|
|
highlighters = {
|
|
fixme = { pattern = "%f[%w]()FIXME()%f[%W]", group = "MiniHipatternsFixme" },
|
|
hack = { pattern = "%f[%w]()HACK()%f[%W]", group = "MiniHipatternsHack" },
|
|
todo = { pattern = "%f[%w]()TODO()%f[%W]", group = "MiniHipatternsTodo" },
|
|
note = { pattern = "%f[%w]()NOTE()%f[%W]", group = "MiniHipatternsNote" },
|
|
hex_color = hipatterns.gen_highlighter.hex_color(),
|
|
},
|
|
})
|
|
|
|
pairs.setup({
|
|
modes = { insert = true, command = true, terminal = false },
|
|
})
|
|
|
|
completion.setup({})
|
|
vim.keymap.set("i", "<CR>", function()
|
|
if vim.fn.complete_info({ "selected" }).selected ~= -1 then
|
|
return "\25"
|
|
end
|
|
|
|
return MiniPairs.cr()
|
|
end, { expr = true })
|
|
|
|
ai.setup({})
|
|
|
|
notify.setup({
|
|
lsp_progress = {
|
|
-- the message "lua_ls: processing completion..." and
|
|
-- "lua_ls: Diagnosing" is very annoying
|
|
enable = true,
|
|
},
|
|
})
|
|
vim.notify = notify.make_notify()
|
|
|
|
surround.setup({})
|