feat: add mini.ai

This commit is contained in:
Oliver Ladner 2025-05-20 15:53:29 +02:00
commit 600306f9be
4 changed files with 67 additions and 77 deletions

View file

@ -1,14 +1,15 @@
# Neovim cheat sheet
Heavily customized. Related blog post: https://lugh.ch/neovim-lessons-learned.html
## BASICS
- `:checkhealth [<pluginname>]` check base or plugin status
- `:checkhealth vim.lsp` show details of LSP attached to buffer
- `:verbose set expandtab?` check where `expandtab` has been set last
- `:Lazy` show package manager UI
- `:Mason` show Mason UI
- `:Lazy` show package manager TUI
- `:Mason` show LSP management TUI
- `:TSUpdate` update all Tree-sitter parsers
- `:LspInfo` show attached LSP client details
- `:ConformInfo` useful to debug why a formatter times out
## NAVIGATING
@ -27,19 +28,19 @@
## Buffers
- `leader`+`leader` lists open buffers in `snipe.nvim`
- In snipe.nvim popup: Hit `d` to close the selected buffer
- In snipe.nvim popup: Hit `D` to close the selected buffer
- `:bd` close current buffer
## Text
- `w/e` move to **start/end of next word** (ignores punctuation due to remap)
- `b` move to **start of previous word** (ignores punctuation due to remap)
- `w/e` move to **start/end of next word**
- `b` move to **start of previous word**
- `Ctrl`+`0` start of line
- `Ctrl`+`$` end of line
- `Ctrl`+`d/u` scroll down/up 1/2 page while keeping the cursor centered
- `Ctrl`+`o` jump to location you were before (e.g. after using `gg`)
- `Ctrl`+`i` jump back to location you were before (after using `Ctrl`+`o`)
- `s<chars>` highlight jump targets via `flash.nvim`
- `s<chars>` highlight jump targets w/ `flash.nvim`
## LSP, Code & Diagnostics
@ -92,6 +93,8 @@
- `:windo diffthis` open `vimdiff` for open splits
- `:vert diffsplit <other/file>` diff this file and `<other/file>`
- `:windo diffoff` to close diff view
- `ciq` change inside quotes w/ `mini.ai`
- `caq` change around quotes w/ `mini.ai`
## SELECTING

Binary file not shown.

View file

@ -1,59 +1,59 @@
-- Navigate code fast
-- https://github.com/folke/flash.nvim
return {
"folke/flash.nvim",
opts = {
label = {
-- allow uppercase labels
uppercase = true,
-- add any labels with the correct case here, that you want to exclude
exclude = "",
-- add a label for the first match in the current window.
-- you can always jump to the first match with `<CR>`
current = true,
-- show the label after the match
after = true, ---@type boolean|number[]
-- show the label before the match
before = false, ---@type boolean|number[]
-- position of the label extmark
-- style = "overlay", ---@type "eol" | "overlay" | "right_align" | "inline"
-- flash tries to re-use labels that were already assigned to a position,
-- when typing more characters. By default only lower-case labels are re-used.
reuse = "lowercase", ---@type "lowercase" | "all" | "none"
-- for the current window, label targets closer to the cursor first
distance = true,
-- minimum pattern length to show labels
-- Ignored for custom labelers.
min_pattern_length = 0,
-- Enable this to use rainbow colors to highlight labels
-- Can be useful for visualizing Treesitter ranges.
rainbow = {
enabled = true,
-- number between 1 and 9
shade = 4,
},
},
highlight = {
-- show a backdrop with hl FlashBackdrop
backdrop = true,
-- Highlight the search matches
matches = false,
-- extmark priority
priority = 5000,
groups = {
match = "FlashMatch",
current = "FlashCurrent",
backdrop = "FlashBackdrop",
label = "FlashLabel",
},
},
},
-- stylua: ignore
keys = {
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
{ "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
{ "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
},
"folke/flash.nvim",
opts = {
label = {
-- allow uppercase labels
uppercase = true,
-- add any labels with the correct case here, that you want to exclude
exclude = "",
-- add a label for the first match in the current window.
-- you can always jump to the first match with `<CR>`
current = true,
-- show the label after the match
after = true, ---@type boolean|number[]
-- show the label before the match
before = false, ---@type boolean|number[]
-- position of the label extmark
-- style = "overlay", ---@type "eol" | "overlay" | "right_align" | "inline"
-- flash tries to re-use labels that were already assigned to a position,
-- when typing more characters. By default only lower-case labels are re-used.
reuse = "lowercase", ---@type "lowercase" | "all" | "none"
-- for the current window, label targets closer to the cursor first
distance = true,
-- minimum pattern length to show labels
-- Ignored for custom labelers.
min_pattern_length = 0,
-- Enable this to use rainbow colors to highlight labels
-- Can be useful for visualizing Treesitter ranges.
rainbow = {
enabled = true,
-- number between 1 and 9
shade = 4,
},
},
highlight = {
-- show a backdrop with hl FlashBackdrop
backdrop = true,
-- Highlight the search matches
matches = false,
-- extmark priority
priority = 5000,
groups = {
match = "FlashMatch",
current = "FlashCurrent",
backdrop = "FlashBackdrop",
label = "FlashLabel",
},
},
},
-- stylua: ignore
keys = {
{ "s", mode = { "n", "x", "o" }, function() require("flash").jump() end, desc = "Flash" },
-- { "S", mode = { "n", "x", "o" }, function() require("flash").treesitter() end, desc = "Flash Treesitter" },
{ "r", mode = "o", function() require("flash").remote() end, desc = "Remote Flash" },
{ "R", mode = { "o", "x" }, function() require("flash").treesitter_search() end, desc = "Treesitter Search" },
{ "<c-s>", mode = { "c" }, function() require("flash").toggle() end, desc = "Toggle Flash Search" },
},
}

View file

@ -4,22 +4,9 @@ return {
version = false,
config = function()
require("mini.icons").setup()
require("mini.ai").setup({ n_lines = 500 })
-- require("mini.ai").setup({ n_lines = 500 })
require("mini.trailspace").setup()
require("mini.cursorword").setup()
require("mini.surround").setup({
mappings = {
-- add = "wq", -- Add surrounding in Normal and Visual modes
-- delete = "wd", -- Delete surrounding
-- -- find = "sf", -- Find surrounding (to the right)
-- -- find_left = "sF", -- Find surrounding (to the left)
-- highlight = "hs", -- Highlight surrounding
-- replace = "wc", -- Replace surrounding
-- -- update_n_lines = "sn", -- Update `n_lines`
--
-- -- suffix_last = "l", -- Suffix to search with "prev" method
-- -- suffix_next = "n", -- Suffix to search with "next" method
},
})
require("mini.ai").setup()
end,
}