mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-30 23:46:36 +00:00
feat(nvim): reworked cmp, lsp and bunch of stuff (#48)
* feat(nvim): reworked cmp, lsp and bunch of stuff * chore: del disabled plugins, do coderabbit fixes * chore: tweak settings, remove duplication * chore: next round of refactoring * feat: replaced lualine w/ mini.statusline, tweaks * chore: cleanup, options and keymap stuff
This commit is contained in:
@@ -2,36 +2,139 @@
|
||||
-- https://github.com/echasnovski/mini.nvim/tree/main?tab=readme-ov-file#modules
|
||||
return {
|
||||
-- Presets for common options and mappings
|
||||
{ 'echasnovski/mini.basics', version = '*' },
|
||||
|
||||
-- Visualize and work with indent scope
|
||||
-- Replaced lukas-reineke/indent-blankline.nvim
|
||||
{ 'echasnovski/mini.indentscope', version = '*', opts = {} },
|
||||
{ 'echasnovski/mini.basics', version = '*' },
|
||||
|
||||
-- Animate common Neovim actions
|
||||
-- Replaced anuvyklack/windows.nvim
|
||||
{ 'echasnovski/mini.animate', version = '*', opts = {} },
|
||||
{ 'echasnovski/mini.animate', version = '*', opts = {} },
|
||||
|
||||
-- Fast and feature-rich surround actions
|
||||
-- Replaced kylechui/nvim-surround
|
||||
{ 'echasnovski/mini.surround', version = '*', opts = {} },
|
||||
-- Buffer removing (unshow, delete, wipeout), which saves window layout
|
||||
-- Replaced famiu/bufdelete.nvim
|
||||
{ 'echasnovski/mini.bufremove', version = '*', opts = {} },
|
||||
|
||||
-- Move lines and blocks of text
|
||||
{ 'echasnovski/mini.move', version = '*', opts = {} },
|
||||
|
||||
-- Jump to next/previous single character
|
||||
-- Show next key clues
|
||||
-- Replaced folke/which-key.nvim
|
||||
{
|
||||
'echasnovski/mini.jump',
|
||||
'echasnovski/mini.clue',
|
||||
version = '*',
|
||||
config = function()
|
||||
local miniclue = require 'mini.clue'
|
||||
|
||||
miniclue.setup {
|
||||
triggers = {
|
||||
-- Leader triggers
|
||||
{ mode = 'n', keys = '<Leader>' },
|
||||
{ mode = 'x', keys = '<Leader>' },
|
||||
|
||||
-- Built-in completion
|
||||
{ mode = 'i', keys = '<C-x>' },
|
||||
|
||||
-- `g` key
|
||||
{ mode = 'n', keys = 'g' },
|
||||
{ mode = 'x', keys = 'g' },
|
||||
|
||||
-- Marks
|
||||
{ mode = 'n', keys = "'" },
|
||||
{ mode = 'n', keys = '`' },
|
||||
{ mode = 'x', keys = "'" },
|
||||
{ mode = 'x', keys = '`' },
|
||||
|
||||
-- Registers
|
||||
{ mode = 'n', keys = '"' },
|
||||
{ mode = 'x', keys = '"' },
|
||||
{ mode = 'i', keys = '<C-r>' },
|
||||
{ mode = 'c', keys = '<C-r>' },
|
||||
|
||||
-- Window commands
|
||||
{ mode = 'n', keys = '<C-w>' },
|
||||
|
||||
-- `z` key
|
||||
{ mode = 'n', keys = 'z' },
|
||||
{ mode = 'x', keys = 'z' },
|
||||
},
|
||||
|
||||
clues = {
|
||||
-- Enhance this by adding descriptions for <Leader> mapping groups
|
||||
miniclue.gen_clues.builtin_completion(),
|
||||
miniclue.gen_clues.g(),
|
||||
miniclue.gen_clues.marks(),
|
||||
miniclue.gen_clues.registers(),
|
||||
miniclue.gen_clues.windows(),
|
||||
miniclue.gen_clues.z(),
|
||||
{ mode = 'n', keys = '<Leader>b', desc = '+Buffers' },
|
||||
{ mode = 'n', keys = '<Leader>c', desc = '+Code' },
|
||||
{ mode = 'n', keys = '<Leader>cb', desc = '+CommentBox' },
|
||||
{ mode = 'n', keys = '<Leader>q', desc = '+Quit' },
|
||||
{ mode = 'n', keys = '<Leader>s', desc = '+Telescope' },
|
||||
{ mode = 'n', keys = '<Leader>t', desc = '+Toggle' },
|
||||
{ mode = 'n', keys = '<Leader>x', desc = '+Trouble' },
|
||||
{ mode = 'n', keys = '<leader>z', desc = '+TreeSitter' },
|
||||
{ mode = 'n', keys = '<leader>zg', desc = '+Goto' },
|
||||
{ mode = 'n', keys = '<Leader>?', desc = '+Help' },
|
||||
{ mode = 'n', keys = 'd', desc = '+Diagnostics' },
|
||||
{ mode = 'n', keys = 'y', desc = '+Yank' },
|
||||
},
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
-- Comment lines
|
||||
-- Replaced numToStr/Comment.nvim
|
||||
{ 'echasnovski/mini.comment', version = '*', opts = {} },
|
||||
|
||||
-- Highlight cursor word and its matches
|
||||
{ 'echasnovski/mini.cursorword', version = '*' },
|
||||
|
||||
-- Work with diff hunks
|
||||
-- Replaced lewis6991/gitsigns.nvim
|
||||
{ 'echasnovski/mini.diff', version = '*', opts = {} },
|
||||
|
||||
-- Git integration
|
||||
{ 'echasnovski/mini-git', version = '*', opts = {}, main = 'mini.git' },
|
||||
|
||||
-- Highlight patterns in text
|
||||
-- Replaced folke/todo-comments.nvim
|
||||
{
|
||||
'echasnovski/mini.hipatterns',
|
||||
version = '*',
|
||||
opts = {
|
||||
mappings = {
|
||||
forward = 'f',
|
||||
backward = 'F',
|
||||
forward_till = 't',
|
||||
backward_till = 'T',
|
||||
repeat_jump = ';',
|
||||
highlighters = {
|
||||
-- Highlight standalone 'FIXME', 'HACK', 'TODO', 'NOTE'
|
||||
fixme = {
|
||||
pattern = '%f[%w]()FIXME:?%s*()%f[%W]',
|
||||
group = 'MiniHipatternsFixme',
|
||||
},
|
||||
hack = {
|
||||
pattern = '%f[%w]()HACK:?%s*()%f[%W]',
|
||||
group = 'MiniHipatternsHack',
|
||||
},
|
||||
todo = {
|
||||
pattern = '%f[%w]()NOTE:?%s*()%f[%W]',
|
||||
group = 'MiniHipatternsTodo',
|
||||
},
|
||||
note = {
|
||||
pattern = '%f[%w]()NOTE()%f[%W]',
|
||||
group = 'MiniHipatternsNote',
|
||||
},
|
||||
bug = {
|
||||
pattern = '%f[%w]()BUG:?%s*()%f[%W]',
|
||||
group = 'MiniHipatternsBug',
|
||||
},
|
||||
perf = {
|
||||
pattern = '%f[%w]()PERF:?%s*()%f[%W]',
|
||||
group = 'MiniHipatternsPerf',
|
||||
},
|
||||
},
|
||||
},
|
||||
config = function(opts)
|
||||
local hp = require 'mini.hipatterns'
|
||||
hp.setup {
|
||||
highlighters = opts.highlighters,
|
||||
|
||||
-- Highlight hex color strings (`#rrggbb`) using that color
|
||||
hex_color = hp.gen_highlighter.hex_color(),
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
-- Icons
|
||||
@@ -48,14 +151,73 @@ return {
|
||||
},
|
||||
},
|
||||
|
||||
-- Highlight cursor word and its matches
|
||||
{ 'echasnovski/mini.cursorword', version = '*' },
|
||||
-- Visualize and work with indent scope
|
||||
-- Replaced lukas-reineke/indent-blankline.nvim
|
||||
{ 'echasnovski/mini.indentscope', version = '*', opts = {} },
|
||||
|
||||
-- Jump to next/previous single character
|
||||
{
|
||||
'echasnovski/mini.jump',
|
||||
version = '*',
|
||||
opts = {
|
||||
mappings = {
|
||||
forward = 'f',
|
||||
backward = 'F',
|
||||
forward_till = 't',
|
||||
backward_till = 'T',
|
||||
repeat_jump = ';',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- Move lines and blocks of text
|
||||
{ 'echasnovski/mini.move', version = '*', opts = {} },
|
||||
|
||||
-- Text edit operators
|
||||
{ 'echasnovski/mini.operators', version = '*', opts = {} },
|
||||
|
||||
-- Split and join arguments, lists, and other sequences
|
||||
-- Replaced Wansmer/treesj
|
||||
{ 'echasnovski/mini.splitjoin', version = '*', opts = {} },
|
||||
{ 'echasnovski/mini.splitjoin', version = '*', opts = {} },
|
||||
|
||||
-- Work with diff hunks
|
||||
-- Replaced lewis6991/gitsigns.nvim
|
||||
{ 'echasnovski/mini.diff', version = '*', opts = {} },
|
||||
-- Fast and flexible start screen
|
||||
-- Replaced glepnir/dashboard-nvim
|
||||
{ 'echasnovski/mini.starter', version = '*', opts = {} },
|
||||
|
||||
-- Minimal and fast statusline module with opinionated default look
|
||||
-- Replaced nvim-lualine/lualine.nvim
|
||||
{
|
||||
'echasnovski/mini.statusline',
|
||||
version = '*',
|
||||
opts = {
|
||||
use_icons = true,
|
||||
set_vim_settings = true,
|
||||
content = {
|
||||
active = function()
|
||||
local mode, mode_hl = MiniStatusline.section_mode({ trunc_width = 120 })
|
||||
local git = MiniStatusline.section_git({ trunc_width = 75 })
|
||||
local diagnostics = MiniStatusline.section_diagnostics({ 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 })
|
||||
return MiniStatusline.combine_groups({
|
||||
{ hl = mode_hl, strings = { mode } },
|
||||
{ hl = 'MiniStatuslineDevinfo', strings = { git, diagnostics } },
|
||||
'%<', -- Mark general truncate point
|
||||
{ hl = 'MiniStatuslineFilename', strings = { filename } },
|
||||
'%=', -- End left alignment
|
||||
{ hl = 'MiniStatuslineFileinfo', strings = { fileinfo } },
|
||||
{ hl = mode_hl, strings = { location } },
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
-- Fast and feature-rich surround actions
|
||||
-- Replaced kylechui/nvim-surround
|
||||
{ 'echasnovski/mini.surround', version = '*', opts = {} },
|
||||
|
||||
-- Work with trailing whitespace
|
||||
{ 'echasnovski/mini.trailspace', version = '*', opts = {} },
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user