aboutsummaryrefslogtreecommitdiffhomepage
path: root/vim/mini.lua
diff options
context:
space:
mode:
Diffstat (limited to 'vim/mini.lua')
-rw-r--r--vim/mini.lua790
1 files changed, 400 insertions, 390 deletions
diff --git a/vim/mini.lua b/vim/mini.lua
index 9f9c803..7b44fc0 100644
--- a/vim/mini.lua
+++ b/vim/mini.lua
@@ -1,10 +1,395 @@
1-- vim: sw=2 foldmethod=marker foldmarker={{{,}}} 1-- vim: sw=2 foldmethod=marker foldmarker={{{,}}}
2 2
3-- Ref: https://github.com/echasnovski/mini.nvim 3-- Ref: https://github.com/echasnovski/mini.nvim
4-- TODO 4-- https://lazy.folke.io/spec
5
6-- Install Lazy {{{
7-- Bootstrap lazy.nvim
8local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
9if not (vim.uv or vim.loop).fs_stat(lazypath) then
10 local lazyrepo = "https://github.com/folke/lazy.nvim.git"
11 local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
12end
13vim.opt.rtp:prepend(lazypath)
14-- }}}
15require("lazy").setup ({
16 "tpope/vim-sleuth",
17 -- bufferline {{{
18 {
19 "akinsho/bufferline.nvim",
20 dependencies = {
21 'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons
22 "tiagovla/scope.nvim",
23 },
24 config = function()
25 require("bufferline").setup{
26 options = {
27 tab_size = 14,
28 separator_style = { '', '' },
29 themable = true,
30 buffer_close_icon = '',
31 close_icon = '',
32 groups = {
33 items = {
34 require('bufferline.groups').builtin.pinned:with({ icon = "󰐃" })
35 }
36 }
37 },
38 }
39 require("scope").setup{}
40 -- keymaps {{{
41 for i = 1, 9, 1 do
42 vim.keymap.set("n", string.format("<A-%s>", i), function()
43 vim.cmd("BufferLineGoToBuffer "..i)
44 end, {silent = true})
45 end
46 local opts = { noremap = true, silent = true }
47 vim.keymap.set('n', '<TAB>', '<Cmd>BufferLineCyclePrev<CR>', opts)
48 vim.keymap.set('n', '<S-TAB>', '<Cmd>BufferLineCycleNext<CR>', opts)
49 vim.keymap.set('n', '<M-h>', '<Cmd>BufferLineMovePrev<CR>', opts)
50 vim.keymap.set('n', '<M-l>', '<Cmd>BufferLineMoveNext<CR>', opts)
51 vim.keymap.set('n', '<M-p>', '<Cmd>BufferLineTogglePin<CR>', opts)
52 end,
53 -- }}}
54 },
55 -- }}}
56 -- conform {{{
57 {
58 "stevearc/conform.nvim",
59 opts = {
60 formatters_by_ft = {
61 lua = { "stylua" },
62 },
63 },
64 config = function(_, opts)
65 require("conform").setup(opts)
66 end,
67 },
68 -- }}}
69 -- Telescope {{{
70 {
71 "nvim-telescope/telescope-fzf-native.nvim",
72 build = "make",
73 },
74 {
75 "nvim-telescope/telescope.nvim",
76 lazy = false,
77 dependencies = {
78 'nvim-lua/plenary.nvim',
79 "nvim-telescope/telescope-fzf-native.nvim",
80 },
81 config = function()
82 -- extensions {{{
83 require("telescope").load_extension("fzf")
84 -- require("telescope").load_extension("aerial")
85 -- }}}
86 -- config {{{
87 require('telescope').setup({
88 defaults = {
89 mappings = {
90 i = {
91 -- ["<c-j>"] = "move_selection_next",
92 -- ["<c-k>"] = "move_selection_previous",
93 ["<C-o>"] = require("telescope.actions.layout").toggle_preview,
94 ["<C-u>"] = false,
95 ["<C-q>"] = function(p_bufnr)
96 require("telescope.actions").send_selected_to_qflist(p_bufnr)
97 vim.cmd.cfdo("edit")
98 end,
99 },
100 },
101 layout_config = {
102 horizontal = {
103 prompt_position = "bottom",
104 },
105 vertical = { height = 0.8 },
106 -- other layout configuration here
107 preview_cutoff = 0,
108 },
109 file_ignore_patterns = {
110 "node_modules"
111 },
112 },
113 pickers = {
114 buffers = {
115 show_all_buffers = true,
116 sort_lastused = true,
117 theme = "dropdown",
118 previewer = false,
119 mappings = {
120 i = {
121 ["<c-d>"] = "delete_buffer",
122 },
123 n = {
124 ["<c-d>"] = "delete_buffer",
125 }
126 },
127 },
128 },
129 extensions = {
130 fzf = {
131 fuzzy = true, -- false will only do exact matching
132 override_generic_sorter = true, -- override the generic sorter
133 override_file_sorter = true, -- override the file sorter
134 case_mode = "smart_case", -- or "ignore_case" or "respect_case"
135 -- the default case_mode is "smart_case"
136 },
137 aerial = {
138 -- Display symbols as <root>.<parent>.<symbol>
139 show_nesting = {
140 ["_"] = false, -- This key will be the default
141 json = true, -- You can set the option for specific filetypes
142 yaml = true,
143 },
144 },
145 },
146 })
147 -- }}}
148 -- Keymaps {{{
149 vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" })
150 vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" })
151 vim.keymap.set("n", "<leader>/", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "telescope find in current buffer" })
152 vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" })
153 vim.keymap.set(
154 "n",
155 "<leader>sF",
156 "<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>",
157 { desc = "telescope find all files" }
158 )
159 vim.keymap.set("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" })
160 vim.keymap.set("n", "<leader>gf", "<cmd>Telescope git_files<CR>", { desc = "telescope git files" })
161 vim.keymap.set("n", "<leader>sH", "<cmd>Telescope help_tags<CR>", { desc = "telescope help page" })
162 vim.keymap.set("n", "<leader>sm", "<cmd>Telescope marks<CR>", { desc = "telescope marks" })
163 vim.keymap.set("n", "<leader>sj", "<cmd>Telescope jumplist<CR>", { desc = "telescope marks" })
164 vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "telescope help page" })
165 vim.keymap.set("n", "<leader>sk", "<cmd>Telescope keymaps<CR>", { desc = "telescope keymaps" })
166 vim.keymap.set("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" })
167
168 vim.keymap.set("n", "<leader>ss", function()
169 local current_filetype = vim.bo.filetype
170 local cwd = os.getenv("HOME") .. "/snippets"
171 require("telescope.builtin").find_files({
172 prompt_title = "Press <C-T> to edit a snippet",
173 default_text = current_filetype == "" and "" or current_filetype .. "_",
174 cwd = cwd,
175 attach_mappings = function(prompt_bufnr, map)
176 local get_prompt_or_entry = function()
177 local file_list = require("telescope.actions.state").get_selected_entry()
178 if file_list then
179 return file_list[1]
180 else
181 local current_picker = require("telescope.actions.state").get_current_picker(prompt_bufnr)
182 return current_picker:_get_prompt()
183 end
184 end
185
186 local edit_snippet = function()
187 local file = get_prompt_or_entry()
188 require("telescope.actions").close(prompt_bufnr)
189 local prefix_filetype = string.match(file, "([^_]+)")
190 vim.cmd(":vs")
191 vim.cmd(":e " .. cwd .. "/" .. file)
192 vim.bo.filetype = prefix_filetype
193 vim.bo.bufhidden = "wipe"
194 vim.cmd("set filetype?")
195 end
196
197 local insert_selected_snippet = function()
198 local file = get_prompt_or_entry()
199 local path = cwd .. "/" .. file
200 if vim.fn.filereadable(path) ~= 0 then
201 local snippet_content = vim.fn.readfile(path)
202 require("telescope.actions").close(prompt_bufnr)
203 vim.fn.setreg('"', snippet_content)
204 print("Snippet saved to register")
205 else
206 edit_snippet()
207 end
208 end
209
210 map("i", "<CR>", insert_selected_snippet)
211 map("i", "<C-T>", edit_snippet)
212 map("n", "<CR>", insert_selected_snippet)
213
214 return true
215 end,
216 })
217 end, { desc = "[S]earch [S]nippets" })
218
219 vim.keymap.set("n", "<leader>sd", function()
220 require("telescope.builtin").oldfiles({
221 prompt_title = "CD to",
222 attach_mappings = function(prompt_bufnr, map)
223 local cd_prompt = function()
224 local file = require("telescope.actions.state").get_selected_entry()[1]
225 local path = string.match(file, "(.*[/\\])")
226 require("telescope.actions").close(prompt_bufnr)
227 vim.api.nvim_feedkeys(":cd " .. path, "n", true)
228 end
229
230 map("i", "<CR>", cd_prompt)
231 map("n", "<CR>", cd_prompt)
232
233 return true
234 end,
235 })
236 end, { desc = "Search Directory" })-- }}}
237 end,
238 },
239 -- }}}
240 -- nvim-tree {{{
241 {
242 "nvim-tree/nvim-tree.lua",
243 config = function()
244 -- config {{{
245 require("nvim-tree").setup {
246 filters = {
247 dotfiles = false,
248 },
249 disable_netrw = true,
250 hijack_netrw = true,
251 hijack_cursor = true,
252 hijack_unnamed_buffer_when_opening = false,
253 sync_root_with_cwd = true,
254 update_focused_file = {
255 enable = true,
256 update_root = false,
257 },
258 view = {
259 adaptive_size = false,
260 side = "left",
261 width = 30,
262 preserve_window_proportions = true,
263 },
264 git = {
265 enable = true,
266 ignore = true,
267 },
268 filesystem_watchers = {
269 enable = true,
270 },
271 actions = {
272 open_file = {
273 resize_window = true,
274 },
275 },
276 renderer = {
277 root_folder_label = false,
278 highlight_git = true,
279 highlight_opened_files = "none",
280
281 indent_markers = {
282 enable = true,
283 },
284
285 icons = {
286 show = {
287 file = true,
288 folder = true,
289 folder_arrow = true,
290 git = true,
291 },
292
293 glyphs = {
294 default = "󰈚",
295 symlink = "",
296 folder = {
297 default = "",
298 empty = "",
299 empty_open = "",
300 open = "",
301 symlink = "",
302 symlink_open = "",
303 arrow_open = "",
304 arrow_closed = "",
305 },
306 git = {
307 unstaged = "✗",
308 staged = "✓",
309 unmerged = "",
310 renamed = "➜",
311 untracked = "★",
312 deleted = "",
313 ignored = "◌",
314 },
315 },
316 },
317 },
318 }
319 -- }}}
320 -- keymaps {{{
321 vim.keymap.set(
322 "n",
323 "<C-n>",
324 "<cmd>NvimTreeToggle<CR>",
325 { desc = "nvimtree toggle window" }
326 )
327 vim.keymap.set(
328 "n",
329 "<leader>e",
330 "<cmd>NvimTreeFocus<CR>",
331 { desc = "nvimtree focus window" }
332 )
333 -- }}}
334 end,
335 },
336 -- }}}
337 -- which-key {{{
338 {
339 "folke/which-key.nvim",
340 lazy = false,
341 config = function()
342 require('which-key').setup {
343 defaults = {
344 win = {
345 -- don't allow the popup to overlap with the cursor
346 no_overlap = false,
347 -- width = 1,
348 height = { min = 10, max = 25 },
349 -- col = 0,
350 -- row = math.huge,
351 -- border = "none",
352 padding = { 1, 2 }, -- extra window padding [top/bottom, right/left]
353 title = true,
354 title_pos = "center",
355 zindex = 1000,
356 -- Additional vim.wo and vim.bo options
357 bo = {},
358 wo = {
359 -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent
360 },
361 },
362 }
363 }
364 end,
365 },
366 -- }}}
367 -- Tig {{{
368 {
369 "iberianpig/tig-explorer.vim",
370 dependencies = { "rbgrouleff/bclose.vim" },
371 config = function()
372 vim.cmd('nunmap <leader>bd')
373 end,
374 },
375 --}}}
376 -- toggleterm {{{
377 {
378 "akinsho/toggleterm.nvim",
379 config = function()
380 require("toggleterm").setup {
381 persist_size = false,
382 direction = 'float',
383 }
5 384
6-- Install mini.nvim {{{ 385 vim.keymap.set({ "n", "t" }, "<A-i>", function() vim.cmd("ToggleTerm direction=float") end, { desc = "terminal toggle floating term" })
386 vim.keymap.set({ "n", "t" }, "<A-v>", function() vim.cmd("ToggleTerm direction=horizontal") end, { desc = "terminal toggle floating term" })
387 end,
388 },
389 --}}}
390})
7 391
392-- Install mini.nvim {{{
8-- Put this at the top of 'init.lua' 393-- Put this at the top of 'init.lua'
9local path_package = vim.fn.stdpath('data') .. '/site' 394local path_package = vim.fn.stdpath('data') .. '/site'
10vim.o.packpath = path_package 395vim.o.packpath = path_package
@@ -67,7 +452,7 @@ require('mini.base16').setup({
67 -- Integers, Boolean, Constants, XML Attributes, Markup Link Url 452 -- Integers, Boolean, Constants, XML Attributes, Markup Link Url
68 base09 = "#ef9062", 453 base09 = "#ef9062",
69 -- Classes, Markup Bold, Search Text Background 454 -- Classes, Markup Bold, Search Text Background
70 base0A = "#efca84", 455 base0A = "#a6e22e",
71 -- Strings, Inherited Class, Markup Code, Diff Inserted 456 -- Strings, Inherited Class, Markup Code, Diff Inserted
72 base0B = "#e5c463", 457 base0B = "#e5c463",
73 -- Support, Regular Expressions, Escape Characters, Markup Quotes 458 -- Support, Regular Expressions, Escape Characters, Markup Quotes
@@ -79,14 +464,21 @@ require('mini.base16').setup({
79 -- Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?> 464 -- Deprecated, Opening/Closing Embedded Language Tags, e.g. <?php ?>
80 base0F = "#f9f8f5", 465 base0F = "#f9f8f5",
81 }, 466 },
82 use_cterm = true, 467 use_cterm = false,
83}) 468})
84 469
470-- Override settings for search
471vim.cmd('hi Search guibg=#e5c07b')
472
85-- Resume terminal color 473-- Resume terminal color
86for i = 1, 15, 1 do 474for i = 1, 15, 1 do
87 vim.cmd("let terminal_color_"..i.." = ''") 475 vim.cmd("let terminal_color_"..i.." = ''")
88end 476end
89 477
478-- Override settings for bufferline
479vim.cmd('hi BufferLineTabSelected guibg=#f85e84')
480vim.cmd('hi BufferLineTab guibg=Gray')
481
90--}}} 482--}}}
91-- mini.icons {{{ 483-- mini.icons {{{
92require('mini.icons').setup({ 484require('mini.icons').setup({
@@ -180,9 +572,9 @@ vim.keymap.set( 'n', '\\m', function() require('mini.map').toggle() end, { desc
180-- mini.visits {{{ 572-- mini.visits {{{
181require('mini.visits').setup() 573require('mini.visits').setup()
182vim.keymap.set( 'n', '<leader><leader>li', function() 574vim.keymap.set( 'n', '<leader><leader>li', function()
183 MiniVisits.list_paths() 575 MiniVisits.list_paths()
184 end, 576end,
185 { buffer = bufnr, desc = '' } 577{ buffer = bufnr, desc = '' }
186) 578)
187-- }}} 579-- }}}
188-- mini.completion {{{ 580-- mini.completion {{{
@@ -288,399 +680,17 @@ require('mini.pairs').setup()
288-- }, 680-- },
289-- -- }}} 681-- -- }}}
290-- -- mini.bufremote {{{ 682-- -- mini.bufremote {{{
291add('echasnovski/mini.bufremove') 683-- require('mini.bufremove')
292vim.g.bufremove_disable = true
293--}}} 684--}}}
294-- -- mini.animate --{{{ 685-- -- mini.animate --{{{
295-- add('echasnovski/mini.animate')
296-- require("mini.animate").setup() 686-- require("mini.animate").setup()
297-- -- }}} 687-- -- }}}
298-- -- suda {{{ 688-- -- suda {{{
299-- add { source = "lambdalisue/suda.vim" } 689-- add { source = "lambdalisue/suda.vim" }
300-- }}} 690-- }}}
301-- -- nvchad {{{
302-- add {
303-- source = "Nvchad/base46"
304-- }
305-- add {
306-- source = "Nvchad/ui"
307-- }
308-- add {
309-- source = "NvChad/nvim-colorizer.lua"
310-- }
311-- require("colorizer").setup(opts)
312--
313-- -- execute colorizer as soon as possible
314-- vim.defer_fn(function()
315-- require("colorizer").attach_to_buffer(0)
316-- end, 0)
317--
318-- require('base46')
319-- require('nvchad')
320-- }}}
321-- Telescope {{{
322add({
323 source = "nvim-telescope/telescope.nvim",
324 depends = {
325 'nvim-lua/plenary.nvim',
326 },
327 hooks = { post_checkout = function() end },
328})
329-- config {{{
330require('telescope').setup({
331 defaults = {
332 mappings = {
333 i = {
334 -- ["<c-j>"] = "move_selection_next",
335 -- ["<c-k>"] = "move_selection_previous",
336 ["<C-o>"] = require("telescope.actions.layout").toggle_preview,
337 ["<C-u>"] = false,
338 ["<C-q>"] = function(p_bufnr)
339 require("telescope.actions").send_selected_to_qflist(p_bufnr)
340 vim.cmd.cfdo("edit")
341 end,
342 },
343 },
344 layout_config = {
345 horizontal = {
346 prompt_position = "bottom",
347 },
348 vertical = { height = 0.8 },
349 -- other layout configuration here
350 preview_cutoff = 0,
351 },
352 file_ignore_patterns = {
353 "node_modules"
354 },
355 },
356 pickers = {
357 buffers = {
358 show_all_buffers = true,
359 sort_lastused = true,
360 theme = "dropdown",
361 previewer = false,
362 mappings = {
363 i = {
364 ["<c-d>"] = "delete_buffer",
365 },
366 n = {
367 ["<c-d>"] = "delete_buffer",
368 }
369 },
370 },
371 },
372 extensions = {
373 fzf = {
374 fuzzy = true, -- false will only do exact matching
375 override_generic_sorter = true, -- override the generic sorter
376 override_file_sorter = true, -- override the file sorter
377 case_mode = "smart_case", -- or "ignore_case" or "respect_case"
378 -- the default case_mode is "smart_case"
379 },
380 aerial = {
381 -- Display symbols as <root>.<parent>.<symbol>
382 show_nesting = {
383 ["_"] = false, -- This key will be the default
384 json = true, -- You can set the option for specific filetypes
385 yaml = true,
386 },
387 },
388 },
389})
390-- }}}
391-- extensions {{{
392add({
393 source = 'nvim-telescope/telescope-fzf-native.nvim',
394 hooks = {
395 post_install = function(config)
396 vim.cmd("make -C " .. config.path)
397 end
398 },
399})
400require("telescope").load_extension("fzf")
401-- require("telescope").load_extension("aerial")
402-- }}}
403
404-- Keymaps {{{
405vim.keymap.set("n", "<leader>f", "<cmd>Telescope oldfiles<CR>", { desc = "telescope find oldfiles" })
406vim.keymap.set("n", "<leader>b", "<cmd>Telescope buffers<CR>", { desc = "telescope find buffers" })
407vim.keymap.set("n", "<leader>/", "<cmd>Telescope current_buffer_fuzzy_find<CR>", { desc = "telescope find in current buffer" })
408vim.keymap.set("n", "<leader>sf", "<cmd>Telescope find_files<cr>", { desc = "telescope find files" })
409vim.keymap.set(
410"n",
411"<leader>sF",
412"<cmd>Telescope find_files follow=true no_ignore=true hidden=true<CR>",
413{ desc = "telescope find all files" }
414)
415vim.keymap.set("n", "<leader>sg", "<cmd>Telescope live_grep<CR>", { desc = "telescope live grep" })
416vim.keymap.set("n", "<leader>gf", "<cmd>Telescope git_files<CR>", { desc = "telescope git files" })
417vim.keymap.set("n", "<leader>sH", "<cmd>Telescope help_tags<CR>", { desc = "telescope help page" })
418vim.keymap.set("n", "<leader>sm", "<cmd>Telescope marks<CR>", { desc = "telescope marks" })
419vim.keymap.set("n", "<leader>sj", "<cmd>Telescope jumplist<CR>", { desc = "telescope marks" })
420vim.keymap.set("n", "<leader>tt", "<cmd>Telescope<CR>", { desc = "telescope help page" })
421vim.keymap.set("n", "<leader>sk", "<cmd>Telescope keymaps<CR>", { desc = "telescope keymaps" })
422vim.keymap.set("n", "<leader>pt", "<cmd>Telescope terms<CR>", { desc = "telescope pick hidden term" })
423
424vim.keymap.set("n", "<leader>ss", function()
425 local current_filetype = vim.bo.filetype
426 local cwd = os.getenv("HOME") .. "/snippets"
427 require("telescope.builtin").find_files({
428 prompt_title = "Press <C-T> to edit a snippet",
429 default_text = current_filetype == "" and "" or current_filetype .. "_",
430 cwd = cwd,
431 attach_mappings = function(prompt_bufnr, map)
432 local get_prompt_or_entry = function()
433 local file_list = require("telescope.actions.state").get_selected_entry()
434 if file_list then
435 return file_list[1]
436 else
437 local current_picker = require("telescope.actions.state").get_current_picker(prompt_bufnr)
438 return current_picker:_get_prompt()
439 end
440 end
441
442 local edit_snippet = function()
443 local file = get_prompt_or_entry()
444 require("telescope.actions").close(prompt_bufnr)
445 local prefix_filetype = string.match(file, "([^_]+)")
446 vim.cmd(":vs")
447 vim.cmd(":e " .. cwd .. "/" .. file)
448 vim.bo.filetype = prefix_filetype
449 vim.bo.bufhidden = "wipe"
450 vim.cmd("set filetype?")
451 end
452
453 local insert_selected_snippet = function()
454 local file = get_prompt_or_entry()
455 local path = cwd .. "/" .. file
456 if vim.fn.filereadable(path) ~= 0 then
457 local snippet_content = vim.fn.readfile(path)
458 require("telescope.actions").close(prompt_bufnr)
459 vim.fn.setreg('"', snippet_content)
460 print("Snippet saved to register")
461 else
462 edit_snippet()
463 end
464 end
465
466 map("i", "<CR>", insert_selected_snippet)
467 map("i", "<C-T>", edit_snippet)
468 map("n", "<CR>", insert_selected_snippet)
469
470 return true
471 end,
472 })
473end, { desc = "[S]earch [S]nippets" })
474
475vim.keymap.set("n", "<leader>sd", function()
476 require("telescope.builtin").oldfiles({
477 prompt_title = "CD to",
478 attach_mappings = function(prompt_bufnr, map)
479 local cd_prompt = function()
480 local file = require("telescope.actions.state").get_selected_entry()[1]
481 local path = string.match(file, "(.*[/\\])")
482 require("telescope.actions").close(prompt_bufnr)
483 vim.api.nvim_feedkeys(":cd " .. path, "n", true)
484 end
485
486 map("i", "<CR>", cd_prompt)
487 map("n", "<CR>", cd_prompt)
488
489 return true
490 end,
491 })
492end, { desc = "Search Directory" })-- }}}
493
494-- }}}
495-- toggleterm {{{
496
497add({
498 source = "akinsho/toggleterm.nvim",
499 hooks = { post_checkout = function() end },
500})
501require("toggleterm").setup{
502 persist_size = false,
503 direction = 'float',
504}
505
506vim.keymap.set({ "n", "t" }, "<A-i>", function() vim.cmd("ToggleTerm direction=float") end, { desc = "terminal toggle floating term" })
507vim.keymap.set({ "n", "t" }, "<A-v>", function() vim.cmd("ToggleTerm direction=horizontal") end, { desc = "terminal toggle floating term" })
508
509--}}}
510-- Tig {{{
511
512add({
513 source = "iberianpig/tig-explorer.vim",
514 depends = { "rbgrouleff/bclose.vim" },
515 hooks = { post_checkout = function() end },
516})
517vim.cmd('nunmap <leader>bd')
518
519--}}}
520-- which-key {{{
521add({
522 source = "folke/which-key.nvim",
523 checkout = "stable",
524})
525require('which-key').setup {
526 defaults = {
527 win = {
528 -- don't allow the popup to overlap with the cursor
529 no_overlap = false,
530 -- width = 1,
531 height = { min = 10, max = 25 },
532 -- col = 0,
533 -- row = math.huge,
534 -- border = "none",
535 padding = { 1, 2 }, -- extra window padding [top/bottom, right/left]
536 title = true,
537 title_pos = "center",
538 zindex = 1000,
539 -- Additional vim.wo and vim.bo options
540 bo = {},
541 wo = {
542 -- winblend = 10, -- value between 0-100 0 for fully opaque and 100 for fully transparent
543 },
544 },
545 }
546}
547-- }}}
548-- true-zen {{{ 691-- true-zen {{{
549add { 692add {
550 source = "Pocco81/true-zen.nvim", 693 source = "Pocco81/true-zen.nvim",
551} 694}
552vim.keymap.set("n", "<leader>z", ":TZAtaraxis<CR>") 695vim.keymap.set("n", "<leader>z", ":TZAtaraxis<CR>")
553-- }}} 696-- }}}
554-- nvim-tree {{{
555add {
556 source = "nvim-tree/nvim-tree.lua",
557}
558-- config {{{
559require("nvim-tree").setup {
560 filters = {
561 dotfiles = false,
562 },
563 disable_netrw = true,
564 hijack_netrw = true,
565 hijack_cursor = true,
566 hijack_unnamed_buffer_when_opening = false,
567 sync_root_with_cwd = true,
568 update_focused_file = {
569 enable = true,
570 update_root = false,
571 },
572 view = {
573 adaptive_size = false,
574 side = "left",
575 width = 30,
576 preserve_window_proportions = true,
577 },
578 git = {
579 enable = true,
580 ignore = true,
581 },
582 filesystem_watchers = {
583 enable = true,
584 },
585 actions = {
586 open_file = {
587 resize_window = true,
588 },
589 },
590 renderer = {
591 root_folder_label = false,
592 highlight_git = true,
593 highlight_opened_files = "none",
594
595 indent_markers = {
596 enable = true,
597 },
598
599 icons = {
600 show = {
601 file = true,
602 folder = true,
603 folder_arrow = true,
604 git = true,
605 },
606
607 glyphs = {
608 default = "󰈚",
609 symlink = "",
610 folder = {
611 default = "",
612 empty = "",
613 empty_open = "",
614 open = "",
615 symlink = "",
616 symlink_open = "",
617 arrow_open = "",
618 arrow_closed = "",
619 },
620 git = {
621 unstaged = "✗",
622 staged = "✓",
623 unmerged = "",
624 renamed = "➜",
625 untracked = "★",
626 deleted = "",
627 ignored = "◌",
628 },
629 },
630 },
631 },
632}
633-- }}}
634vim.keymap.set(
635 "n",
636 "<C-n>",
637 "<cmd>NvimTreeToggle<CR>",
638 { desc = "nvimtree toggle window" }
639)
640vim.keymap.set(
641 "n",
642 "<leader>e",
643 "<cmd>NvimTreeFocus<CR>",
644 { desc = "nvimtree focus window" }
645)
646
647-- }}}
648-- bufferline {{{
649add {
650 source = "akinsho/bufferline.nvim",
651 depends = {
652 'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons
653 },
654}
655require("bufferline").setup{
656 options = {
657 themable = true,
658 buffer_close_icon = '',
659 close_icon = '',
660 groups = {
661 items = {
662 require('bufferline.groups').builtin.pinned:with({ icon = "󰐃" })
663 }
664 }
665 },
666}
667
668-- Since mini.base16 override highlight for bufferline
669-- Set it directly
670vim.cmd('hi BufferLineTabSelected guibg=#f85e84')
671vim.cmd('hi BufferLineTab guibg=Gray')
672
673-- keymaps {{{
674for i = 1, 9, 1 do
675 vim.keymap.set("n", string.format("<A-%s>", i), function()
676 vim.cmd("BufferLineGoToBuffer "..i)
677 end, {silent = true})
678end
679local opts = { noremap = true, silent = true }
680vim.keymap.set('n', '<TAB>', '<Cmd>BufferLineCyclePrev<CR>', opts)
681vim.keymap.set('n', '<S-TAB>', '<Cmd>BufferLineCycleNext<CR>', opts)
682vim.keymap.set('n', '<M-h>', '<Cmd>BufferLineMovePrev<CR>', opts)
683vim.keymap.set('n', '<M-l>', '<Cmd>BufferLineMoveNext<CR>', opts)
684vim.keymap.set('n', '<M-p>', '<Cmd>BufferLineTogglePin<CR>', opts)
685-- }}}
686--}}}