Compare commits
	
		
			37 Commits
		
	
	
		
			lazy
			...
			c62cbcd80d
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c62cbcd80d | |||
| b0e4d0b4be | |||
| 4717d2726c | |||
| f14f03bd88 | |||
| 1d563ec9d4 | |||
| 8de9de662f | |||
| 14edeb2713 | |||
| 92a6cfc071 | |||
| 89e118f1a1 | |||
| 670ecf53dd | |||
| 4c81d0b05b | |||
| a56b8f7029 | |||
|  | 50b8c88e92 | ||
|  | 9ce77dacc9 | ||
|  | c9bcbf2327 | ||
|  | e3762ced4e | ||
|  | 8b714fabfa | ||
|  | 9b831f0e3a | ||
|  | f942ea2f91 | ||
|  | b366437a6a | ||
|  | fbbd0c5512 | ||
|  | 4f2c968b33 | ||
|  | 11763243dc | ||
| e777391307 | |||
|  | 9f6b6776c2 | ||
|  | 8c82f7cab4 | ||
|  | 4da8e11ada | ||
|  | ac2447ac6e | ||
|  | fd5401c9d7 | ||
|  | 1d2cd23307 | ||
|  | 40303719a2 | ||
|  | b2f02b5c13 | ||
|  | afcce108f7 | ||
|  | 46edb66356 | ||
|  | cc9fc11a62 | ||
|  | a4e6919899 | ||
| 4fc013a680 | 
							
								
								
									
										19
									
								
								.luarc.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								.luarc.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | { | ||||||
|  |     "workspace.library": [ | ||||||
|  |         "/Users/fschmidt/.config/nvim", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/lazy.nvim", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/cmp-nvim-lsp", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/nvim-lspconfig", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/mason.nvim", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/mason-lspconfig.nvim", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/nvim-web-devicons", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/nvim-tree.lua", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/null-ls.nvim", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/lualine.nvim", | ||||||
|  |         "/usr/local/Cellar/neovim/0.8.3/share/nvim/runtime", | ||||||
|  |         "/usr/local/Cellar/neovim/0.8.3/lib/nvim", | ||||||
|  |         "/Users/fschmidt/.local/state/nvim/lazy/readme", | ||||||
|  |         "/Users/fschmidt/.local/share/nvim/lazy/cmp-nvim-lsp/after", | ||||||
|  |         "${3rd}/luassert/library" | ||||||
|  |     ] | ||||||
|  | } | ||||||
							
								
								
									
										9
									
								
								after/ftplugin/rust.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								after/ftplugin/rust.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | for _, method in ipairs({ 'textDocument/diagnostic', 'workspace/diagnostic' }) do | ||||||
|  | 	local default_diagnostic_handler = vim.lsp.handlers[method] | ||||||
|  | 	vim.lsp.handlers[method] = function(err, result, context, config) | ||||||
|  | 		if err ~= nil and err.code == -32802 then | ||||||
|  | 			return | ||||||
|  | 		end | ||||||
|  | 		return default_diagnostic_handler(err, result, context, config) | ||||||
|  | 	end | ||||||
|  | end | ||||||
							
								
								
									
										21
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								init.lua
									
									
									
									
									
								
							| @@ -13,11 +13,10 @@ end | |||||||
| vim.opt.rtp:prepend(lazypath) | vim.opt.rtp:prepend(lazypath) | ||||||
| vim.g.mapleader = " " | vim.g.mapleader = " " | ||||||
| require("lazy").setup("plugins") | require("lazy").setup("plugins") | ||||||
| require("maps").init() |  | ||||||
| require("commands") | require("commands") | ||||||
|  |  | ||||||
| vim.opt.backup = false | vim.opt.backup = false | ||||||
| vim.opt.undodir = '/Users/fschmidt/.cache/nvim/undodir' | vim.opt.undodir = os.getenv("HOME") .. '/.cache/nvim/undodir' | ||||||
| vim.opt.swapfile = false | vim.opt.swapfile = false | ||||||
| vim.opt.undofile = true | vim.opt.undofile = true | ||||||
| vim.opt.smartcase = true | vim.opt.smartcase = true | ||||||
| @@ -29,8 +28,17 @@ vim.opt.incsearch = true | |||||||
| vim.opt.scrolloff = 12 | vim.opt.scrolloff = 12 | ||||||
| vim.opt.sidescrolloff = 8 | vim.opt.sidescrolloff = 8 | ||||||
| vim.opt.mouse = 'a' | vim.opt.mouse = 'a' | ||||||
| vim.opt.autochdir = true | vim.opt.autochdir = false | ||||||
| vim.opt.clipboard = 'unnamed,unnamedplus' | vim.opt.clipboard = 'unnamed,unnamedplus' | ||||||
|  | in_wsl = os.getenv('WSL_DISTRO_NAME') ~= nil | ||||||
|  | if in_wsl then | ||||||
|  | 	vim.g.clipboard = { | ||||||
|  | 		name = 'wsl clipboard', | ||||||
|  | 		copy = { ["+"] = { "clip.exe" }, ["*"] = { "clip.exe" } }, | ||||||
|  | 		paste = { ["+"] = { "win32yank.exe" }, ["*"] = { "win32yank.exe" } }, | ||||||
|  | 		cache_enabled = true | ||||||
|  | 	} | ||||||
|  | end | ||||||
| vim.opt.number = true | vim.opt.number = true | ||||||
| vim.opt.wrap = false | vim.opt.wrap = false | ||||||
| vim.opt.signcolumn = 'yes:2' | vim.opt.signcolumn = 'yes:2' | ||||||
| @@ -43,3 +51,10 @@ vim.opt.expandtab = false | |||||||
| vim.opt.autoindent = true | vim.opt.autoindent = true | ||||||
| vim.opt.smartindent = true | vim.opt.smartindent = true | ||||||
| vim.opt.completeopt = { "menu", "menuone", "noselect" } | vim.opt.completeopt = { "menu", "menuone", "noselect" } | ||||||
|  | --vim.opt.foldmethod = "expr" | ||||||
|  | --vim.opt.foldexpr = "nvim_treesitter#foldexpr()" | ||||||
|  | --vim.opt.foldtext = "" | ||||||
|  | --vim.opt.foldlevelstart = 1 | ||||||
|  | --vim.opt.foldnestmax = 2 | ||||||
|  |  | ||||||
|  | -- TODO replace config with opts in every plugin | ||||||
|   | |||||||
| @@ -1,31 +1,41 @@ | |||||||
| { | { | ||||||
|   "LuaSnip": { "branch": "master", "commit": "f7c845749aba6096f041a73a26ba64f3817bab99" }, |   "LuaSnip": { "branch": "master", "commit": "458560534a73f7f8d7a11a146c801db00b081df0" }, | ||||||
|   "bufferline.nvim": { "branch": "main", "commit": "52d6acabb79c8c0942f8873a0ca7848eb2159267" }, |   "bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" }, | ||||||
|   "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, |   "cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" }, | ||||||
|   "cmp-cmdline": { "branch": "main", "commit": "8fcc934a52af96120fe26358985c10c035984b53" }, |   "cmp-cmdline": { "branch": "main", "commit": "d126061b624e0af6c3a556428712dd4d4194ec6d" }, | ||||||
|   "cmp-nvim-lsp": { "branch": "main", "commit": "0e6b2ed705ddcff9738ec4ea838141654f12eeef" }, |   "cmp-nvim-lsp": { "branch": "main", "commit": "bd5a7d6db125d4654b50eeae9f5217f24bb22fd3" }, | ||||||
|   "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "3d8912ebeb56e5ae08ef0906e3a54de1c66b92f1" }, |   "cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" }, | ||||||
|   "cmp-nvim-lua": { "branch": "main", "commit": "f3491638d123cfd2c8048aefaf66d246ff250ca6" }, |   "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" }, | ||||||
|   "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, |   "cmp-path": { "branch": "main", "commit": "c642487086dbd9a93160e1679a1327be111cbc25" }, | ||||||
|   "cmp_luasnip": { "branch": "master", "commit": "18095520391186d634a0045dacaa346291096566" }, |   "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, | ||||||
|   "dashboard-nvim": { "branch": "master", "commit": "398ba8d9390c13c87a964cbca756319531fffdb7" }, |   "fidget.nvim": { "branch": "main", "commit": "b45d21d33d61ed9295308eb6571c0a5f0f7f3765" }, | ||||||
|   "fidget.nvim": { "branch": "main", "commit": "688b4fec4517650e29c3e63cfbb6e498b3112ba1" }, |   "gitsigns.nvim": { "branch": "main", "commit": "f780609807eca1f783a36a8a31c30a48fbe150c5" }, | ||||||
|   "gitsigns.nvim": { "branch": "main", "commit": "f388995990aba04cfdc7c3ab870c33e280601109" }, |   "kanagawa.nvim": { "branch": "master", "commit": "debe91547d7fb1eef34ce26a5106f277fbfdd109" }, | ||||||
|   "kanagawa.nvim": { "branch": "master", "commit": "4c8d48726621a7f3998c7ed35b2c2535abc22def" }, |   "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, | ||||||
|   "lazy.nvim": { "branch": "main", "commit": "8077428e63feb0f3bf795d53b23ba1695b28ab0e" }, |   "lspkind-nvim": { "branch": "master", "commit": "3ddd1b4edefa425fda5a9f95a4f25578727c0bb3" }, | ||||||
|   "lspkind-nvim": { "branch": "master", "commit": "c68b3a003483cf382428a43035079f78474cd11e" }, |   "lualine.nvim": { "branch": "master", "commit": "b8c23159c0161f4b89196f74ee3a6d02cdc3a955" }, | ||||||
|   "lualine.nvim": { "branch": "master", "commit": "e99d733e0213ceb8f548ae6551b04ae32e590c80" }, |   "lunar.nvim": { "branch": "master", "commit": "08bbc93b96ad698d22fc2aa01805786bcedc34b9" }, | ||||||
|   "mason-lspconfig.nvim": { "branch": "main", "commit": "3f9c0ea157e88b08e2d11ec65002eeb6e421f0da" }, |   "mason-lspconfig.nvim": { "branch": "main", "commit": "a1067cf84b4ff81b66d2bf4d01f4cbdb5de40bd0" }, | ||||||
|   "mason.nvim": { "branch": "main", "commit": "63cff223169324a2e633954ac580c7c327182a97" }, |   "mason.nvim": { "branch": "main", "commit": "7dc4facca9702f95353d5a1f87daf23d78e31c2a" }, | ||||||
|   "nvim-autopairs": { "branch": "master", "commit": "6a5faeabdbcc86cfbf1561ae430a451a72126e81" }, |   "minuet-ai.nvim": { "branch": "main", "commit": "2083b86ea01cb18dc9e7cb7a68f932ea06e999e8" }, | ||||||
|   "nvim-cmp": { "branch": "main", "commit": "7a3b1e76f74934b12fda82158237c6ad8bfd3d40" }, |   "mssql.nvim": { "branch": "main", "commit": "51bf5e8629c2f0153160e36afb57a3743b9b6fd9" }, | ||||||
|   "nvim-lspconfig": { "branch": "master", "commit": "62856b20751b748841b0f3ec5a10b1e2f6a6dbc9" }, |   "nvim-autopairs": { "branch": "master", "commit": "23320e75953ac82e559c610bec5a90d9c6dfa743" }, | ||||||
|   "nvim-tree.lua": { "branch": "master", "commit": "9c97e6449b0b0269bd44e1fd4857184dfa57bb4c" }, |   "nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" }, | ||||||
|   "nvim-treesitter": { "branch": "master", "commit": "b4d8b7e5a374b800838a13aa6829ac4d542c6f1c" }, |   "nvim-dap": { "branch": "master", "commit": "7367cec8e8f7a0b1e4566af9a7ef5959d11206a7" }, | ||||||
|   "nvim-web-devicons": { "branch": "master", "commit": "4709a504d2cd2680fb511675e64ef2790d491d36" }, |   "nvim-dap-ui": { "branch": "master", "commit": "cf91d5e2d07c72903d052f5207511bf7ecdb7122" }, | ||||||
|   "playground": { "branch": "master", "commit": "4044b53c4d4fcd7a78eae20b8627f78ce7dc6f56" }, |   "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" }, | ||||||
|   "plenary.nvim": { "branch": "master", "commit": "253d34830709d690f013daf2853a9d21ad7accab" }, |   "nvim-jdtls": { "branch": "master", "commit": "b69924ca90014fef485ee153571bdcbc1ece8c2e" }, | ||||||
|   "rust-tools.nvim": { "branch": "master", "commit": "71d2cf67b5ed120a0e31b2c8adb210dd2834242f" }, |   "nvim-lspconfig": { "branch": "master", "commit": "ef73a4f2a1ddf0439eb97b46de2aab265ddba1cd" }, | ||||||
|   "telescope.nvim": { "branch": "master", "commit": "c1a2af0af69e80e14e6b226d3957a064cd080805" }, |   "nvim-nio": { "branch": "master", "commit": "21f5324bfac14e22ba26553caf69ec76ae8a7662" }, | ||||||
|   "vimwiki": { "branch": "dev", "commit": "fea8bee382b2051b0137fd2cacf0862823ee69b3" } |   "nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" }, | ||||||
|  |   "nvim-treesitter-context": { "branch": "master", "commit": "41847d3dafb5004464708a3db06b14f12bde548a" }, | ||||||
|  |   "nvim-treesitter-textobjects": { "branch": "master", "commit": "71385f191ec06ffc60e80e6b0c9a9d5daed4824c" }, | ||||||
|  |   "nvim-web-devicons": { "branch": "master", "commit": "6e51ca170563330e063720449c21f43e27ca0bc1" }, | ||||||
|  |   "plenary.nvim": { "branch": "master", "commit": "b9fd5226c2f76c951fc8ed5923d85e4de065e509" }, | ||||||
|  |   "rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" }, | ||||||
|  |   "telescope-ui-select.nvim": { "branch": "master", "commit": "6e51d7da30bd139a6950adf2a47fda6df9fa06d2" }, | ||||||
|  |   "telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" }, | ||||||
|  |   "trouble.nvim": { "branch": "main", "commit": "f176232e7759c4f8abd923c21e3e5a5c76cd6837" }, | ||||||
|  |   "vimwiki": { "branch": "dev", "commit": "72792615e739d0eb54a9c8f7e0a46a6e2407c9e8" }, | ||||||
|  |   "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" } | ||||||
| } | } | ||||||
| @@ -1,10 +1,54 @@ | |||||||
| -- commands.lua | -- commands.lua | ||||||
|  |  | ||||||
| vim.cmd 'autocmd! User GoyoEnter Limelight' |  | ||||||
| vim.cmd 'autocmd! User GoyoLeave Limelight!' |  | ||||||
|  |  | ||||||
| vim.cmd 'autocmd BufRead,BufNewFile *.wiki,*.md,*.tex set wrap' | vim.cmd 'autocmd BufRead,BufNewFile *.wiki,*.md,*.tex set wrap' | ||||||
|  |  | ||||||
|  | vim.cmd 'au BufRead,BufNewFile *.kdl set filetype=kdl' | ||||||
|  |  | ||||||
| vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]] | vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]] | ||||||
|  |  | ||||||
| vim.cmd 'command W :execute \':silent w !sudo tee % > /dev/null\' | :edit!' | -- I don't know why but whenever I accidentally type :W instead of :w, I slows down the ide and reverts all changes | ||||||
|  | -- It doesn't even save files with sudo... | ||||||
|  | -- vim.cmd 'command W :execute \':silent w !sudo tee % > /dev/null\' | :edit!' | ||||||
|  |  | ||||||
|  | -- Array of file names indicating root directory. Modify to your liking. | ||||||
|  | local root_names = { '.git', 'Makefile', 'justfile', 'CMakeLists.txt', 'maskfile.md' } | ||||||
|  |  | ||||||
|  | -- Cache to use for speed up (at cost of possibly outdated results) | ||||||
|  | local root_cache = {} | ||||||
|  |  | ||||||
|  | local set_root = function() | ||||||
|  | 	-- Get directory path to start search from | ||||||
|  | 	local path = vim.api.nvim_buf_get_name(0) | ||||||
|  | 	if path == '' then return end | ||||||
|  | 	path = vim.fs.dirname(path) | ||||||
|  |  | ||||||
|  | 	-- Try cache and resort to searching upward for root directory | ||||||
|  | 	local root = root_cache[path] | ||||||
|  | 	if root == nil then | ||||||
|  | 		local root_file = vim.fs.find(root_names, { path = path, upward = true })[1] | ||||||
|  | 		if root_file == nil then return end | ||||||
|  | 		root = vim.fs.dirname(root_file) | ||||||
|  | 		root_cache[path] = root | ||||||
|  | 	end | ||||||
|  |  | ||||||
|  | 	-- Set current directory | ||||||
|  | 	vim.fn.chdir(root) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local root_augroup = vim.api.nvim_create_augroup('MyAutoRoot', {}) | ||||||
|  | vim.api.nvim_create_autocmd('BufEnter', { group = root_augroup, callback = set_root }) | ||||||
|  |  | ||||||
|  | local function set_makeprg() | ||||||
|  | 	local cwd = vim.fn.getcwd() | ||||||
|  |  | ||||||
|  | 	if vim.fn.filereadable(cwd .. '/justfile') == 1 then | ||||||
|  | 		vim.o.makeprg = 'just' | ||||||
|  | 	elseif vim.fn.filereadable(cwd .. '/Makefile') == 1 then | ||||||
|  | 		vim.o.makeprg = 'make' | ||||||
|  | 	elseif vim.fn.filereadable(cwd .. '/maskfile.md') == 1 then | ||||||
|  | 		vim.o.makeprg = 'mask' | ||||||
|  | 	end | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local makeprg_augroup = vim.api.nvim_create_augroup('MyMakeprg', {}) | ||||||
|  | vim.api.nvim_create_autocmd('BufEnter', { pattern = '*', group = makeprg_augroup, callback = set_makeprg, }) | ||||||
|   | |||||||
							
								
								
									
										59
									
								
								lua/maps.lua
									
									
									
									
									
								
							
							
						
						
									
										59
									
								
								lua/maps.lua
									
									
									
									
									
								
							| @@ -1,59 +0,0 @@ | |||||||
| -- maps.lua |  | ||||||
|  |  | ||||||
| local maps = {} |  | ||||||
|  |  | ||||||
| local function map(mode, lhs, rhs, opts) |  | ||||||
| 	local options = { noremap = true } |  | ||||||
| 	if opts then options = vim.tbl_extend('force', options, opts) end |  | ||||||
| 	vim.api.nvim_set_keymap(mode, lhs, rhs, options) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function maps.toggleGoyo() |  | ||||||
| 	map('n', '<C-g>', ':Goyo<Enter>', { noremap = false }) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function maps.term() |  | ||||||
| 	-- Open and move to resized terminal |  | ||||||
| 	map('n', '<leader>t', '<C-w>s<C-w>j :terminal<CR>:res 5<CR>i', { noremap = false }) |  | ||||||
| 	-- Enter normal mode in terminal |  | ||||||
| 	map('t', 'ß<C-N>', '<C-\\><C-N>') |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function maps.telescope() |  | ||||||
| 	map('n', '<Leader>ff', '<cmd>lua require(\'telescope.builtin\').git_files()<CR>') |  | ||||||
| 	map('n', '<Leader>fg', '<cmd>lua require(\'telescope.builtin\').live_grep()<CR>') |  | ||||||
| 	map('n', '<Leader>fb', '<cmd>lua require(\'telescope.builtin\').buffers()<CR>') |  | ||||||
| 	map('n', '<Leader>fh', '<cmd>lua require(\'telescope.builtin\').help_tags()<CR>') |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function maps.fixIndent() |  | ||||||
| 	map('v', '<', '<gv') |  | ||||||
| 	map('v', '>', '>gv') |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function maps.moveByRow() |  | ||||||
| 	-- When text is wrapped, move by terminal rows, not lines, unles a count is provided |  | ||||||
| 	map('n', 'j', 'v:count == 0 ? \'gj\' : \'j\'', { silent = true, expr = true }) |  | ||||||
| 	map('n', 'k', 'v:count == 0 ? \'gk\' : \'k\'', { silent = true, expr = true }) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function maps.centeredSearch() |  | ||||||
| 	map('n', 'n', 'nzzzv') |  | ||||||
| 	map('n', 'N', 'Nzzzv') |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function maps.init() |  | ||||||
| 	vim.g.mapleader = " " |  | ||||||
|  |  | ||||||
| 	map('n', '<leader>b', '<cmd>NvimTreeToggle<CR>') |  | ||||||
| 	map('n', '<leader>cc', '<cmd>Telescope colorscheme<CR>') |  | ||||||
|  |  | ||||||
| 	maps.toggleGoyo() |  | ||||||
| 	maps.term() |  | ||||||
| 	maps.telescope() |  | ||||||
| 	maps.fixIndent() |  | ||||||
| 	maps.moveByRow() |  | ||||||
| 	maps.centeredSearch() |  | ||||||
| end |  | ||||||
|  |  | ||||||
| return maps |  | ||||||
							
								
								
									
										44
									
								
								lua/plugins/ai.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								lua/plugins/ai.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | return { | ||||||
|  | 	-- I don't know if I use this wrong or what but opencode does not seem to work that well | ||||||
|  | 	-- { | ||||||
|  | 	-- 	'NickvanDyke/opencode.nvim', | ||||||
|  | 	-- 	dependencies = { 'folke/snacks.nvim', }, | ||||||
|  | 	-- 	---@type opencode.Config | ||||||
|  | 	-- 	opts = { | ||||||
|  | 	-- 		port = 48291, | ||||||
|  | 	-- 	}, | ||||||
|  | 	-- 	-- stylua: ignore | ||||||
|  | 	-- 	keys = { | ||||||
|  | 	-- 		{ '<leader>ot', function() require('opencode').toggle({ port = 48291 }) end,           desc = 'Toggle embedded opencode', }, | ||||||
|  | 	-- 		{ '<leader>oa', function() require('opencode').ask() end,                              desc = 'Ask opencode',                 mode = 'n', }, | ||||||
|  | 	-- 		{ '<leader>oa', function() require('opencode').ask('@selection: ') end,                desc = 'Ask opencode about selection', mode = 'v', }, | ||||||
|  | 	-- 		{ '<leader>op', function() require('opencode').select_prompt() end,                    desc = 'Select prompt',                mode = { 'n', 'v', }, }, | ||||||
|  | 	-- 		{ '<leader>on', function() require('opencode').command('session_new') end,             desc = 'New session', }, | ||||||
|  | 	-- 		{ '<leader>oy', function() require('opencode').command('messages_copy') end,           desc = 'Copy last message', }, | ||||||
|  | 	-- 		{ '<S-C-u>',    function() require('opencode').command('messages_half_page_up') end,   desc = 'Scroll messages up', }, | ||||||
|  | 	-- 		{ '<S-C-d>',    function() require('opencode').command('messages_half_page_down') end, desc = 'Scroll messages down', }, | ||||||
|  | 	-- 	}, | ||||||
|  | 	-- }, | ||||||
|  | 	-- This is great tho | ||||||
|  | 	{ | ||||||
|  | 		'milanglacier/minuet-ai.nvim', | ||||||
|  | 		dependencies = { 'hrsh7th/nvim-cmp', 'nvim-lua/plenary.nvim' }, | ||||||
|  | 		config = function() | ||||||
|  | 			require('minuet').setup { | ||||||
|  | 				-- Your configuration options here | ||||||
|  | 				provider_options = { | ||||||
|  | 					codestral = { | ||||||
|  | 						model = 'codestral-latest', | ||||||
|  | 						end_point = 'https://codestral.mistral.ai/v1/fim/completions', | ||||||
|  | 						api_key = 'CODESTRAL_API_KEY', | ||||||
|  | 						stream = true, | ||||||
|  | 						optional = { | ||||||
|  | 							stop = { '\n\n' }, -- the identifier to stop the completion generation | ||||||
|  | 							max_tokens = 256, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		end, | ||||||
|  | 	}, | ||||||
|  | } | ||||||
							
								
								
									
										37
									
								
								lua/plugins/dap.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								lua/plugins/dap.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | return { | ||||||
|  | 	{ | ||||||
|  | 		'mfussenegger/nvim-dap', | ||||||
|  | 		lazy = true, | ||||||
|  | 		dependencies = { 'nvim-lua/plenary.nvim' }, | ||||||
|  | 		config = function() | ||||||
|  | 			local wk = require("which-key") | ||||||
|  | 			local dap = require("dap") | ||||||
|  | 			wk.add({ | ||||||
|  | 				{ '<leader>d',  group = "dap" }, | ||||||
|  | 				{ '<leader>db', dap.toggle_breakpoint, desc = "Toggle breakpoint" }, | ||||||
|  | 				{ '<leader>dc', dap.continue,          desc = "Launch/resume debug session" }, | ||||||
|  | 				{ '<leader>do', dap.step_over,         desc = "Step over" }, | ||||||
|  | 				{ '<leader>di', dap.step_into,         desc = "Step into" }, | ||||||
|  | 				{ '<leader>du', dap.step_out,          desc = "Step out" }, | ||||||
|  | 			}) | ||||||
|  | 		end | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		'rcarriga/nvim-dap-ui', | ||||||
|  | 		lazy = true, | ||||||
|  | 		config = function() | ||||||
|  | 			local dapui = require("dapui") | ||||||
|  | 			dapui.setup() | ||||||
|  | 			local wk = require("which-key") | ||||||
|  | 			wk.add({ | ||||||
|  | 				{ '<leader>dd', dapui.toggle, desc = "Toggle dap ui" } | ||||||
|  | 			}) | ||||||
|  | 		end, | ||||||
|  | 		dependencies = { 'mfussenegger/nvim-dap', 'nvim-neotest/nvim-nio' } | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		'theHamsta/nvim-dap-virtual-text', | ||||||
|  | 		lazy = true, | ||||||
|  | 		config = true | ||||||
|  | 	} | ||||||
|  | } | ||||||
| @@ -1,101 +1,353 @@ | |||||||
| local opts = { noremap = true, silent = true } |  | ||||||
| vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts) |  | ||||||
| vim.keymap.set('n', ',d', vim.diagnostic.goto_prev, opts) |  | ||||||
| vim.keymap.set('n', '.d', vim.diagnostic.goto_next, opts) |  | ||||||
|  |  | ||||||
| local lsp_attach = function(client, buf) | local lsp_attach = function(client, buf) | ||||||
| 	vim.api.nvim_buf_set_option(buf, "formatexpr", "v:lua.vim.lsp.formatexpr()") | 	vim.api.nvim_set_option_value("formatexpr", "v:lua.vim.lsp.formatexpr()", { buf = buf }) | ||||||
| 	vim.api.nvim_buf_set_option(buf, "omnifunc", "v:lua.vim.lsp.omnifunc") | 	vim.api.nvim_set_option_value("omnifunc", "v:lua.vim.lsp.omnifunc", { buf = buf }) | ||||||
| 	vim.api.nvim_buf_set_option(buf, "tagfunc", "v:lua.vim.lsp.tagfunc") | 	vim.api.nvim_set_option_value("tagfunc", "v:lua.vim.lsp.tagfunc", { buf = buf }) | ||||||
|  |  | ||||||
|  | 	vim.lsp.inlay_hint.enable(true, nil) | ||||||
|  |  | ||||||
| 	local bufopts = { noremap = true, silent = true, buffer = buf } | 	local bufopts = { noremap = true, silent = true, buffer = buf } | ||||||
| 	vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) | 	local wk = require("which-key") | ||||||
| 	vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) |  | ||||||
| 	vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) | 	local diag_next = function() | ||||||
| 	vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) | 		vim.diagnostic.jump({ count = 1, float = true }) | ||||||
| 	vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts) | 	end | ||||||
| 	vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts) |  | ||||||
| 	vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts) | 	local diag_prev = function() | ||||||
| 	vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts) | 		vim.diagnostic.jump({ count = -1, float = true }) | ||||||
| 	vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) | 	end | ||||||
|  |  | ||||||
|  | 	wk.add({ | ||||||
|  | 		{ '<C-e>',      require("telescope.builtin").diagnostics,    bufopts, desc = "Show diagnostics under cursor" }, | ||||||
|  | 		{ '<leader>e',  vim.diagnostic.open_float,                   bufopts, desc = "Show diagnostics in buffer" }, | ||||||
|  | 		{ '[d',         diag_prev,                                   bufopts }, | ||||||
|  | 		{ ']d',         diag_next,                                   bufopts }, | ||||||
|  |  | ||||||
|  | 		{ 'gD',         vim.lsp.buf.declaration,                     bufopts, desc = "Go to declaration" }, | ||||||
|  | 		{ 'gd',         vim.lsp.buf.definition,                      bufopts, desc = "Go to definition" }, | ||||||
|  | 		{ 'gi',         vim.lsp.buf.implementation,                  bufopts, desc = "Go to implementation" }, | ||||||
|  | 		{ '<C-k>',      vim.lsp.buf.signature_help,                  bufopts, desc = "Show signature" }, | ||||||
|  | 		{ '<leader>rn', vim.lsp.buf.rename,                          bufopts, desc = "Rename" }, | ||||||
|  | 		{ '<leader>ca', vim.lsp.buf.code_action,                     bufopts, desc = "Show code actions" }, | ||||||
|  | 		{ 'gr',         require("telescope.builtin").lsp_references, bufopts, desc = "Shwo references" }, | ||||||
|  | 	}) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | local mason_path = vim.fn.glob(vim.fn.stdpath "data" .. "/mason/packages/codelldb/extension/") | ||||||
|  | local codelldb_path = mason_path .. "adapter/codelldb" | ||||||
|  | local liblldb_path = mason_path .. "lldb/lib/liblldb.so" | ||||||
|  |  | ||||||
|  | if vim.fn.has "mac" == 1 then | ||||||
|  | 	liblldb_path = mason_path .. "lldb/lib/liblldb.dylib" | ||||||
| end | end | ||||||
|  |  | ||||||
| return { | return { | ||||||
| 	-- lsp | 	-- lsp | ||||||
| 	{ | 	{ | ||||||
| 		'williamboman/mason.nvim', | 		'williamboman/mason.nvim', | ||||||
|  | 		lazy = true, | ||||||
| 		config = true | 		config = true | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		'williamboman/mason-lspconfig.nvim', | 		'williamboman/mason-lspconfig.nvim', | ||||||
| 		config = true | 		config = true | ||||||
|  | 		--config = function() | ||||||
|  | 		--	ensure_installed = { "lua_ls", "ts_ls", "gopls", "rust_analyzer", "bashls", "sqlls", "html", "cssls", | ||||||
|  | 		--		"tailwindcss", "phpactor", "julials", "glsl_analyzer", "wgsl_analyzer", "emmet_language_server", "zls" } | ||||||
|  | 		--end | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		'neovim/nvim-lspconfig', | 		'neovim/nvim-lspconfig', | ||||||
| 		config = function() | 		config = function() | ||||||
| 			local capabilities = require('cmp_nvim_lsp').default_capabilities() | 			local capabilities = require('cmp_nvim_lsp').default_capabilities() | ||||||
| 			local lspconfig = require('lspconfig') |  | ||||||
|  |  | ||||||
| 			lspconfig.lua_ls.setup { | 			vim.lsp.config('lua_ls', { | ||||||
| 				capabilities = capabilities, | 				capabilities = capabilities, | ||||||
|  | 				root_markers = { '.git' }, | ||||||
| 				settings = { | 				settings = { | ||||||
| 					Lua = { | 					Lua = { | ||||||
|  | 						runtime = { | ||||||
|  | 							-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) | ||||||
|  | 							version = 'LuaJIT', | ||||||
|  | 						}, | ||||||
| 						diagnostics = { | 						diagnostics = { | ||||||
|  | 							-- Get the language server to recognize the `vim` global | ||||||
| 							globals = { 'vim' } | 							globals = { 'vim' } | ||||||
| 						} | 						}, | ||||||
|  | 						workspace = { | ||||||
|  | 							-- Make the server aware of Neovim runtime files | ||||||
|  | 							library = vim.api.nvim_get_runtime_file("", true), | ||||||
|  | 							checkThirdParty = false, | ||||||
|  | 						}, | ||||||
| 					} | 					} | ||||||
| 				}, | 				}, | ||||||
| 				on_attach = lsp_attach | 				on_attach = lsp_attach | ||||||
| 			} | 			}) | ||||||
| 			lspconfig.tsserver.setup { | 			vim.lsp.config('ts_ls', { | ||||||
| 				capabilities = capabilities, | 				capabilities = capabilities, | ||||||
| 				on_attach = lsp_attach | 				on_attach = lsp_attach | ||||||
| 			} | 			}) | ||||||
| 			lspconfig.gopls.setup { | 			vim.lsp.config('gopls', { | ||||||
| 				capabilities = capabilities, | 				capabilities = capabilities, | ||||||
| 				on_attach = lsp_attach | 				on_attach = lsp_attach | ||||||
| 			} | 			}) | ||||||
| 			--lspconfig.rust_analyzer.setup { | 			--vim.lsp.config(rust_analyzer.setup { | ||||||
| 			--	capabilities = capabilities, | 			--	capabilities = capabilities, | ||||||
| 			--	on_attach = lsp_attach | 			--	on_attach = lsp_attach | ||||||
| 			--} | 			--}) | ||||||
| 			require("rust-tools").setup({ | 			vim.lsp.config('bashls', { | ||||||
| 				server = { |  | ||||||
| 					capabilities = capabilities, |  | ||||||
| 					on_attach = lsp_attach, |  | ||||||
| 					standalone = false |  | ||||||
| 				} |  | ||||||
| 			}) |  | ||||||
| 			lspconfig.bashls.setup { |  | ||||||
| 				capabilities = capabilities, |  | ||||||
| 				on_attach = lsp_attach |  | ||||||
| 			} |  | ||||||
| 			lspconfig.sqlls.setup({ |  | ||||||
| 				capabilities = capabilities, | 				capabilities = capabilities, | ||||||
| 				on_attach = lsp_attach | 				on_attach = lsp_attach | ||||||
| 			}) | 			}) | ||||||
| 			lspconfig.html.setup({ | 			vim.lsp.config('sqlls', { | ||||||
| 				capabilities = capabilities, | 				capabilities = capabilities, | ||||||
| 				on_attach = lsp_attach | 				on_attach = lsp_attach | ||||||
| 			}) | 			}) | ||||||
| 			lspconfig.cssls.setup({ | 			vim.lsp.config('html', { | ||||||
| 				capabilities = capabilities, | 				capabilities = capabilities, | ||||||
| 				on_attach = lsp_attach | 				on_attach = lsp_attach | ||||||
| 			}) | 			}) | ||||||
| 			lspconfig.tailwindcss.setup({ | 			vim.lsp.config('cssls', { | ||||||
| 				capabilities = capabilities, | 				capabilities = capabilities, | ||||||
| 				on_attach = lsp_attach | 				on_attach = lsp_attach | ||||||
| 			}) | 			}) | ||||||
| 			capabilities.textDocument.completion.completionItem.snippetSupport = true | 			vim.lsp.config('tailwindcss', { | ||||||
| 			lspconfig.emmet_ls.setup({ |  | ||||||
| 				capabilities = capabilities, | 				capabilities = capabilities, | ||||||
| 				on_attach = lsp_attach | 				on_attach = lsp_attach | ||||||
| 			}) | 			}) | ||||||
|  | 			vim.lsp.config('phpactor', { | ||||||
|  | 				capabilities = capabilities, | ||||||
|  | 				on_attach = lsp_attach | ||||||
|  | 			}) | ||||||
|  | 			vim.lsp.config('julials', { | ||||||
|  | 				capabilities = capabilities, | ||||||
|  | 				on_attach = lsp_attach | ||||||
|  | 			}) | ||||||
|  | 			vim.lsp.config('wgsl_analyzer', { | ||||||
|  | 				capabilities = capabilities, | ||||||
|  | 				on_attach = lsp_attach | ||||||
|  | 			}) | ||||||
|  | 			vim.lsp.config('glsl_analyzer', { | ||||||
|  | 				capabilities = capabilities, | ||||||
|  | 				on_attach = lsp_attach | ||||||
|  | 			}) | ||||||
|  | 			vim.lsp.config('emmet_ls', { | ||||||
|  | 				filetypes = { "css", "html", "javascript", "typescript" }, | ||||||
|  | 				-- Read more about this options in the [vscode docs](https://code.visualstudio.com/docs/editor/emmet#_emmet-configuration). | ||||||
|  | 				-- **Note:** only the options listed in the table are supported. | ||||||
|  | 				init_options = { | ||||||
|  | 					---@type table<string, string> | ||||||
|  | 					includeLanguages = {}, | ||||||
|  | 					--- @type string[] | ||||||
|  | 					excludeLanguages = {}, | ||||||
|  | 					--- @type string[] | ||||||
|  | 					extensionsPath = {}, | ||||||
|  | 					--- @type table<string, any> [Emmet Docs](https://docs.emmet.io/customization/preferences/) | ||||||
|  | 					preferences = {}, | ||||||
|  | 					--- @type boolean Defaults to `true` | ||||||
|  | 					showAbbreviationSuggestions = true, | ||||||
|  | 					--- @type "always" | "never" Defaults to `"always"` | ||||||
|  | 					showExpandedAbbreviation = "always", | ||||||
|  | 					--- @type boolean Defaults to `false` | ||||||
|  | 					showSuggestionsAsSnippets = false, | ||||||
|  | 					--- @type table<string, any> [Emmet Docs](https://docs.emmet.io/customization/syntax-profiles/) | ||||||
|  | 					syntaxProfiles = {}, | ||||||
|  | 					--- @type table<string, string> [Emmet Docs](https://docs.emmet.io/customization/snippets/#variables) | ||||||
|  | 					variables = {}, | ||||||
|  | 				}, | ||||||
|  | 			}) | ||||||
|  | 			-- vim.lsp.config('ccls.setup { | ||||||
|  | 			-- 	capabilities = capabilities, | ||||||
|  | 			-- 	on_attach = lsp_attach, | ||||||
|  | 			-- }) | ||||||
|  | 			vim.lsp.config('clangd', { | ||||||
|  | 				capabilities = capabilities, | ||||||
|  | 				on_attach = lsp_attach, | ||||||
|  | 			}) | ||||||
| 		end | 		end | ||||||
| 	}, | 	}, | ||||||
| 	{ 'simrat39/rust-tools.nvim' }, | 	{ | ||||||
|  | 		'mrcjkb/rustaceanvim', | ||||||
|  | 		version = "^4", | ||||||
|  | 		lazy = false, | ||||||
|  | 		ft = { "rust" }, | ||||||
|  | 		config = function() | ||||||
|  | 			vim.g.rustaceanvim = { | ||||||
|  | 				server = { | ||||||
|  | 					on_attach = lsp_attach, | ||||||
|  | 					settings = { | ||||||
|  | 						-- rust-analyzer language server configuration | ||||||
|  | 						["rust-analyzer"] = { | ||||||
|  | 							rustfmt = { | ||||||
|  | 								extraArgs = { "+nightly" }, | ||||||
|  | 							}, | ||||||
|  | 							cargo = { | ||||||
|  | 								loadOutDirsFromCheck = true, | ||||||
|  | 								runBuildScripts = true, | ||||||
|  | 							}, | ||||||
|  | 							-- Add clippy lints for Rust. | ||||||
|  | 							checkOnSave = { | ||||||
|  | 								allFeatures = true, | ||||||
|  | 								command = "clippy", | ||||||
|  | 								extraArgs = { "--no-deps" }, | ||||||
|  | 							}, | ||||||
|  | 							-- TODO this breaks diagnostics, look into what can be done | ||||||
|  | 							-- procMacro = { | ||||||
|  | 							-- 	enable = true, | ||||||
|  | 							-- 	ignored = { | ||||||
|  | 							-- 		["async-trait"] = { "async_trait" }, | ||||||
|  | 							-- 		["napi-derive"] = { "napi" }, | ||||||
|  | 							-- 		["async-recursion"] = { "async_recursion" }, | ||||||
|  | 							-- 	}, | ||||||
|  | 							-- }, | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		end | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		'mfussenegger/nvim-jdtls', | ||||||
|  | 		ft = { "java" }, | ||||||
|  | 		config = function() | ||||||
|  | 			local home = os.getenv('HOME') | ||||||
|  | 			local jdtls = require('jdtls') | ||||||
|  | 			local capabilities = require('cmp_nvim_lsp').default_capabilities() | ||||||
|  | 			local root_markers = { 'gradlew', 'mvnw', 'git' } | ||||||
|  | 			local root_dir = require('jdtls.setup').find_root(root_markers) | ||||||
|  | 			local workspace_folder = home .. "/.local/share/eclipse/" .. vim.fn.fnamemodify(root_dir, ":p:h:t") | ||||||
|  | 			local config = { | ||||||
|  | 				flags = { | ||||||
|  | 					debounce_text_changes = 80, | ||||||
|  | 				}, | ||||||
|  | 				capabilities = capabilities, | ||||||
|  | 				on_attach = lsp_attach, -- We pass our on_attach keybindings to the configuration map | ||||||
|  | 				root_dir = root_dir, -- Set the root directory to our found root_marker | ||||||
|  | 				-- here you can configure eclipse.jdt.ls specific settings | ||||||
|  | 				-- these are defined by the eclipse.jdt.ls project and will be passed to eclipse when starting. | ||||||
|  | 				-- see https://github.com/eclipse/eclipse.jdt.ls/wiki/running-the-java-ls-server-from-the-command-line#initialize-request | ||||||
|  | 				-- for a list of options | ||||||
|  | 				settings = { | ||||||
|  | 					java = { | ||||||
|  | 						format = { | ||||||
|  | 							settings = { | ||||||
|  | 								-- use google java style guidelines for formatting | ||||||
|  | 								-- to use, make sure to download the file from https://github.com/google/styleguide/blob/gh-pages/eclipse-java-google-style.xml | ||||||
|  | 								-- and place it in the ~/.local/share/eclipse directory | ||||||
|  | 								-- url = "/.local/share/eclipse/eclipse-java-google-style.xml", | ||||||
|  | 								-- profile = "googlestyle", | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						signaturehelp = { enabled = true }, | ||||||
|  | 						contentprovider = { preferred = 'fernflower' }, -- use fernflower to decompile library code | ||||||
|  | 						-- specify any completion options | ||||||
|  | 						completion = { | ||||||
|  | 							favoritestaticmembers = { | ||||||
|  | 								-- "org.hamcrest.matcherassert.assertthat", | ||||||
|  | 								-- "org.hamcrest.matchers.*", | ||||||
|  | 								-- "org.hamcrest.corematchers.*", | ||||||
|  | 								-- "org.junit.jupiter.api.assertions.*", | ||||||
|  | 								-- "java.util.objects.requirenonnull", | ||||||
|  | 								-- "java.util.objects.requirenonnullelse", | ||||||
|  | 								-- "org.mockito.mockito.*" | ||||||
|  | 							}, | ||||||
|  | 							filteredtypes = { | ||||||
|  | 								-- "com.sun.*", | ||||||
|  | 								-- "io.micrometer.shaded.*", | ||||||
|  | 								-- "java.awt.*", | ||||||
|  | 								-- "jdk.*", "sun.*", | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						-- specify any options for organizing imports | ||||||
|  | 						sources = { | ||||||
|  | 							organizeimports = { | ||||||
|  | 								starthreshold = 9999, | ||||||
|  | 								staticstarthreshold = 9999, | ||||||
|  | 							}, | ||||||
|  | 						}, | ||||||
|  | 						-- how code generation should act | ||||||
|  | 						codegeneration = { | ||||||
|  | 							tostring = { | ||||||
|  | 								template = "${object.classname}{${member.name()}=${member.value}, ${othermembers}}" | ||||||
|  | 							}, | ||||||
|  | 							hashcodeequals = { | ||||||
|  | 								usejava7objects = true, | ||||||
|  | 							}, | ||||||
|  | 							useblocks = true, | ||||||
|  | 						}, | ||||||
|  | 						-- if you are developing in projects with different java versions, you need | ||||||
|  | 						-- to tell eclipse.jdt.ls to use the location of the jdk for your java version | ||||||
|  | 						-- see https://github.com/eclipse/eclipse.jdt.ls/wiki/running-the-java-ls-server-from-the-command-line#initialize-request | ||||||
|  | 						-- and search for `interface runtimeoption` | ||||||
|  | 						-- the `name` is not arbitrary, but must match one of the elements from `enum executionenvironment` in the link above | ||||||
|  | 						configuration = { | ||||||
|  | 							runtimes = { | ||||||
|  | 								{ | ||||||
|  | 									name = "JavaSE-17", | ||||||
|  | 									path = home .. "/.local/share/asdf/installs/java/oracle-17.0.11/", | ||||||
|  | 								}, | ||||||
|  | 								{ | ||||||
|  | 									name = "JavaSE-21", | ||||||
|  | 									path = home .. "/.local/share/asdf/installs/java/oracle-21.0.2/", | ||||||
|  | 								}, | ||||||
|  | 								{ | ||||||
|  | 									name = "JavaSE-1.8", | ||||||
|  | 									path = home .. "/.local/share/asdf/installs/java/adoptopenjdk-8.0.412+8/" | ||||||
|  | 								}, | ||||||
|  | 							} | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 				}, | ||||||
|  | 				-- cmd is the command that starts the language server. whatever is placed | ||||||
|  | 				-- here is what is passed to the command line to execute jdtls. | ||||||
|  | 				-- note that eclipse.jdt.ls must be started with a java version of 17 or higher | ||||||
|  | 				-- see: https://github.com/eclipse/eclipse.jdt.ls#running-from-the-command-line | ||||||
|  | 				-- for the full list of options | ||||||
|  | 				cmd = { | ||||||
|  | 					home .. "/.local/share/asdf/installs/java/oracle-21.0.2/bin/java", | ||||||
|  | 					'-Declipse.application=org.eclipse.jdt.ls.core.id1', | ||||||
|  | 					'-Dosgi.bundles.defaultstartlevel=4', | ||||||
|  | 					'-Declipse.product=org.eclipse.jdt.ls.core.product', | ||||||
|  | 					'-Dlog.protocol=true', | ||||||
|  | 					'-Dlog.level=all', | ||||||
|  | 					'-Xmx4G', | ||||||
|  | 					'--add-modules=ALL-SYSTEM', | ||||||
|  | 					'--add-opens', 'java.base/java.util=ALL-UNNAMED', | ||||||
|  | 					'--add-opens', 'java.base/java.lang=ALL-UNNAMED', | ||||||
|  | 					-- if you use lombok, download the lombok jar and place it in ~/.local/share/eclipse | ||||||
|  | 					'-javaagent:' .. home .. '/.local/share/nvim/mason/packages/jdtls/lombok.jar', | ||||||
|  |  | ||||||
|  | 					-- the jar file is located where jdtls was installed. this will need to be updated | ||||||
|  | 					-- to the location where you installed jdtls | ||||||
|  | 					'-jar', vim.fn.glob( | ||||||
|  | 					home .. | ||||||
|  | 					'/.local/share/nvim/mason/packages/jdtls/plugins/org.eclipse.equinox.launcher_*.jar'), | ||||||
|  |  | ||||||
|  | 					-- the configuration for jdtls is also placed where jdtls was installed. this will | ||||||
|  | 					-- need to be updated depending on your environment | ||||||
|  | 					'-configuration', home .. '/.local/share/nvim/mason/packages/jdtls/config_linux', | ||||||
|  |  | ||||||
|  | 					-- use the workspace_folder defined above to store data for this project | ||||||
|  | 					'-data', workspace_folder, | ||||||
|  | 				}, | ||||||
|  | 			} | ||||||
|  |  | ||||||
|  | 			jdtls.start_or_attach(config) | ||||||
|  | 		end | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"Kurren123/mssql.nvim", | ||||||
|  | 		opts = { | ||||||
|  | 			-- optional | ||||||
|  | 			keymap_prefix = "<leader>m" | ||||||
|  | 		}, | ||||||
|  | 		-- optional | ||||||
|  | 		dependencies = { "folke/which-key.nvim" } | ||||||
|  | 	}, | ||||||
| 	{ 'onsails/lspkind-nvim' }, -- pictograms replace (?) with lspsaga | 	{ 'onsails/lspkind-nvim' }, -- pictograms replace (?) with lspsaga | ||||||
| 	{ 'j-hui/fidget.nvim' }, -- show lsp status | 	{ | ||||||
|  | 		'j-hui/fidget.nvim', | ||||||
|  | 		config = true | ||||||
|  | 	}, -- show lsp status | ||||||
| 	-- completion | 	-- completion | ||||||
| 	{ | 	{ | ||||||
| 		'hrsh7th/nvim-cmp', | 		'hrsh7th/nvim-cmp', | ||||||
| @@ -133,9 +385,17 @@ return { | |||||||
| 					{ name = 'path' }, | 					{ name = 'path' }, | ||||||
| 					{ name = 'luasnip' }, | 					{ name = 'luasnip' }, | ||||||
| 					{ name = 'nvim_lsp_signature_help' }, | 					{ name = 'nvim_lsp_signature_help' }, | ||||||
| 					}, { | 				}, { | ||||||
| 						{ name = 'buffer', keyword_length = 5 }, | 					{ name = 'buffer', keyword_length = 5 }, | ||||||
|  | 					{ name = 'minuet' }, | ||||||
| 				}), | 				}), | ||||||
|  | 				performance = { | ||||||
|  | 					-- It is recommended to increase the timeout duration due to | ||||||
|  | 					-- the typically slower response speed of LLMs compared to | ||||||
|  | 					-- other completion sources. This is not needed when you only | ||||||
|  | 					-- need manual completion. | ||||||
|  | 					fetching_timeout = 2000, | ||||||
|  | 				}, | ||||||
| 				formatting = { | 				formatting = { | ||||||
| 					format = lspkind.cmp_format { | 					format = lspkind.cmp_format { | ||||||
| 						with_text = true, | 						with_text = true, | ||||||
| @@ -145,6 +405,7 @@ return { | |||||||
| 							nvim_lua = "[api]", | 							nvim_lua = "[api]", | ||||||
| 							path = "[path]", | 							path = "[path]", | ||||||
| 							luasnip = "[snip]", | 							luasnip = "[snip]", | ||||||
|  | 							minuet = "[llm]", | ||||||
| 						} | 						} | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| @@ -161,8 +422,8 @@ return { | |||||||
| 			cmp.setup.cmdline(':', { | 			cmp.setup.cmdline(':', { | ||||||
| 				sources = cmp.config.sources({ | 				sources = cmp.config.sources({ | ||||||
| 					{ name = 'path' } | 					{ name = 'path' } | ||||||
| 					}, { | 				}, { | ||||||
| 						{ name = 'cmdline' } | 					{ name = 'cmdline' } | ||||||
| 				}) | 				}) | ||||||
| 			}) | 			}) | ||||||
| 		end, | 		end, | ||||||
| @@ -179,6 +440,8 @@ return { | |||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		'L3MON4D3/LuaSnip', | 		'L3MON4D3/LuaSnip', | ||||||
|  | 		version = "v2.*", | ||||||
|  | 		build = "make install_jsregexp", | ||||||
| 		config = function() | 		config = function() | ||||||
| 			require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets/" }) | 			require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets/" }) | ||||||
| 		end | 		end | ||||||
| @@ -187,6 +450,13 @@ return { | |||||||
| 		'windwp/nvim-autopairs', | 		'windwp/nvim-autopairs', | ||||||
| 		config = true | 		config = true | ||||||
| 	}, | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"folke/trouble.nvim", | ||||||
|  | 		dependencies = { "nvim-tree/nvim-web-devicons" }, | ||||||
|  | 		opts = { | ||||||
|  | 			-- your configuration comes here | ||||||
|  | 			-- or leave it empty to use the default settings | ||||||
|  | 			-- refer to the configuration section below | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
| } | } | ||||||
| --	-- Linting & formtatting |  | ||||||
| --	'jose-elias-alvarez/null-ls.nvim'; |  | ||||||
|   | |||||||
| @@ -1,67 +1,66 @@ | |||||||
| return { | return { | ||||||
| 	{ | 	{ | ||||||
| 		'nvim-telescope/telescope.nvim', | 		'nvim-telescope/telescope.nvim', | ||||||
| 		tag = '0.1.1', | 		version = '0.1.*', | ||||||
| 		dependencies = { 'nvim-lua/plenary.nvim' }, | 		dependencies = { 'nvim-lua/plenary.nvim' }, | ||||||
|  | 		config = function() | ||||||
|  | 			local telescope = require("telescope.builtin") | ||||||
|  | 			local wk = require("which-key") | ||||||
|  | 			wk.add({ | ||||||
|  | 				{ "<leader>g",  group = "git" }, | ||||||
|  | 				{ "<leader>gh", telescope.git_bcommits, { noremap = true, silent = true }, desc = "View commits of current buffer" }, | ||||||
|  | 				{ "<leader>gb", telescope.git_branches, { noremap = true, silent = true }, desc = "View git branches" }, | ||||||
|  | 				{ "<leader>gs", telescope.git_status,   { noremap = true, silent = true }, desc = "View git status" }, | ||||||
|  | 				{ "<leader>f",  group = "find" }, | ||||||
|  | 				{ '<Leader>ff', telescope.git_files,    { noremap = true, silent = true }, desc = "Search files" }, | ||||||
|  | 				{ '<Leader>fg', telescope.live_grep,    { noremap = true, silent = true }, desc = "Search in files" }, | ||||||
|  | 				{ '<Leader>fb', telescope.buffers,      { noremap = true, silent = true }, desc = "Search in buffers" }, | ||||||
|  | 				{ '<Leader>fh', telescope.help_tags,    { noremap = true, silent = true }, desc = "Search in help" }, | ||||||
|  | 				{ '<Leader>fk', telescope.keymaps,      { noremap = true, silent = true }, desc = "Search in keymaps" }, | ||||||
|  | 				{ '<leader>cc', telescope.colorscheme,  desc = "Select colorscheme" }, | ||||||
|  | 			}) | ||||||
|  | 			require("telescope.config").set_defaults({ | ||||||
|  | 				file_ignore_patterns = { "doc/" } | ||||||
|  | 			}) | ||||||
|  | 		end, | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		'nvim-tree/nvim-tree.lua', | 		'nvim-telescope/telescope-ui-select.nvim', | ||||||
|  | 		dependencies = { 'nvim-telescope/telescope.nvim' }, | ||||||
| 		config = function() | 		config = function() | ||||||
| 			require('nvim-tree').setup { | 			require("telescope").setup { | ||||||
| 				disable_netrw       = true, | 				defaults = { | ||||||
| 				hijack_netrw        = true, |  | ||||||
| 				open_on_setup       = false, |  | ||||||
| 				ignore_ft_on_setup  = {}, |  | ||||||
| 				open_on_tab         = false, |  | ||||||
| 				hijack_cursor       = false, |  | ||||||
| 				update_cwd          = true, |  | ||||||
| 				hijack_directories  = { |  | ||||||
| 					enable = true, |  | ||||||
| 					auto_open = true, |  | ||||||
| 				}, |  | ||||||
| 				diagnostics         = { |  | ||||||
| 					enable = false, |  | ||||||
| 					icons = { |  | ||||||
| 						hint = "", |  | ||||||
| 						info = "", |  | ||||||
| 						warning = "", |  | ||||||
| 						error = "", |  | ||||||
| 					} |  | ||||||
| 				}, |  | ||||||
| 				update_focused_file = { |  | ||||||
| 					enable      = false, |  | ||||||
| 					update_cwd  = false, |  | ||||||
| 					ignore_list = {} |  | ||||||
| 				}, |  | ||||||
| 				system_open         = { |  | ||||||
| 					cmd  = nil, |  | ||||||
| 					args = {} |  | ||||||
| 				}, |  | ||||||
| 				filters             = { |  | ||||||
| 					dotfiles = false, |  | ||||||
| 					custom = {} |  | ||||||
| 				}, |  | ||||||
| 				git                 = { |  | ||||||
| 					enable = true, |  | ||||||
| 					ignore = true, |  | ||||||
| 					timeout = 500, |  | ||||||
| 				}, |  | ||||||
| 				view                = { |  | ||||||
| 					width = 30, |  | ||||||
| 					hide_root_folder = false, |  | ||||||
| 					side = 'left', |  | ||||||
| 					mappings = { | 					mappings = { | ||||||
| 						custom_only = false, | 						i = { | ||||||
| 						list = {} | 							["<C-h>"] = "which_key" | ||||||
|  | 						} | ||||||
| 					} | 					} | ||||||
| 				}, | 				}, | ||||||
| 				actions             = { | 				pickers = { | ||||||
| 					open_file = { | 					colorscheme = { | ||||||
| 						resize_window = false | 						enable_preview = true, | ||||||
|  | 					} | ||||||
|  | 				}, | ||||||
|  | 				extensions = { | ||||||
|  | 					["ui-select"] = { | ||||||
|  | 						require("telescope.themes").get_cursor() | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		end, | 			require("telescope").load_extension("ui-select") | ||||||
| 		dependencies = { 'nvim-tree/nvim-web-devicons' } | 		end | ||||||
| 	} | 	} | ||||||
|  | 	-- Don't really need it. Nicer than the default but that's it | ||||||
|  | 	-- { | ||||||
|  | 	-- 	'nvim-tree/nvim-tree.lua', | ||||||
|  | 	-- 	config = function() | ||||||
|  | 	-- 		require('nvim-tree').setup { | ||||||
|  | 	-- 			view = { | ||||||
|  | 	-- 				width = 30, | ||||||
|  | 	-- 				side = 'left', | ||||||
|  | 	-- 			}, | ||||||
|  | 	-- 		} | ||||||
|  | 	-- 	end, | ||||||
|  | 	-- 	dependencies = { 'nvim-tree/nvim-web-devicons' } | ||||||
|  | 	-- } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -3,12 +3,26 @@ return { | |||||||
| 		'rebelot/kanagawa.nvim', | 		'rebelot/kanagawa.nvim', | ||||||
| 		config = function() | 		config = function() | ||||||
| 			vim.opt.guifont = 'Source Code Pro for Powerline' | 			vim.opt.guifont = 'Source Code Pro for Powerline' | ||||||
| 			vim.g.limelight_conceal_ctermfg = 'gray' |  | ||||||
| 			vim.cmd('colorscheme kanagawa') |  | ||||||
| 			vim.cmd('set termguicolors') | 			vim.cmd('set termguicolors') | ||||||
| 			vim.opt.syntax = 'on' | 			vim.opt.syntax = 'on' | ||||||
|  | 			-- require('kanagawa').setup({ | ||||||
|  | 			-- 	colors = { | ||||||
|  | 			-- 		palette = { | ||||||
|  | 			-- 			lotusGray = "#F8F7F4", | ||||||
|  | 			-- 			lotusWhite0 = "#FBFBF9", | ||||||
|  | 			-- 			lotusWhite1 = "#F2F0E9", | ||||||
|  | 			-- 			lotusWhite2 = "#F8F7F2", | ||||||
|  | 			-- 			lotusWhite3 = "#F6F6F1", | ||||||
|  | 			-- 			lotusWhite4 = "#F4F1E6", | ||||||
|  | 			-- 			lotusWhite5 = "#FcFBF9", | ||||||
|  | 			-- 		} | ||||||
|  | 			-- 	} | ||||||
|  | 			-- }) | ||||||
|  | 			-- vim.cmd('colorscheme kanagawa-lotus') | ||||||
|  | 			vim.cmd('colorscheme kanagawa') | ||||||
| 		end | 		end | ||||||
| 	}, | 	}, | ||||||
|  | 	{ 'lunarvim/lunar.nvim' }, | ||||||
| 	{ | 	{ | ||||||
| 		'nvim-treesitter/nvim-treesitter', | 		'nvim-treesitter/nvim-treesitter', | ||||||
| 		build = ':TSUpdate', | 		build = ':TSUpdate', | ||||||
| @@ -24,11 +38,43 @@ return { | |||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 		end, | 		end, | ||||||
| 		dependencies = { 'nvim-treesitter/playground' } | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"nvim-treesitter/nvim-treesitter-context", | ||||||
|  | 		dependencies = { 'nvim-treesitter/nvim-treesitter' } | ||||||
|  | 	}, | ||||||
|  | 	{ | ||||||
|  | 		"nvim-treesitter/nvim-treesitter-textobjects", | ||||||
|  | 		dependencies = { 'nvim-treesitter/nvim-treesitter' }, | ||||||
|  | 		config = function() | ||||||
|  | 			require("nvim-treesitter.configs").setup({ | ||||||
|  | 				textobjects = { | ||||||
|  | 					select = { | ||||||
|  | 						enable = true, | ||||||
|  | 						lookahead = true, | ||||||
|  | 						keymaps = { | ||||||
|  | 							["af"] = "@function.outer", | ||||||
|  | 							["if"] = "@function.inner", | ||||||
|  | 							["ac"] = "@class.outer", | ||||||
|  | 							["ic"] = "@class.inner", | ||||||
|  | 						} | ||||||
|  | 					}, | ||||||
|  | 					swap = { | ||||||
|  | 						enable = true, | ||||||
|  | 						swap_next = { | ||||||
|  | 							["<leader>a"] = "@parameter.inner", | ||||||
|  | 						}, | ||||||
|  | 						swap_previous = { | ||||||
|  | 							["<leader>A"] = "@parameter.inner", | ||||||
|  | 						}, | ||||||
|  | 					}, | ||||||
|  | 				} | ||||||
|  | 			}) | ||||||
|  | 		end | ||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		'akinsho/bufferline.nvim', | 		'akinsho/bufferline.nvim', | ||||||
| 		tag = "v3.3.0", | 		version = "*", | ||||||
| 		config = true, | 		config = true, | ||||||
| 		dependencies = { 'nvim-tree/nvim-web-devicons' } | 		dependencies = { 'nvim-tree/nvim-web-devicons' } | ||||||
| 	}, | 	}, | ||||||
| @@ -42,11 +88,8 @@ return { | |||||||
| 			} | 			} | ||||||
| 		end | 		end | ||||||
| 	}, | 	}, | ||||||
| 	{ 'lewis6991/gitsigns.nvim' }, |  | ||||||
| 	{ | 	{ | ||||||
| 		'glepnir/dashboard-nvim', | 		'lewis6991/gitsigns.nvim', | ||||||
| 		event = 'VimEnter', | 		config = true | ||||||
| 		config = true, |  | ||||||
| 		dependencies = { 'nvim-tree/nvim-web-devicons' } |  | ||||||
| 	}, | 	}, | ||||||
| } | } | ||||||
|   | |||||||
							
								
								
									
										60
									
								
								lua/plugins/wk.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								lua/plugins/wk.lua
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | |||||||
|  | -- maps.lua | ||||||
|  |  | ||||||
|  | local maps = {} | ||||||
|  |  | ||||||
|  | function maps.term() | ||||||
|  | 	vim.api.nvim_set_keymap('n', '<leader>t', '<C-w>s<C-w>j :terminal<CR>:res 5<CR>i', | ||||||
|  | 		{ noremap = false, desc = "Open and move to terminal" }) | ||||||
|  | 	vim.api.nvim_set_keymap('t', 'ß<C-N>', '<C-\\><C-N>', { noremap = true, desc = "Enter normal mode in terminal" }) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | function maps.fixIndent() | ||||||
|  | 	vim.api.nvim_set_keymap('v', '<', '<gv', { noremap = true, desc = "Remove identation level" }) | ||||||
|  | 	vim.api.nvim_set_keymap('v', '>', '>gv', { noremap = true, desc = "Add identation level" }) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | function maps.moveByRow() | ||||||
|  | 	-- When text is wrapped, move by terminal rows, not lines, unles a count is provided | ||||||
|  | 	vim.api.nvim_set_keymap('n', 'j', 'v:count == 0 ? \'gj\' : \'j\'', | ||||||
|  | 		{ noremap = true, silent = true, expr = true, desc = "Go down 1 line" }) | ||||||
|  | 	vim.api.nvim_set_keymap('n', 'k', 'v:count == 0 ? \'gk\' : \'k\'', | ||||||
|  | 		{ noremap = true, silent = true, expr = true, desc = "Go up 1 line" }) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | function maps.centeredSearch() | ||||||
|  | 	vim.api.nvim_set_keymap('n', 'n', 'nzzzv', { noremap = true, desc = "Search next" }) | ||||||
|  | 	vim.api.nvim_set_keymap('n', 'N', 'Nzzzv', { noremap = true, desc = "Search previous" }) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | function maps.init() | ||||||
|  | 	vim.g.mapleader = " " | ||||||
|  |  | ||||||
|  | 	vim.api.nvim_set_keymap('n', '<leader>b', '<cmd>Lexplore | vert res 30<CR>', | ||||||
|  | 		{ noremap = true, desc = "Open file explorer" }) | ||||||
|  |  | ||||||
|  | 	maps.term() | ||||||
|  | 	maps.fixIndent() | ||||||
|  | 	maps.moveByRow() | ||||||
|  | 	maps.centeredSearch() | ||||||
|  | end | ||||||
|  |  | ||||||
|  | return { | ||||||
|  | 	"folke/which-key.nvim", | ||||||
|  | 	event = "VeryLazy", | ||||||
|  | 	keys = { | ||||||
|  | 		{ | ||||||
|  | 			"<leader>?", | ||||||
|  | 			function() | ||||||
|  | 				require("which-key").show({ global = false }) | ||||||
|  | 			end, | ||||||
|  | 			desc = "Buffer Local Keymaps (which-key)", | ||||||
|  | 		}, | ||||||
|  | 	}, | ||||||
|  | 	config = function() | ||||||
|  | 		require("which-key").setup({ | ||||||
|  | 			preset = "helix" | ||||||
|  | 		}) | ||||||
|  | 		local wk = require("which-key") | ||||||
|  | 		maps.init() | ||||||
|  | 	end | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user