finally configured nvim myself
This commit is contained in:
		
							parent
							
								
									8fc3233841
								
							
						
					
					
						commit
						141cc43651
					
				
					 20 changed files with 1212 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -34,5 +34,5 @@ alias kot="cd $KOT"
 | 
			
		|||
alias krd="cd $KRD"
 | 
			
		||||
alias neg="cd $NEG"
 | 
			
		||||
alias nego="cd $NEGO && source .venv/bin/activate && make"
 | 
			
		||||
alias negn="cd $NEGN"
 | 
			
		||||
alias negn="cd $NEGN && source .venv/bin/activate"
 | 
			
		||||
alias negs="cd $NEGS"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										4
									
								
								.config/nvim/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.config/nvim/init.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
require("config.options")
 | 
			
		||||
require("config.lazy")
 | 
			
		||||
require("config.keymaps")
 | 
			
		||||
require("config.autocmds")
 | 
			
		||||
							
								
								
									
										56
									
								
								.config/nvim/lua/.luarc.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								.config/nvim/lua/.luarc.json
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
{
 | 
			
		||||
    "workspace.library": [
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/neodev.nvim/types/stable",
 | 
			
		||||
        "/opt/homebrew/Cellar/neovim/0.9.1/share/nvim/runtime/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/trouble.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/mini.ai/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/todo-comments.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/indent-blankline.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/catppuccin/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/mason-lspconfig.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-treesitter/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/mason.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/mini.bufremove/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/bufferline.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/neo-tree.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/lazy.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/neoconf.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/persistence.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/neodev.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/vim-startuptime/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nui.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/telescope.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/alpha-nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-web-devicons/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/null-ls.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/LuaSnip/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-navic/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/noice.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-cmp/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/mini.comment/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/mini.surround/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/tokyonight.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/LazyVim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/mini.indentscope/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/lualine.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/mini.pairs/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/cmp-nvim-lsp/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/which-key.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/cmp-path/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-treesitter-textobjects/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-lspconfig/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/cmp_luasnip/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-notify/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/flash.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/vim-illuminate/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/dressing.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-spectre/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/cmp-buffer/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/nvim-ts-context-commentstring/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/gitsigns.nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/lazy/plenary.nvim/lua",
 | 
			
		||||
        "/Users/doman/.config/nvim/lua",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/mason/packages/lua-language-server/libexec/meta/32f52be3",
 | 
			
		||||
        "/Users/doman/.local/share/nvim/mason/packages/lua-language-server/libexec/meta/1480a74c"
 | 
			
		||||
    ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										0
									
								
								.config/nvim/lua/config/autocmds.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								.config/nvim/lua/config/autocmds.lua
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										121
									
								
								.config/nvim/lua/config/keymaps.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								.config/nvim/lua/config/keymaps.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,121 @@
 | 
			
		|||
vim.api.nvim_set_keymap("n", "<leader>j", "<cmd>bprev<cr>", { noremap = true, silent = true })
 | 
			
		||||
vim.api.nvim_set_keymap("n", "<leader>k", "<cmd>bnext<cr>", { noremap = true, silent = true })
 | 
			
		||||
vim.api.nvim_set_keymap("x", "<C-p>", '"_dP', { noremap = true, silent = true })
 | 
			
		||||
vim.api.nvim_set_keymap("n", "<leader>/", "gcc", { noremap = false, silent = true })
 | 
			
		||||
vim.api.nvim_set_keymap(
 | 
			
		||||
  "v",
 | 
			
		||||
  "<leader>/",
 | 
			
		||||
  "<esc><cmd>lua require('Comment.api').toggle.linewise(vim.fn.visualmode())<cr>",
 | 
			
		||||
  { noremap = true, silent = true }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
-- Move to window using the <ctrl> hjkl keys
 | 
			
		||||
vim.keymap.set("n", "<C-h>", "<C-w>h", { desc = "Go to left window", remap = true })
 | 
			
		||||
vim.keymap.set("n", "<C-j>", "<C-w>j", { desc = "Go to lower window", remap = true })
 | 
			
		||||
vim.keymap.set("n", "<C-k>", "<C-w>k", { desc = "Go to upper window", remap = true })
 | 
			
		||||
vim.keymap.set("n", "<C-l>", "<C-w>l", { desc = "Go to right window", remap = true })
 | 
			
		||||
 | 
			
		||||
-- Resize window using <ctrl> arrow keys
 | 
			
		||||
vim.keymap.set("n", "<C-Up>", "<cmd>resize +2<cr>", { desc = "Increase window height" })
 | 
			
		||||
vim.keymap.set("n", "<C-Down>", "<cmd>resize -2<cr>", { desc = "Decrease window height" })
 | 
			
		||||
vim.keymap.set("n", "<C-Left>", "<cmd>vertical resize -2<cr>", { desc = "Decrease window width" })
 | 
			
		||||
vim.keymap.set("n", "<C-Right>", "<cmd>vertical resize +2<cr>", { desc = "Increase window width" })
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>bb", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
 | 
			
		||||
vim.keymap.set("n", "<leader>`", "<cmd>e #<cr>", { desc = "Switch to Other Buffer" })
 | 
			
		||||
 | 
			
		||||
-- Clear search with <esc>
 | 
			
		||||
vim.keymap.set({ "i", "n" }, "<esc>", "<cmd>noh<cr><esc>", { desc = "Escape and clear hlsearch" })
 | 
			
		||||
 | 
			
		||||
-- Clear search, diff update and redraw
 | 
			
		||||
-- taken from runtime/lua/_editor.lua
 | 
			
		||||
vim.keymap.set(
 | 
			
		||||
  "n",
 | 
			
		||||
  "<leader>ur",
 | 
			
		||||
  "<Cmd>nohlsearch<Bar>diffupdate<Bar>normal! <C-L><CR>",
 | 
			
		||||
  { desc = "Redraw / clear hlsearch / diff update" }
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
vim.keymap.set({ "n", "x" }, "gw", "*N", { desc = "Search word under cursor" })
 | 
			
		||||
 | 
			
		||||
-- https://github.com/mhinz/vim-galore#saner-behavior-of-n-and-n
 | 
			
		||||
vim.keymap.set("n", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
 | 
			
		||||
vim.keymap.set("x", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
 | 
			
		||||
vim.keymap.set("o", "n", "'Nn'[v:searchforward]", { expr = true, desc = "Next search result" })
 | 
			
		||||
vim.keymap.set("n", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
 | 
			
		||||
vim.keymap.set("x", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
 | 
			
		||||
vim.keymap.set("o", "N", "'nN'[v:searchforward]", { expr = true, desc = "Prev search result" })
 | 
			
		||||
 | 
			
		||||
-- Add undo break-points
 | 
			
		||||
vim.keymap.set("i", ",", ",<c-g>u")
 | 
			
		||||
vim.keymap.set("i", ".", ".<c-g>u")
 | 
			
		||||
vim.keymap.set("i", ";", ";<c-g>u")
 | 
			
		||||
 | 
			
		||||
-- save file
 | 
			
		||||
vim.keymap.set({ "i", "v", "n", "s" }, "<C-s>", "<cmd>w<cr><esc>", { desc = "Save file" })
 | 
			
		||||
 | 
			
		||||
--keywordprg
 | 
			
		||||
vim.keymap.set("n", "<leader>K", "<cmd>norm! K<cr>", { desc = "Keywordprg" })
 | 
			
		||||
 | 
			
		||||
-- better indenting
 | 
			
		||||
vim.keymap.set("v", "<", "<gv")
 | 
			
		||||
vim.keymap.set("v", ">", ">gv")
 | 
			
		||||
 | 
			
		||||
-- lazy
 | 
			
		||||
vim.keymap.set("n", "<leader>l", "<cmd>Lazy<cr>", { desc = "Lazy" })
 | 
			
		||||
 | 
			
		||||
-- new file
 | 
			
		||||
vim.keymap.set("n", "<leader>fn", "<cmd>enew<cr>", { desc = "New File" })
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>xl", "<cmd>lopen<cr>", { desc = "Location List" })
 | 
			
		||||
vim.keymap.set("n", "<leader>xq", "<cmd>copen<cr>", { desc = "Quickfix List" })
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "[q", vim.cmd.cprev, { desc = "Previous quickfix" })
 | 
			
		||||
 | 
			
		||||
-- highlights under cursor
 | 
			
		||||
if vim.fn.has("nvim-0.9.0") == 1 then
 | 
			
		||||
  vim.keymap.set("n", "<leader>ui", vim.show_pos, { desc = "Inspect Pos" })
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Terminal vim.keymap.setpings
 | 
			
		||||
vim.keymap.set("t", "<esc><esc>", "<c-\\><c-n>", { desc = "Enter Normal Mode" })
 | 
			
		||||
vim.keymap.set("t", "<C-h>", "<cmd>wincmd h<cr>", { desc = "Go to left window" })
 | 
			
		||||
vim.keymap.set("t", "<C-j>", "<cmd>wincmd j<cr>", { desc = "Go to lower window" })
 | 
			
		||||
vim.keymap.set("t", "<C-k>", "<cmd>wincmd k<cr>", { desc = "Go to upper window" })
 | 
			
		||||
vim.keymap.set("t", "<C-l>", "<cmd>wincmd l<cr>", { desc = "Go to right window" })
 | 
			
		||||
vim.keymap.set("t", "<C-/>", "<cmd>close<cr>", { desc = "Hide Terminal" })
 | 
			
		||||
vim.keymap.set("t", "<c-_>", "<cmd>close<cr>", { desc = "which_key_ignore" })
 | 
			
		||||
 | 
			
		||||
-- windows
 | 
			
		||||
vim.keymap.set("n", "<leader>ww", "<C-W>p", { desc = "Other window", remap = true })
 | 
			
		||||
vim.keymap.set("n", "<leader>wd", "<C-W>c", { desc = "Delete window", remap = true })
 | 
			
		||||
vim.keymap.set("n", "<leader>w-", "<C-W>s", { desc = "Split window below", remap = true })
 | 
			
		||||
vim.keymap.set("n", "<leader>w|", "<C-W>v", { desc = "Split window right", remap = true })
 | 
			
		||||
vim.keymap.set("n", "<leader>-", "<C-W>s", { desc = "Split window below", remap = true })
 | 
			
		||||
vim.keymap.set("n", "<leader>|", "<C-W>v", { desc = "Split window right", remap = true })
 | 
			
		||||
 | 
			
		||||
-- tabs
 | 
			
		||||
vim.keymap.set("n", "<leader><tab>l", "<cmd>tablast<cr>", { desc = "Last Tab" })
 | 
			
		||||
vim.keymap.set("n", "<leader><tab>f", "<cmd>tabfirst<cr>", { desc = "First Tab" })
 | 
			
		||||
vim.keymap.set("n", "<leader><tab><tab>", "<cmd>tabnew<cr>", { desc = "New Tab" })
 | 
			
		||||
vim.keymap.set("n", "<leader><tab>]", "<cmd>tabnext<cr>", { desc = "Next Tab" })
 | 
			
		||||
vim.keymap.set("n", "<leader><tab>d", "<cmd>tabclose<cr>", { desc = "Close Tab" })
 | 
			
		||||
vim.keymap.set("n", "<leader><tab>[", "<cmd>tabprevious<cr>", { desc = "Previous Tab" })
 | 
			
		||||
 | 
			
		||||
-- lsp
 | 
			
		||||
vim.keymap.set("n", "gd", "<cmd>lua vim.lsp.buf.definition()<cr>", { desc = "Goto Definition" })
 | 
			
		||||
vim.keymap.set("n", "gs", "<cmd>vsplit | lua vim.lsp.buf.definition()<cr>", { desc = "Goto Definition in vertical split" })
 | 
			
		||||
vim.keymap.set("n", "gS", "<cmd>belowright | lua vim.lsp.buf.definition()<cr>", { desc = "Goto Definition in horizontal split" })
 | 
			
		||||
vim.keymap.set("n", "gD", "<cmd>lua vim.lsp.buf.declaration()<cr>", { desc = "Goto Declaration" })
 | 
			
		||||
vim.keymap.set("n", "gi", "<cmd>lua vim.lsp.buf.implementation()<cr>", { desc = "Goto Implementation" })
 | 
			
		||||
vim.keymap.set("n", "gr", "<cmd>lua vim.lsp.buf.references()<cr>", { desc = "Goto References" })
 | 
			
		||||
vim.keymap.set("n", "K", "<cmd>lua vim.lsp.buf.hover()<cr>", { desc = "Hover" })
 | 
			
		||||
 | 
			
		||||
vim.keymap.set("n", "<leader>ld", vim.diagnostic.open_float, { desc = "Line Diagnostics" })
 | 
			
		||||
vim.keymap.set("n", "<leader>ll", "<cmd>LspInfo<cr>", { desc = "Lsp Info" })
 | 
			
		||||
vim.keymap.set("n", "<leader>lf", vim.lsp.buf.format, { desc = "Format document" })
 | 
			
		||||
vim.keymap.set("n", "<leader>la", "<cmd>lua vim.lsp.buf.code_action()<CR>", { desc = "Code actions" })
 | 
			
		||||
vim.keymap.set("n", "<leader>lr", "<cmd>lua vim.lsp.buf.rename()<CR>", { desc = "Rename" })
 | 
			
		||||
 | 
			
		||||
-- colorizer
 | 
			
		||||
vim.keymap.set("n", "<leader>cs", "<cmd>ColorizerToggle<CR>", { desc = "Toggle show colors" })
 | 
			
		||||
							
								
								
									
										14
									
								
								.config/nvim/lua/config/lazy.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.config/nvim/lua/config/lazy.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 | 
			
		||||
if not vim.loop.fs_stat(lazypath) then
 | 
			
		||||
  -- bootstrap lazy.nvim
 | 
			
		||||
  -- stylua: ignore
 | 
			
		||||
  vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
 | 
			
		||||
end
 | 
			
		||||
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
 | 
			
		||||
 | 
			
		||||
require("lazy").setup({
 | 
			
		||||
	spec = {
 | 
			
		||||
		{ import = "plugins" },
 | 
			
		||||
	},
 | 
			
		||||
	checker = { enabled = true },
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										58
									
								
								.config/nvim/lua/config/options.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								.config/nvim/lua/config/options.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,58 @@
 | 
			
		|||
vim.g.mapleader = " "
 | 
			
		||||
vim.g.maplocalleader = "\\"
 | 
			
		||||
vim.g.autoformat_enabled = true
 | 
			
		||||
vim.g.cmp_enabled = true
 | 
			
		||||
vim.g.icons_enabled = true
 | 
			
		||||
 | 
			
		||||
local opt = vim.opt
 | 
			
		||||
 | 
			
		||||
opt.autowrite = true -- Enable auto write
 | 
			
		||||
opt.clipboard = "unnamedplus" -- Sync with system clipboard
 | 
			
		||||
opt.completeopt = "menu,menuone,noselect"
 | 
			
		||||
opt.conceallevel = 3 -- Hide * markup for bold and italic
 | 
			
		||||
opt.confirm = true -- Confirm to save changes before exiting modified buffer
 | 
			
		||||
opt.cursorline = true -- Enable highlighting of the current line
 | 
			
		||||
opt.expandtab = true -- Use spaces instead of tabs
 | 
			
		||||
opt.formatoptions = "jcroqlnt" -- tcqj
 | 
			
		||||
opt.grepformat = "%f:%l:%c:%m"
 | 
			
		||||
opt.grepprg = "rg --vimgrep"
 | 
			
		||||
opt.ignorecase = true -- Ignore case
 | 
			
		||||
opt.inccommand = "nosplit" -- preview incremental substitute
 | 
			
		||||
opt.laststatus = 0
 | 
			
		||||
opt.list = true -- Show some invisible characters (tabs...
 | 
			
		||||
opt.mouse = "a" -- Enable mouse mode
 | 
			
		||||
opt.number = true -- Print line number
 | 
			
		||||
opt.pumblend = 10 -- Popup blend
 | 
			
		||||
opt.pumheight = 10 -- Maximum number of entries in a popup
 | 
			
		||||
opt.relativenumber = true -- Relative line numbers
 | 
			
		||||
opt.scrolloff = 4 -- Lines of context
 | 
			
		||||
opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize" }
 | 
			
		||||
opt.shiftround = true -- Round indent
 | 
			
		||||
opt.shiftwidth = 2 -- Size of an indent
 | 
			
		||||
opt.shortmess:append({ W = true, I = true, c = true })
 | 
			
		||||
opt.showmode = false -- Dont show mode since we have a statusline
 | 
			
		||||
opt.sidescrolloff = 8 -- Columns of context
 | 
			
		||||
opt.signcolumn = "yes" -- Always show the signcolumn, otherwise it would shift the text each time
 | 
			
		||||
opt.smartcase = true -- Don't ignore case with capitals
 | 
			
		||||
opt.smartindent = true -- Insert indents automatically
 | 
			
		||||
opt.spell = true
 | 
			
		||||
opt.spelllang = { "en_us,pl" }
 | 
			
		||||
opt.splitbelow = true -- Put new windows below current
 | 
			
		||||
opt.splitright = true -- Put new windows right of current
 | 
			
		||||
opt.tabstop = 2 -- Number of spaces tabs count for
 | 
			
		||||
opt.termguicolors = true -- True color support
 | 
			
		||||
opt.timeoutlen = 300
 | 
			
		||||
opt.undofile = true
 | 
			
		||||
opt.undolevels = 10000
 | 
			
		||||
opt.updatetime = 200 -- Save swap file and trigger CursorHold
 | 
			
		||||
opt.wildmode = "longest:full,full" -- Command-line completion mode
 | 
			
		||||
opt.winminwidth = 5 -- Minimum window width
 | 
			
		||||
opt.wrap = false -- Disable line wrap
 | 
			
		||||
 | 
			
		||||
if vim.fn.has("nvim-0.9.0") == 1 then
 | 
			
		||||
  opt.splitkeep = "screen"
 | 
			
		||||
  opt.shortmess:append({ C = true })
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Fix markdown indentation settings
 | 
			
		||||
vim.g.markdown_recommended_style = 0
 | 
			
		||||
							
								
								
									
										7
									
								
								.config/nvim/lua/plugins/comment.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.config/nvim/lua/plugins/comment.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
return {
 | 
			
		||||
	{
 | 
			
		||||
		"numToStr/Comment.nvim",
 | 
			
		||||
		opts = {},
 | 
			
		||||
		lazy = false,
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										52
									
								
								.config/nvim/lua/plugins/copilot.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								.config/nvim/lua/plugins/copilot.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,52 @@
 | 
			
		|||
return {
 | 
			
		||||
	{
 | 
			
		||||
		"zbirenbaum/copilot.lua",
 | 
			
		||||
		cmd = "Copilot",
 | 
			
		||||
		event = "InsertEnter",
 | 
			
		||||
		config = function()
 | 
			
		||||
			require("copilot").setup({
 | 
			
		||||
				panel = {
 | 
			
		||||
					enabled = true,
 | 
			
		||||
					auto_refresh = false,
 | 
			
		||||
					keymap = {
 | 
			
		||||
						jump_prev = "[[",
 | 
			
		||||
						jump_next = "]]",
 | 
			
		||||
						accept = "<C-a>",
 | 
			
		||||
						refresh = "<C-r>",
 | 
			
		||||
						open = "<C-w>",
 | 
			
		||||
					},
 | 
			
		||||
					layout = {
 | 
			
		||||
						position = "bottom", -- | top | left | right
 | 
			
		||||
						ratio = 0.4,
 | 
			
		||||
					},
 | 
			
		||||
				},
 | 
			
		||||
				suggestion = {
 | 
			
		||||
					enabled = true,
 | 
			
		||||
					auto_trigger = true,
 | 
			
		||||
					debounce = 80,
 | 
			
		||||
					keymap = {
 | 
			
		||||
						accept = "<C-a>",
 | 
			
		||||
						accept_word = false,
 | 
			
		||||
						accept_line = false,
 | 
			
		||||
						next = "<C-q>",
 | 
			
		||||
						prev = "<C-e>",
 | 
			
		||||
						dismiss = "<C-d>",
 | 
			
		||||
					},
 | 
			
		||||
				},
 | 
			
		||||
				filetypes = {
 | 
			
		||||
					yaml = false,
 | 
			
		||||
					markdown = false,
 | 
			
		||||
					help = false,
 | 
			
		||||
					gitcommit = false,
 | 
			
		||||
					gitrebase = false,
 | 
			
		||||
					hgcommit = false,
 | 
			
		||||
					svn = false,
 | 
			
		||||
					cvs = false,
 | 
			
		||||
					["."] = false,
 | 
			
		||||
				},
 | 
			
		||||
				copilot_node_command = "node", -- Node.js version must be > 16.x
 | 
			
		||||
				server_opts_overrides = {},
 | 
			
		||||
			})
 | 
			
		||||
		end,
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								.config/nvim/lua/plugins/git.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								.config/nvim/lua/plugins/git.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
return {
 | 
			
		||||
	{
 | 
			
		||||
		"lewis6991/gitsigns.nvim",
 | 
			
		||||
		event = { "BufReadPre", "BufNewFile" },
 | 
			
		||||
		opts = {
 | 
			
		||||
			signs = {
 | 
			
		||||
				add = { text = "▎" },
 | 
			
		||||
				change = { text = "▎" },
 | 
			
		||||
				delete = { text = "" },
 | 
			
		||||
				topdelete = { text = "" },
 | 
			
		||||
				changedelete = { text = "▎" },
 | 
			
		||||
				untracked = { text = "▎" },
 | 
			
		||||
			},
 | 
			
		||||
			on_attach = function(buffer)
 | 
			
		||||
				local gs = package.loaded.gitsigns
 | 
			
		||||
 | 
			
		||||
				local function map(mode, l, r, desc)
 | 
			
		||||
					vim.keymap.set(mode, l, r, { buffer = buffer, desc = desc })
 | 
			
		||||
				end
 | 
			
		||||
 | 
			
		||||
        -- stylua: ignore start
 | 
			
		||||
        map("n", "]h", gs.next_hunk, "Next Hunk")
 | 
			
		||||
        map("n", "[h", gs.prev_hunk, "Prev Hunk")
 | 
			
		||||
        map({ "n", "v" }, "<leader>ghs", ":Gitsigns stage_hunk<CR>", "Stage Hunk")
 | 
			
		||||
        map({ "n", "v" }, "<leader>ghr", ":Gitsigns reset_hunk<CR>", "Reset Hunk")
 | 
			
		||||
        map("n", "<leader>ghS", gs.stage_buffer, "Stage Buffer")
 | 
			
		||||
        map("n", "<leader>ghu", gs.undo_stage_hunk, "Undo Stage Hunk")
 | 
			
		||||
        map("n", "<leader>ghR", gs.reset_buffer, "Reset Buffer")
 | 
			
		||||
        map("n", "<leader>ghp", gs.preview_hunk, "Preview Hunk")
 | 
			
		||||
        map("n", "<leader>ghb", function() gs.blame_line({ full = true }) end, "Blame Line")
 | 
			
		||||
        map("n", "<leader>ghd", gs.diffthis, "Diff This")
 | 
			
		||||
        map("n", "<leader>ghD", function() gs.diffthis("~") end, "Diff This ~")
 | 
			
		||||
        map({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "GitSigns Select Hunk")
 | 
			
		||||
			end,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										54
									
								
								.config/nvim/lua/plugins/lsp.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								.config/nvim/lua/plugins/lsp.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,54 @@
 | 
			
		|||
return {
 | 
			
		||||
	{
 | 
			
		||||
		"VonHeikemen/lsp-zero.nvim",
 | 
			
		||||
		branch = "v2.x",
 | 
			
		||||
		lazy = true,
 | 
			
		||||
		config = function()
 | 
			
		||||
			require("lsp-zero.settings").preset({})
 | 
			
		||||
		end,
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		"hrsh7th/nvim-cmp",
 | 
			
		||||
		event = "InsertEnter",
 | 
			
		||||
		dependencies = {
 | 
			
		||||
			{ "L3MON4D3/LuaSnip" },
 | 
			
		||||
		},
 | 
			
		||||
		config = function()
 | 
			
		||||
			require("lsp-zero.cmp").extend()
 | 
			
		||||
			local cmp = require("cmp")
 | 
			
		||||
			local cmp_action = require("lsp-zero.cmp").action()
 | 
			
		||||
 | 
			
		||||
			cmp.setup({
 | 
			
		||||
				mapping = {
 | 
			
		||||
					["<C-Space>"] = cmp.mapping.complete(),
 | 
			
		||||
					["<C-f>"] = cmp_action.luasnip_jump_forward(),
 | 
			
		||||
					["<C-b>"] = cmp_action.luasnip_jump_backward(),
 | 
			
		||||
          ['<Tab>'] = cmp.mapping.confirm({ select = true }),
 | 
			
		||||
				},
 | 
			
		||||
			})
 | 
			
		||||
		end,
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	-- LSP
 | 
			
		||||
	{
 | 
			
		||||
		"neovim/nvim-lspconfig",
 | 
			
		||||
		cmd = "LspInfo",
 | 
			
		||||
		event = { "BufReadPre", "BufNewFile" },
 | 
			
		||||
		dependencies = {
 | 
			
		||||
			{ "hrsh7th/cmp-nvim-lsp" },
 | 
			
		||||
			{ "williamboman/mason-lspconfig.nvim" },
 | 
			
		||||
			{ "williamboman/mason.nvim" },
 | 
			
		||||
		},
 | 
			
		||||
		config = function()
 | 
			
		||||
			local lsp = require("lsp-zero")
 | 
			
		||||
 | 
			
		||||
			lsp.on_attach(function(client, bufnr)
 | 
			
		||||
				lsp.default_keymaps({ buffer = bufnr })
 | 
			
		||||
			end)
 | 
			
		||||
 | 
			
		||||
			require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())
 | 
			
		||||
 | 
			
		||||
			lsp.setup()
 | 
			
		||||
		end,
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										317
									
								
								.config/nvim/lua/plugins/neo-tree.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										317
									
								
								.config/nvim/lua/plugins/neo-tree.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,317 @@
 | 
			
		|||
return {
 | 
			
		||||
  {
 | 
			
		||||
    "nvim-neo-tree/neo-tree.nvim",
 | 
			
		||||
    dependencies = {
 | 
			
		||||
      "nvim-lua/plenary.nvim",
 | 
			
		||||
      "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
 | 
			
		||||
      "MunifTanjim/nui.nvim",
 | 
			
		||||
      {
 | 
			
		||||
        's1n7ax/nvim-window-picker',
 | 
			
		||||
        name = 'window-picker',
 | 
			
		||||
        event = 'VeryLazy',
 | 
			
		||||
        version = '2.*',
 | 
			
		||||
        config = function()
 | 
			
		||||
          require 'window-picker'.setup()
 | 
			
		||||
        end,
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    lazy = false,
 | 
			
		||||
    keys = {
 | 
			
		||||
      {
 | 
			
		||||
        "<leader>fe",
 | 
			
		||||
        function()
 | 
			
		||||
          require("neo-tree.command").execute({ toggle = true, dir = vim.loop.cwd() })
 | 
			
		||||
        end,
 | 
			
		||||
        desc = "Explorer NeoTree (cwd)",
 | 
			
		||||
      },
 | 
			
		||||
      { "<leader>e", "<leader>fe", desc = "Explorer NeoTree", remap = true },
 | 
			
		||||
    },
 | 
			
		||||
    deactivate = function()
 | 
			
		||||
      vim.cmd([[Neotree close]])
 | 
			
		||||
    end,
 | 
			
		||||
    init = function()
 | 
			
		||||
      if vim.fn.argc() == 1 then
 | 
			
		||||
        local stat = vim.loop.fs_stat(vim.fn.argv(0))
 | 
			
		||||
        if stat and stat.type == "directory" then
 | 
			
		||||
          require("neo-tree")
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end,
 | 
			
		||||
    config = function()
 | 
			
		||||
      -- If you want icons for diagnostic errors, you'll need to define them somewhere:
 | 
			
		||||
      vim.fn.sign_define("DiagnosticSignError", { text = " ", texthl = "DiagnosticSignError" })
 | 
			
		||||
      vim.fn.sign_define("DiagnosticSignWarn", { text = " ", texthl = "DiagnosticSignWarn" })
 | 
			
		||||
      vim.fn.sign_define("DiagnosticSignInfo", { text = " ", texthl = "DiagnosticSignInfo" })
 | 
			
		||||
      vim.fn.sign_define("DiagnosticSignHint", { text = "", texthl = "DiagnosticSignHint" })
 | 
			
		||||
 | 
			
		||||
      require("neo-tree").setup({
 | 
			
		||||
        close_if_last_window = true, -- Close Neo-tree if it is the last window left in the tab
 | 
			
		||||
        popup_border_style = "rounded",
 | 
			
		||||
        enable_git_status = true,
 | 
			
		||||
        enable_diagnostics = true,
 | 
			
		||||
        enable_normal_mode_for_inputs = false,                         -- Enable normal mode for input dialogs.
 | 
			
		||||
        open_files_do_not_replace_types = { "terminal", "trouble", "qf" }, -- when opening files, do not use windows containing these filetypes or buftypes
 | 
			
		||||
        sort_case_insensitive = false,                                 -- used when sorting files and directories in the tree
 | 
			
		||||
        sort_function = nil,                                           -- use a custom function for sorting files and directories in the tree
 | 
			
		||||
        -- sort_function = function (a,b)
 | 
			
		||||
        --       if a.type == b.type then
 | 
			
		||||
        --           return a.path > b.path
 | 
			
		||||
        --       else
 | 
			
		||||
        --           return a.type > b.type
 | 
			
		||||
        --       end
 | 
			
		||||
        --   end , -- this sorts files and directories descendantly
 | 
			
		||||
        default_component_configs = {
 | 
			
		||||
          container = {
 | 
			
		||||
            enable_character_fade = true,
 | 
			
		||||
          },
 | 
			
		||||
          indent = {
 | 
			
		||||
            indent_size = 2,
 | 
			
		||||
            padding = 1, -- extra padding on left hand side
 | 
			
		||||
            -- indent guides
 | 
			
		||||
            with_markers = true,
 | 
			
		||||
            indent_marker = "│",
 | 
			
		||||
            last_indent_marker = "└",
 | 
			
		||||
            highlight = "NeoTreeIndentMarker",
 | 
			
		||||
            -- expander config, needed for nesting files
 | 
			
		||||
            with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders
 | 
			
		||||
            expander_collapsed = "",
 | 
			
		||||
            expander_expanded = "",
 | 
			
		||||
            expander_highlight = "NeoTreeExpander",
 | 
			
		||||
          },
 | 
			
		||||
          icon = {
 | 
			
		||||
            folder_closed = "",
 | 
			
		||||
            folder_open = "",
 | 
			
		||||
            folder_empty = "",
 | 
			
		||||
            -- The next two settings are only a fallback, if you use nvim-web-devicons and configure default icons there
 | 
			
		||||
            -- then these will never be used.
 | 
			
		||||
            default = "*",
 | 
			
		||||
            highlight = "NeoTreeFileIcon",
 | 
			
		||||
          },
 | 
			
		||||
          modified = {
 | 
			
		||||
            symbol = "[+]",
 | 
			
		||||
            highlight = "NeoTreeModified",
 | 
			
		||||
          },
 | 
			
		||||
          name = {
 | 
			
		||||
            trailing_slash = false,
 | 
			
		||||
            use_git_status_colors = true,
 | 
			
		||||
            highlight = "NeoTreeFileName",
 | 
			
		||||
          },
 | 
			
		||||
          git_status = {
 | 
			
		||||
            symbols = {
 | 
			
		||||
              -- Change type
 | 
			
		||||
              added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name
 | 
			
		||||
              modified = "", -- or "", but this is redundant info if you use git_status_colors on the name
 | 
			
		||||
              deleted = "✖", -- this can only be used in the git_status source
 | 
			
		||||
              renamed = "", -- this can only be used in the git_status source
 | 
			
		||||
              -- Status type
 | 
			
		||||
              untracked = "",
 | 
			
		||||
              ignored = "",
 | 
			
		||||
              unstaged = "",
 | 
			
		||||
              staged = "",
 | 
			
		||||
              conflict = "",
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          -- If you don't want to use these columns, you can set `enabled = false` for each of them individually
 | 
			
		||||
          file_size = {
 | 
			
		||||
            enabled = true,
 | 
			
		||||
            required_width = 64, -- min width of window required to show this column
 | 
			
		||||
          },
 | 
			
		||||
          type = {
 | 
			
		||||
            enabled = true,
 | 
			
		||||
            required_width = 122, -- min width of window required to show this column
 | 
			
		||||
          },
 | 
			
		||||
          last_modified = {
 | 
			
		||||
            enabled = true,
 | 
			
		||||
            required_width = 88, -- min width of window required to show this column
 | 
			
		||||
          },
 | 
			
		||||
          created = {
 | 
			
		||||
            enabled = true,
 | 
			
		||||
            required_width = 110, -- min width of window required to show this column
 | 
			
		||||
          },
 | 
			
		||||
          symlink_target = {
 | 
			
		||||
            enabled = false,
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        -- A list of functions, each representing a global custom command
 | 
			
		||||
        -- that will be available in all sources (if not overridden in `opts[source_name].commands`)
 | 
			
		||||
        -- see `:h neo-tree-custom-commands-global`
 | 
			
		||||
        commands = {},
 | 
			
		||||
        window = {
 | 
			
		||||
          position = "left",
 | 
			
		||||
          width = 40,
 | 
			
		||||
          mapping_options = {
 | 
			
		||||
            noremap = true,
 | 
			
		||||
            nowait = true,
 | 
			
		||||
          },
 | 
			
		||||
          mappings = {
 | 
			
		||||
            ["<space>"] = {
 | 
			
		||||
              "toggle_node",
 | 
			
		||||
              nowait = false, -- disable `nowait` if you have existing combos starting with this char that you want to use
 | 
			
		||||
            },
 | 
			
		||||
            ["<2-LeftMouse>"] = "open",
 | 
			
		||||
            ["o"] = "open",
 | 
			
		||||
            ["<esc>"] = "cancel", -- close preview or floating neo-tree window
 | 
			
		||||
            ["P"] = { "toggle_preview", config = { use_float = true } },
 | 
			
		||||
            ["l"] = "focus_preview",
 | 
			
		||||
            -- ["S"] = "open_split",
 | 
			
		||||
            -- ["s"] = "open_vsplit",
 | 
			
		||||
            ["S"] = "split_with_window_picker",
 | 
			
		||||
            ["s"] = "vsplit_with_window_picker",
 | 
			
		||||
            -- ["t"] = "open_tabnew",
 | 
			
		||||
            -- ["t"] = "open_drop",
 | 
			
		||||
            -- ["t"] = "open_tab_drop",
 | 
			
		||||
            ["w"] = "open_with_window_picker",
 | 
			
		||||
            --["P"] = "toggle_preview", -- enter preview mode, which shows the current node without focusing
 | 
			
		||||
            ["C"] = "close_node",
 | 
			
		||||
            -- ['C'] = 'close_all_subnodes',
 | 
			
		||||
            ["z"] = "close_all_nodes",
 | 
			
		||||
            --["Z"] = "expand_all_nodes",
 | 
			
		||||
            ["a"] = {
 | 
			
		||||
              "add",
 | 
			
		||||
              -- this command supports BASH style brace expansion ("x{a,b,c}" -> xa,xb,xc). see `:h neo-tree-file-actions` for details
 | 
			
		||||
              -- some commands may take optional config options, see `:h neo-tree-mappings` for details
 | 
			
		||||
              config = {
 | 
			
		||||
                show_path = "none", -- "none", "relative", "absolute"
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
            ["A"] = "add_directory", -- also accepts the optional config.show_path option like "add". this also supports BASH style brace expansion.
 | 
			
		||||
            ["d"] = "delete",
 | 
			
		||||
            ["r"] = "rename",
 | 
			
		||||
            ["y"] = "copy_to_clipboard",
 | 
			
		||||
            ["x"] = "cut_to_clipboard",
 | 
			
		||||
            ["p"] = "paste_from_clipboard",
 | 
			
		||||
            ["c"] = "copy", -- takes text input for destination, also accepts the optional config.show_path option like "add":
 | 
			
		||||
            -- ["c"] = {
 | 
			
		||||
            --  "copy",
 | 
			
		||||
            --  config = {
 | 
			
		||||
            --    show_path = "none" -- "none", "relative", "absolute"
 | 
			
		||||
            --  }
 | 
			
		||||
            --}
 | 
			
		||||
            ["m"] = "move", -- takes text input for destination, also accepts the optional config.show_path option like "add".
 | 
			
		||||
            ["q"] = "close_window",
 | 
			
		||||
            ["R"] = "refresh",
 | 
			
		||||
            ["?"] = "show_help",
 | 
			
		||||
            ["<"] = "prev_source",
 | 
			
		||||
            [">"] = "next_source",
 | 
			
		||||
            ["i"] = "show_file_details",
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        nesting_rules = {},
 | 
			
		||||
        filesystem = {
 | 
			
		||||
          filtered_items = {
 | 
			
		||||
            visible = false, -- when true, they will just be displayed differently than normal items
 | 
			
		||||
            hide_dotfiles = true,
 | 
			
		||||
            hide_gitignored = true,
 | 
			
		||||
            hide_hidden = true, -- only works on Windows for hidden files/directories
 | 
			
		||||
            hide_by_name = {
 | 
			
		||||
              --"node_modules"
 | 
			
		||||
            },
 | 
			
		||||
            hide_by_pattern = { -- uses glob style patterns
 | 
			
		||||
              --"*.meta",
 | 
			
		||||
              --"*/src/*/tsconfig.json",
 | 
			
		||||
            },
 | 
			
		||||
            always_show = { -- remains visible even if other settings would normally hide it
 | 
			
		||||
              --".gitignored",
 | 
			
		||||
            },
 | 
			
		||||
            never_show = { -- remains hidden even if visible is toggled to true, this overrides always_show
 | 
			
		||||
              --".DS_Store",
 | 
			
		||||
              --"thumbs.db"
 | 
			
		||||
            },
 | 
			
		||||
            never_show_by_pattern = { -- uses glob style patterns
 | 
			
		||||
              --".null-ls_*",
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          follow_current_file = {
 | 
			
		||||
            enabled = false,                 -- This will find and focus the file in the active buffer every time
 | 
			
		||||
            --               -- the current file is changed while the tree is open.
 | 
			
		||||
            leave_dirs_open = false,         -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
 | 
			
		||||
          },
 | 
			
		||||
          group_empty_dirs = false,          -- when true, empty folders will be grouped together
 | 
			
		||||
          hijack_netrw_behavior = "open_default", -- netrw disabled, opening a directory opens neo-tree
 | 
			
		||||
          -- in whatever position is specified in window.position
 | 
			
		||||
          -- "open_current",  -- netrw disabled, opening a directory opens within the
 | 
			
		||||
          -- window like netrw would, regardless of window.position
 | 
			
		||||
          -- "disabled",    -- netrw left alone, neo-tree does not handle opening dirs
 | 
			
		||||
          use_libuv_file_watcher = false, -- This will use the OS level file watchers to detect changes
 | 
			
		||||
          -- instead of relying on nvim autocmd events.
 | 
			
		||||
          window = {
 | 
			
		||||
            mappings = {
 | 
			
		||||
              ["<bs>"] = "navigate_up",
 | 
			
		||||
              ["."] = "set_root",
 | 
			
		||||
              ["H"] = "toggle_hidden",
 | 
			
		||||
              ["/"] = "fuzzy_finder",
 | 
			
		||||
              ["D"] = "fuzzy_finder_directory",
 | 
			
		||||
              ["#"] = "fuzzy_sorter", -- fuzzy sorting using the fzy algorithm
 | 
			
		||||
              -- ["D"] = "fuzzy_sorter_directory",
 | 
			
		||||
              ["f"] = "filter_on_submit",
 | 
			
		||||
              ["<c-x>"] = "clear_filter",
 | 
			
		||||
              ["[g"] = "prev_git_modified",
 | 
			
		||||
              ["]g"] = "next_git_modified",
 | 
			
		||||
              ["oc"] = { "order_by_created", nowait = false },
 | 
			
		||||
              ["od"] = { "order_by_diagnostics", nowait = false },
 | 
			
		||||
              ["og"] = { "order_by_git_status", nowait = false },
 | 
			
		||||
              ["om"] = { "order_by_modified", nowait = false },
 | 
			
		||||
              ["on"] = { "order_by_name", nowait = false },
 | 
			
		||||
              ["os"] = { "order_by_size", nowait = false },
 | 
			
		||||
              ["ot"] = { "order_by_type", nowait = false },
 | 
			
		||||
            },
 | 
			
		||||
            fuzzy_finder_mappings = { -- define keymaps for filter popup window in fuzzy_finder_mode
 | 
			
		||||
              ["<down>"] = "move_cursor_down",
 | 
			
		||||
              ["<C-n>"] = "move_cursor_down",
 | 
			
		||||
              ["<up>"] = "move_cursor_up",
 | 
			
		||||
              ["<C-p>"] = "move_cursor_up",
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
 | 
			
		||||
          commands = {}, -- Add a custom command or override a global one using the same function name
 | 
			
		||||
        },
 | 
			
		||||
        buffers = {
 | 
			
		||||
          follow_current_file = {
 | 
			
		||||
            enabled = true,    -- This will find and focus the file in the active buffer every time
 | 
			
		||||
            --              -- the current file is changed while the tree is open.
 | 
			
		||||
            leave_dirs_open = false, -- `false` closes auto expanded dirs, such as with `:Neotree reveal`
 | 
			
		||||
          },
 | 
			
		||||
          group_empty_dirs = true, -- when true, empty folders will be grouped together
 | 
			
		||||
          show_unloaded = true,
 | 
			
		||||
          window = {
 | 
			
		||||
            mappings = {
 | 
			
		||||
              ["bd"] = "buffer_delete",
 | 
			
		||||
              ["<bs>"] = "navigate_up",
 | 
			
		||||
              ["."] = "set_root",
 | 
			
		||||
              ["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } },
 | 
			
		||||
              ["oc"] = { "order_by_created", nowait = false },
 | 
			
		||||
              ["od"] = { "order_by_diagnostics", nowait = false },
 | 
			
		||||
              ["om"] = { "order_by_modified", nowait = false },
 | 
			
		||||
              ["on"] = { "order_by_name", nowait = false },
 | 
			
		||||
              ["os"] = { "order_by_size", nowait = false },
 | 
			
		||||
              ["ot"] = { "order_by_type", nowait = false },
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        git_status = {
 | 
			
		||||
          window = {
 | 
			
		||||
            position = "float",
 | 
			
		||||
            mappings = {
 | 
			
		||||
              ["A"] = "git_add_all",
 | 
			
		||||
              ["gu"] = "git_unstage_file",
 | 
			
		||||
              ["ga"] = "git_add_file",
 | 
			
		||||
              ["gr"] = "git_revert_file",
 | 
			
		||||
              ["gc"] = "git_commit",
 | 
			
		||||
              ["gp"] = "git_push",
 | 
			
		||||
              ["gg"] = "git_commit_and_push",
 | 
			
		||||
              ["o"] = { "show_help", nowait = false, config = { title = "Order by", prefix_key = "o" } },
 | 
			
		||||
              ["oc"] = { "order_by_created", nowait = false },
 | 
			
		||||
              ["od"] = { "order_by_diagnostics", nowait = false },
 | 
			
		||||
              ["om"] = { "order_by_modified", nowait = false },
 | 
			
		||||
              ["on"] = { "order_by_name", nowait = false },
 | 
			
		||||
              ["os"] = { "order_by_size", nowait = false },
 | 
			
		||||
              ["ot"] = { "order_by_type", nowait = false },
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
      })
 | 
			
		||||
 | 
			
		||||
      vim.cmd([[nnoremap \ :Neotree reveal<cr>]])
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										8
									
								
								.config/nvim/lua/plugins/outline.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.config/nvim/lua/plugins/outline.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
return {
 | 
			
		||||
	{
 | 
			
		||||
		"simrat39/symbols-outline.nvim",
 | 
			
		||||
		cmd = "SymbolsOutline",
 | 
			
		||||
		keys = { { "<leader>ls", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
 | 
			
		||||
		config = true,
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								.config/nvim/lua/plugins/telescope.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								.config/nvim/lua/plugins/telescope.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,39 @@
 | 
			
		|||
return {
 | 
			
		||||
	{
 | 
			
		||||
		"nvim-telescope/telescope.nvim",
 | 
			
		||||
		keys = {
 | 
			
		||||
			{
 | 
			
		||||
				"<leader>ff",
 | 
			
		||||
				function()
 | 
			
		||||
					require("telescope.builtin").find_files()
 | 
			
		||||
				end,
 | 
			
		||||
				desc = "Find Plugin File",
 | 
			
		||||
			},
 | 
			
		||||
			{
 | 
			
		||||
				"<leader>fw",
 | 
			
		||||
				function()
 | 
			
		||||
					require("telescope.builtin").live_grep()
 | 
			
		||||
				end,
 | 
			
		||||
				desc = "Find File",
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		opts = {
 | 
			
		||||
			defaults = {
 | 
			
		||||
				layout_strategy = "horizontal",
 | 
			
		||||
				layout_config = { prompt_position = "top" },
 | 
			
		||||
				sorting_strategy = "ascending",
 | 
			
		||||
				winblend = 0,
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		"telescope.nvim",
 | 
			
		||||
		dependencies = {
 | 
			
		||||
			"nvim-telescope/telescope-fzf-native.nvim",
 | 
			
		||||
			build = "make",
 | 
			
		||||
			config = function()
 | 
			
		||||
				require("telescope").load_extension("fzf")
 | 
			
		||||
			end,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								.config/nvim/lua/plugins/theme.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.config/nvim/lua/plugins/theme.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
return {
 | 
			
		||||
  {
 | 
			
		||||
    "RRethy/nvim-base16",
 | 
			
		||||
    name = "nvim-base16",
 | 
			
		||||
    lazy = false,
 | 
			
		||||
    priority = 1000,
 | 
			
		||||
    config = function()
 | 
			
		||||
      vim.cmd.colorscheme "base16-ocean"
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "norcalli/nvim-colorizer.lua",
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								.config/nvim/lua/plugins/todo.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.config/nvim/lua/plugins/todo.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,13 @@
 | 
			
		|||
return {
 | 
			
		||||
	{
 | 
			
		||||
		"folke/todo-comments.nvim",
 | 
			
		||||
		cmd = { "TodoTrouble", "TodoTelescope" },
 | 
			
		||||
		event = { "BufReadPost", "BufNewFile" },
 | 
			
		||||
		config = true,
 | 
			
		||||
    -- stylua: ignore
 | 
			
		||||
    keys = {
 | 
			
		||||
      { "]t", function() require("todo-comments").jump_next() end, desc = "Next todo comment" },
 | 
			
		||||
      { "[t", function() require("todo-comments").jump_prev() end, desc = "Previous todo comment" },
 | 
			
		||||
    },
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										86
									
								
								.config/nvim/lua/plugins/treesitter.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								.config/nvim/lua/plugins/treesitter.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,86 @@
 | 
			
		|||
return {
 | 
			
		||||
  {
 | 
			
		||||
    "nvim-treesitter/nvim-treesitter",
 | 
			
		||||
    version = false, -- last release is way too old and doesn't work on Windows
 | 
			
		||||
    build = ":TSUpdate",
 | 
			
		||||
    event = { "BufReadPost", "BufNewFile" },
 | 
			
		||||
    dependencies = {
 | 
			
		||||
      {
 | 
			
		||||
        "nvim-treesitter/nvim-treesitter-textobjects",
 | 
			
		||||
        init = function()
 | 
			
		||||
          -- disable rtp plugin, as we only need its queries for mini.ai
 | 
			
		||||
          -- In case other textobject modules are enabled, we will load them
 | 
			
		||||
          -- once nvim-treesitter is loaded
 | 
			
		||||
          require("lazy.core.loader").disable_rtp_plugin("nvim-treesitter-textobjects")
 | 
			
		||||
          load_textobjects = true
 | 
			
		||||
        end,
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    cmd = { "TSUpdateSync" },
 | 
			
		||||
    keys = {
 | 
			
		||||
      { "<c-space>", desc = "Increment selection" },
 | 
			
		||||
      { "<bs>",      desc = "Decrement selection", mode = "x" },
 | 
			
		||||
    },
 | 
			
		||||
    opts = {
 | 
			
		||||
      highlight = { enable = true },
 | 
			
		||||
      indent = { enable = true },
 | 
			
		||||
      ensure_installed = {
 | 
			
		||||
        "bash",
 | 
			
		||||
        "c",
 | 
			
		||||
        "html",
 | 
			
		||||
        "javascript",
 | 
			
		||||
        "jsdoc",
 | 
			
		||||
        "json",
 | 
			
		||||
        "lua",
 | 
			
		||||
        "luadoc",
 | 
			
		||||
        "luap",
 | 
			
		||||
        "markdown",
 | 
			
		||||
        "markdown_inline",
 | 
			
		||||
        "python",
 | 
			
		||||
        "query",
 | 
			
		||||
        "regex",
 | 
			
		||||
        "tsx",
 | 
			
		||||
        "typescript",
 | 
			
		||||
        "vim",
 | 
			
		||||
        "vimdoc",
 | 
			
		||||
        "yaml",
 | 
			
		||||
      },
 | 
			
		||||
      incremental_selection = {
 | 
			
		||||
        enable = true,
 | 
			
		||||
        keymaps = {
 | 
			
		||||
          init_selection = "<C-space>",
 | 
			
		||||
          node_incremental = "<C-space>",
 | 
			
		||||
          scope_incremental = false,
 | 
			
		||||
          node_decremental = "<bs>",
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    config = function(_, opts)
 | 
			
		||||
      if type(opts.ensure_installed) == "table" then
 | 
			
		||||
        local added = {}
 | 
			
		||||
        opts.ensure_installed = vim.tbl_filter(function(lang)
 | 
			
		||||
          if added[lang] then
 | 
			
		||||
            return false
 | 
			
		||||
          end
 | 
			
		||||
          added[lang] = true
 | 
			
		||||
          return true
 | 
			
		||||
        end, opts.ensure_installed)
 | 
			
		||||
      end
 | 
			
		||||
      require("nvim-treesitter.configs").setup(opts)
 | 
			
		||||
 | 
			
		||||
      if load_textobjects then
 | 
			
		||||
        if opts.textobjects then
 | 
			
		||||
          for _, mod in ipairs({ "move", "select", "swap", "lsp_interop" }) do
 | 
			
		||||
            if opts.textobjects[mod] and opts.textobjects[mod].enable then
 | 
			
		||||
              local Loader = require("lazy.core.loader")
 | 
			
		||||
              Loader.disabled_rtp_plugins["nvim-treesitter-textobjects"] = nil
 | 
			
		||||
              local plugin = require("lazy.core.config").plugins["nvim-treesitter-textobjects"]
 | 
			
		||||
              require("lazy.core.loader").source_runtime(plugin.dir, "plugin")
 | 
			
		||||
              break
 | 
			
		||||
            end
 | 
			
		||||
          end
 | 
			
		||||
        end
 | 
			
		||||
      end
 | 
			
		||||
    end,
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								.config/nvim/lua/plugins/trouble.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								.config/nvim/lua/plugins/trouble.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
return {
 | 
			
		||||
	{
 | 
			
		||||
		"folke/trouble.nvim",
 | 
			
		||||
		-- opts will be merged with the parent spec
 | 
			
		||||
		opts = {},
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										324
									
								
								.config/nvim/lua/plugins/ui.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										324
									
								
								.config/nvim/lua/plugins/ui.lua
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,324 @@
 | 
			
		|||
return {
 | 
			
		||||
  {
 | 
			
		||||
    "rcarriga/nvim-notify",
 | 
			
		||||
    keys = {
 | 
			
		||||
      {
 | 
			
		||||
        "<leader>un",
 | 
			
		||||
        function()
 | 
			
		||||
          require("notify").dismiss({ silent = true, pending = true })
 | 
			
		||||
        end,
 | 
			
		||||
        desc = "Dismiss all Notifications",
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    opts = {
 | 
			
		||||
      timeout = 3000,
 | 
			
		||||
      max_height = function()
 | 
			
		||||
        return math.floor(vim.o.lines * 0.75)
 | 
			
		||||
      end,
 | 
			
		||||
      max_width = function()
 | 
			
		||||
        return math.floor(vim.o.columns * 0.75)
 | 
			
		||||
      end,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "nvim-lualine/lualine.nvim",
 | 
			
		||||
    event = "VeryLazy",
 | 
			
		||||
    opts = function()
 | 
			
		||||
      return {
 | 
			
		||||
        options = {
 | 
			
		||||
          theme = "auto",
 | 
			
		||||
          globalstatus = true,
 | 
			
		||||
          disabled_filetypes = { statusline = { "dashboard", "alpha" } },
 | 
			
		||||
        },
 | 
			
		||||
        sections = {
 | 
			
		||||
          lualine_a = { "mode" },
 | 
			
		||||
          lualine_b = { "branch" },
 | 
			
		||||
          lualine_c = {
 | 
			
		||||
            {
 | 
			
		||||
              "diagnostics",
 | 
			
		||||
              symbols = {
 | 
			
		||||
                error = "",
 | 
			
		||||
                warn = "",
 | 
			
		||||
                info = "",
 | 
			
		||||
                hint = "",
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
            { "filetype", icon_only = true, separator = "", padding = { left = 1, right = 0 } },
 | 
			
		||||
            { "filename", path = 1, symbols = { modified = "  ", readonly = "", unnamed = "" } },
 | 
			
		||||
            {
 | 
			
		||||
              function() return require("nvim-navic").get_location() end,
 | 
			
		||||
              cond = function() return package.loaded["nvim-navic"] and require("nvim-navic").is_available() end,
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          lualine_x = {
 | 
			
		||||
            {
 | 
			
		||||
              function() return require("noice").api.status.command.get() end,
 | 
			
		||||
              cond = function() return package.loaded["noice"] and require("noice").api.status.command.has() end,
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              function() return require("noice").api.status.mode.get() end,
 | 
			
		||||
              cond = function() return package.loaded["noice"] and require("noice").api.status.mode.has() end,
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
              function() return "  " .. require("dap").status() end,
 | 
			
		||||
              cond = function () return package.loaded["dap"] and require("dap").status() ~= "" end,
 | 
			
		||||
            },
 | 
			
		||||
            { require("lazy.status").updates, cond = require("lazy.status").has_updates},
 | 
			
		||||
            {
 | 
			
		||||
              "diff",
 | 
			
		||||
              symbols = {
 | 
			
		||||
                added = "",
 | 
			
		||||
                modified = "",
 | 
			
		||||
                removed = "✖",
 | 
			
		||||
              },
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          lualine_y = {
 | 
			
		||||
            { "progress", separator = " ", padding = { left = 1, right = 0 } },
 | 
			
		||||
            { "location", padding = { left = 0, right = 1 } },
 | 
			
		||||
          },
 | 
			
		||||
          lualine_z = {
 | 
			
		||||
            function()
 | 
			
		||||
              return " " .. os.date("%R")
 | 
			
		||||
            end,
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
        extensions = { "neo-tree", "lazy" },
 | 
			
		||||
      }
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "lukas-reineke/indent-blankline.nvim",
 | 
			
		||||
    event = { "BufReadPost", "BufNewFile" },
 | 
			
		||||
    opts = {
 | 
			
		||||
      -- char = "▏",
 | 
			
		||||
      char = "│",
 | 
			
		||||
      filetype_exclude = {
 | 
			
		||||
        "help",
 | 
			
		||||
        "alpha",
 | 
			
		||||
        "dashboard",
 | 
			
		||||
        "neo-tree",
 | 
			
		||||
        "Trouble",
 | 
			
		||||
        "lazy",
 | 
			
		||||
        "mason",
 | 
			
		||||
        "notify",
 | 
			
		||||
        "toggleterm",
 | 
			
		||||
        "lazyterm",
 | 
			
		||||
      },
 | 
			
		||||
      show_trailing_blankline_indent = false,
 | 
			
		||||
      show_current_context = false,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "echasnovski/mini.indentscope",
 | 
			
		||||
    version = false, -- wait till new 0.7.0 release to put it back on semver
 | 
			
		||||
    event = { "BufReadPre", "BufNewFile" },
 | 
			
		||||
    opts = {
 | 
			
		||||
      -- symbol = "▏",
 | 
			
		||||
      symbol = "│",
 | 
			
		||||
      options = { try_as_border = true },
 | 
			
		||||
    },
 | 
			
		||||
    init = function()
 | 
			
		||||
      vim.api.nvim_create_autocmd("FileType", {
 | 
			
		||||
        pattern = {
 | 
			
		||||
          "help",
 | 
			
		||||
          "alpha",
 | 
			
		||||
          "dashboard",
 | 
			
		||||
          "neo-tree",
 | 
			
		||||
          "Trouble",
 | 
			
		||||
          "lazy",
 | 
			
		||||
          "mason",
 | 
			
		||||
          "notify",
 | 
			
		||||
          "toggleterm",
 | 
			
		||||
          "lazyterm",
 | 
			
		||||
        },
 | 
			
		||||
        callback = function()
 | 
			
		||||
          vim.b.miniindentscope_disable = true
 | 
			
		||||
        end,
 | 
			
		||||
      })
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "akinsho/bufferline.nvim",
 | 
			
		||||
    event = "VeryLazy",
 | 
			
		||||
    keys = {
 | 
			
		||||
      { "<leader>bp", "<Cmd>BufferLineTogglePin<CR>", desc = "Toggle pin" },
 | 
			
		||||
      { "<leader>bP", "<Cmd>BufferLineGroupClose ungrouped<CR>", desc = "Delete non-pinned buffers" },
 | 
			
		||||
    },
 | 
			
		||||
    opts = {
 | 
			
		||||
      options = {
 | 
			
		||||
        -- stylua: ignore
 | 
			
		||||
        close_command = function(n) require("mini.bufremove").delete(n, false) end,
 | 
			
		||||
        -- stylua: ignore
 | 
			
		||||
        right_mouse_command = function(n) require("mini.bufremove").delete(n, false) end,
 | 
			
		||||
        diagnostics = "nvim_lsp",
 | 
			
		||||
        always_show_bufferline = false,
 | 
			
		||||
        diagnostics_indicator = function(_, _, diag)
 | 
			
		||||
          local icons = require("lazyvim.config").icons.diagnostics
 | 
			
		||||
          local ret = (diag.error and icons.Error .. diag.error .. " " or "")
 | 
			
		||||
            .. (diag.warning and icons.Warn .. diag.warning or "")
 | 
			
		||||
          return vim.trim(ret)
 | 
			
		||||
        end,
 | 
			
		||||
        offsets = {
 | 
			
		||||
          {
 | 
			
		||||
            filetype = "neo-tree",
 | 
			
		||||
            text = "Neo-tree",
 | 
			
		||||
            highlight = "Directory",
 | 
			
		||||
            text_align = "left",
 | 
			
		||||
          },
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "folke/which-key.nvim",
 | 
			
		||||
    event = "VeryLazy",
 | 
			
		||||
    opts = {
 | 
			
		||||
      plugins = { spelling = true },
 | 
			
		||||
      defaults = {
 | 
			
		||||
        mode = { "n", "v" },
 | 
			
		||||
        ["g"] = { name = "+goto" },
 | 
			
		||||
        ["gz"] = { name = "+surround" },
 | 
			
		||||
        ["]"] = { name = "+next" },
 | 
			
		||||
        ["["] = { name = "+prev" },
 | 
			
		||||
        ["<leader><tab>"] = { name = "+tabs" },
 | 
			
		||||
        ["<leader>b"] = { name = "+buffer" },
 | 
			
		||||
        ["<leader>c"] = { name = "+colors" },
 | 
			
		||||
        ["<leader>l"] = { name = "+lsp" },
 | 
			
		||||
        ["<leader>f"] = { name = "+file/find" },
 | 
			
		||||
        ["<leader>g"] = { name = "+goto" },
 | 
			
		||||
        ["<leader>u"] = { name = "+ui" },
 | 
			
		||||
        ["<leader>w"] = { name = "+windows" },
 | 
			
		||||
        ["<leader>x"] = { name = "+diagnostics/quickfix" },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    config = function(_, opts)
 | 
			
		||||
      local wk = require("which-key")
 | 
			
		||||
      wk.setup(opts)
 | 
			
		||||
      wk.register(opts.defaults)
 | 
			
		||||
    end,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    "folke/noice.nvim",
 | 
			
		||||
    event = "VeryLazy",
 | 
			
		||||
    opts = {
 | 
			
		||||
      lsp = {
 | 
			
		||||
        override = {
 | 
			
		||||
          ["vim.lsp.util.convert_input_to_markdown_lines"] = true,
 | 
			
		||||
          ["vim.lsp.util.stylize_markdown"] = true,
 | 
			
		||||
          ["cmp.entry.get_documentation"] = true,
 | 
			
		||||
        },
 | 
			
		||||
        hover = { enabled = false },
 | 
			
		||||
        signature = { enabled = false },
 | 
			
		||||
      },
 | 
			
		||||
      routes = {
 | 
			
		||||
        {
 | 
			
		||||
          filter = {
 | 
			
		||||
            event = "msg_show",
 | 
			
		||||
            any = {
 | 
			
		||||
              { find = "%d+L, %d+B" },
 | 
			
		||||
              { find = "; after #%d+" },
 | 
			
		||||
              { find = "; before #%d+" },
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
          view = "mini",
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
      presets = {
 | 
			
		||||
        bottom_search = true,
 | 
			
		||||
        command_palette = true,
 | 
			
		||||
        long_message_to_split = true,
 | 
			
		||||
        inc_rename = true,
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    -- stylua: ignore
 | 
			
		||||
    keys = {
 | 
			
		||||
      {
 | 
			
		||||
        "<S-Enter>",
 | 
			
		||||
        function() require("noice").redirect(vim.fn.getcmdline()) end,
 | 
			
		||||
        mode = "c",
 | 
			
		||||
        desc =
 | 
			
		||||
        "Redirect Cmdline"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "<leader>snl",
 | 
			
		||||
        function() require("noice").cmd("last") end,
 | 
			
		||||
        desc =
 | 
			
		||||
        "Noice Last Message"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "<leader>snh",
 | 
			
		||||
        function() require("noice").cmd("history") end,
 | 
			
		||||
        desc =
 | 
			
		||||
        "Noice History"
 | 
			
		||||
      },
 | 
			
		||||
      { "<leader>sna", function() require("noice").cmd("all") end, desc = "Noice All" },
 | 
			
		||||
      {
 | 
			
		||||
        "<leader>snd",
 | 
			
		||||
        function() require("noice").cmd("dismiss") end,
 | 
			
		||||
        desc =
 | 
			
		||||
        "Dismiss All"
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "<c-f>",
 | 
			
		||||
        function() if not require("noice.lsp").scroll(4) then return "<c-f>" end end,
 | 
			
		||||
        silent = true,
 | 
			
		||||
        expr = true,
 | 
			
		||||
        desc =
 | 
			
		||||
        "Scroll forward",
 | 
			
		||||
        mode = {
 | 
			
		||||
          "i", "n", "s" }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
        "<c-b>",
 | 
			
		||||
        function() if not require("noice.lsp").scroll(-4) then return "<c-b>" end end,
 | 
			
		||||
        silent = true,
 | 
			
		||||
        expr = true,
 | 
			
		||||
        desc =
 | 
			
		||||
        "Scroll backward",
 | 
			
		||||
        mode = {
 | 
			
		||||
          "i", "n", "s" }
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  -- icons
 | 
			
		||||
  { "nvim-tree/nvim-web-devicons", lazy = true },
 | 
			
		||||
  -- ui components
 | 
			
		||||
  { "MunifTanjim/nui.nvim",        lazy = true },
 | 
			
		||||
  {
 | 
			
		||||
    "RRethy/vim-illuminate",
 | 
			
		||||
    event = { "BufReadPost", "BufNewFile" },
 | 
			
		||||
    opts = {
 | 
			
		||||
      delay = 200,
 | 
			
		||||
      large_file_cutoff = 2000,
 | 
			
		||||
      large_file_overrides = {
 | 
			
		||||
        providers = { "lsp" },
 | 
			
		||||
      },
 | 
			
		||||
    },
 | 
			
		||||
    config = function(_, opts)
 | 
			
		||||
      require("illuminate").configure(opts)
 | 
			
		||||
 | 
			
		||||
      local function map(key, dir, buffer)
 | 
			
		||||
        vim.keymap.set("n", key, function()
 | 
			
		||||
          require("illuminate")["goto_" .. dir .. "_reference"](false)
 | 
			
		||||
        end, { desc = dir:sub(1, 1):upper() .. dir:sub(2) .. " Reference", buffer = buffer })
 | 
			
		||||
      end
 | 
			
		||||
 | 
			
		||||
      map("]]", "next")
 | 
			
		||||
      map("[[", "prev")
 | 
			
		||||
 | 
			
		||||
      -- also set it after loading ftplugins, since a lot overwrite [[ and ]]
 | 
			
		||||
      vim.api.nvim_create_autocmd("FileType", {
 | 
			
		||||
        callback = function()
 | 
			
		||||
          local buffer = vim.api.nvim_get_current_buf()
 | 
			
		||||
          map("]]", "next", buffer)
 | 
			
		||||
          map("[[", "prev", buffer)
 | 
			
		||||
        end,
 | 
			
		||||
      })
 | 
			
		||||
    end,
 | 
			
		||||
    keys = {
 | 
			
		||||
      { "]]", desc = "Next Reference" },
 | 
			
		||||
      { "[[", desc = "Prev Reference" },
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								.config/nvim/spell/pl.utf-8.spl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.config/nvim/spell/pl.utf-8.spl
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in a new issue