My changes
This commit is contained in:
		
							parent
							
								
									e6710a461a
								
							
						
					
					
						commit
						ac1dcf733a
					
				|  | @ -0,0 +1,5 @@ | |||
| local config = { | ||||
|   cmd = { '/usr/bin/jdtls' }, | ||||
|   root_dir = vim.fs.dirname(vim.fs.find({ 'gradlew', '.git', 'mvnw' }, { upward = true })[1]), | ||||
| } | ||||
| require('jdtls').start_or_attach(config) | ||||
							
								
								
									
										254
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										254
									
								
								init.lua
								
								
								
								
							|  | @ -110,7 +110,7 @@ vim.opt.showmode = false | |||
| -- Sync clipboard between OS and Neovim. | ||||
| --  Remove this option if you want your OS clipboard to remain independent. | ||||
| --  See `:help 'clipboard'` | ||||
| vim.opt.clipboard = 'unnamedplus' | ||||
| -- vim.opt.clipboard = 'unnamedplus' | ||||
| 
 | ||||
| -- Enable break indent | ||||
| vim.opt.breakindent = true | ||||
|  | @ -242,6 +242,7 @@ require('lazy').setup { | |||
|   { -- Adds git related signs to the gutter, as well as utilities for managing changes | ||||
|     'lewis6991/gitsigns.nvim', | ||||
|     opts = { | ||||
|       -- See `:help gitsigns.txt` | ||||
|       signs = { | ||||
|         add = { text = '+' }, | ||||
|         change = { text = '~' }, | ||||
|  | @ -249,6 +250,66 @@ require('lazy').setup { | |||
|         topdelete = { text = '‾' }, | ||||
|         changedelete = { text = '~' }, | ||||
|       }, | ||||
|       on_attach = function(bufnr) | ||||
|         local gs = package.loaded.gitsigns | ||||
| 
 | ||||
|         local function map(mode, l, r, opts) | ||||
|           opts = opts or {} | ||||
|           opts.buffer = bufnr | ||||
|           vim.keymap.set(mode, l, r, opts) | ||||
|         end | ||||
| 
 | ||||
|         -- Navigation | ||||
|         map({ 'n', 'v' }, ']c', function() | ||||
|           if vim.wo.diff then | ||||
|             return ']c' | ||||
|           end | ||||
|           vim.schedule(function() | ||||
|             gs.next_hunk() | ||||
|           end) | ||||
|           return '<Ignore>' | ||||
|         end, { expr = true, desc = 'Jump to next hunk' }) | ||||
| 
 | ||||
|         map({ 'n', 'v' }, '[c', function() | ||||
|           if vim.wo.diff then | ||||
|             return '[c' | ||||
|           end | ||||
|           vim.schedule(function() | ||||
|             gs.prev_hunk() | ||||
|           end) | ||||
|           return '<Ignore>' | ||||
|         end, { expr = true, desc = 'Jump to previous hunk' }) | ||||
| 
 | ||||
|         -- Actions | ||||
|         -- visual mode | ||||
|         map('v', '<leader>hs', function() | ||||
|           gs.stage_hunk { vim.fn.line '.', vim.fn.line 'v' } | ||||
|         end, { desc = 'stage git hunk' }) | ||||
|         map('v', '<leader>hr', function() | ||||
|           gs.reset_hunk { vim.fn.line '.', vim.fn.line 'v' } | ||||
|         end, { desc = 'reset git hunk' }) | ||||
|         -- normal mode | ||||
|         map('n', '<leader>hs', gs.stage_hunk, { desc = 'git stage hunk' }) | ||||
|         map('n', '<leader>hr', gs.reset_hunk, { desc = 'git reset hunk' }) | ||||
|         map('n', '<leader>hS', gs.stage_buffer, { desc = 'git Stage buffer' }) | ||||
|         map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'undo stage hunk' }) | ||||
|         map('n', '<leader>hR', gs.reset_buffer, { desc = 'git Reset buffer' }) | ||||
|         map('n', '<leader>hp', gs.preview_hunk, { desc = 'preview git hunk' }) | ||||
|         map('n', '<leader>hb', function() | ||||
|           gs.blame_line { full = false } | ||||
|         end, { desc = 'git blame line' }) | ||||
|         map('n', '<leader>hd', gs.diffthis, { desc = 'git diff against index' }) | ||||
|         map('n', '<leader>hD', function() | ||||
|           gs.diffthis '~' | ||||
|         end, { desc = 'git diff against last commit' }) | ||||
| 
 | ||||
|         -- Toggles | ||||
|         map('n', '<leader>tb', gs.toggle_current_line_blame, { desc = 'toggle git blame line' }) | ||||
|         map('n', '<leader>td', gs.toggle_deleted, { desc = 'toggle git show deleted' }) | ||||
| 
 | ||||
|         -- Text object | ||||
|         map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'select git hunk' }) | ||||
|       end, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|  | @ -372,6 +433,14 @@ require('lazy').setup { | |||
|       vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' }) | ||||
|       vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) | ||||
|       vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' }) | ||||
|       local function telescope_find_files_in_home() | ||||
|         local opts = { | ||||
|           hidden = true, | ||||
|           cwd = '/home/julian', | ||||
|         } | ||||
|         require('telescope.builtin').find_files(opts) | ||||
|       end | ||||
|       vim.keymap.set('n', '<leader>sc', telescope_find_files_in_home, { desc = '[S]earch files starting in ~' }) | ||||
| 
 | ||||
|       -- Slightly advanced example of overriding default behavior and theme | ||||
|       vim.keymap.set('n', '<leader>/', function() | ||||
|  | @ -726,7 +795,7 @@ require('lazy').setup { | |||
|     priority = 1000, -- make sure to load this before all the other start plugins | ||||
|     config = function() | ||||
|       -- Load the colorscheme here | ||||
|       vim.cmd.colorscheme 'tokyonight-night' | ||||
|       vim.cmd.colorscheme 'onedark' | ||||
| 
 | ||||
|       -- You can configure highlights by doing something like | ||||
|       vim.cmd.hi 'Comment gui=none' | ||||
|  | @ -781,7 +850,28 @@ require('lazy').setup { | |||
| 
 | ||||
|       ---@diagnostic disable-next-line: missing-fields | ||||
|       require('nvim-treesitter.configs').setup { | ||||
|         ensure_installed = { 'bash', 'c', 'html', 'lua', 'markdown', 'vim', 'vimdoc' }, | ||||
|         ensure_installed = { | ||||
|           'lua', | ||||
|           'python', | ||||
|           'tsx', | ||||
|           'javascript', | ||||
|           'typescript', | ||||
|           'vimdoc', | ||||
|           'vim', | ||||
|           'bash', | ||||
|           'css', | ||||
|           'dockerfile', | ||||
|           'html', | ||||
|           'java', | ||||
|           'kotlin', | ||||
|           'json', | ||||
|           'markdown_inline', | ||||
|           'ruby', | ||||
|           'sql', | ||||
|           'toml', | ||||
|           'vue', | ||||
|           'yaml', | ||||
|         }, | ||||
|         -- Autoinstall languages that are not installed | ||||
|         auto_install = true, | ||||
|         highlight = { enable = true }, | ||||
|  | @ -796,6 +886,75 @@ require('lazy').setup { | |||
|       --    - Treesitter + textobjects: https://github.com/nvim-treesitter/nvim-treesitter-textobjects | ||||
|     end, | ||||
|   }, | ||||
|   -- live autocompletion for commands etc | ||||
|   { 'gelguy/wilder.nvim', version = '*', config = function() end }, | ||||
|   -- File browser | ||||
|   { | ||||
|     'nvim-neo-tree/neo-tree.nvim', | ||||
|     version = '*', | ||||
|     dependencies = { | ||||
|       'nvim-lua/plenary.nvim', | ||||
|       'nvim-tree/nvim-web-devicons', -- not strictly required, but recommended | ||||
|       'MunifTanjim/nui.nvim', | ||||
|     }, | ||||
|     config = function() | ||||
|       require('neo-tree').setup {} | ||||
|     end, | ||||
|   }, | ||||
|   -- Markdown preview | ||||
|   { | ||||
|     'iamcco/markdown-preview.nvim', | ||||
|     ft = 'markdown', | ||||
|     -- build = "cd app && yarn install", -- after removing Joplin one day | ||||
|     build = 'cd app && npm install', | ||||
|     init = function() | ||||
|       vim.g.mkdp_filetypes = { 'markdown' } | ||||
|     end, | ||||
|   }, | ||||
|   -- show notifications etc in a nice area | ||||
|   { 'folke/noice.nvim', event = 'VeryLazy', opts = {}, dependencies = { | ||||
|     'MunifTanjim/nui.nvim', | ||||
|     'rcarriga/nvim-notify', | ||||
|   } }, | ||||
|   { | ||||
|     -- Highlight, edit, and navigate code | ||||
|     'ThePrimeagen/harpoon', | ||||
|     dependencies = { | ||||
|       'nvim-lua/plenary.nvim', | ||||
|     }, | ||||
|   }, | ||||
|   'mbbill/undotree', | ||||
|   'github/copilot.vim', | ||||
|   'mfussenegger/nvim-jdtls', | ||||
|   'AckslD/nvim-neoclip.lua', | ||||
|   { | ||||
|     -- Theme inspired by Atom | ||||
|     'navarasu/onedark.nvim', | ||||
|     priority = 1000, | ||||
|     lazy = false, | ||||
|     config = function() | ||||
|       require('onedark').setup { | ||||
|         -- Set a style preset. 'dark' is default. | ||||
|         style = 'dark', -- dark, darker, cool, deep, warm, warmer, light | ||||
|       } | ||||
|       require('onedark').load() | ||||
|     end, | ||||
|   }, | ||||
|   { | ||||
|     -- Set lualine as statusline | ||||
|     'nvim-lualine/lualine.nvim', | ||||
|     -- See `:help lualine.txt` | ||||
|     opts = { | ||||
|       options = { | ||||
|         icons_enabled = false, | ||||
|         theme = 'auto', | ||||
|         component_separators = '|', | ||||
|         section_separators = '', | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
|   -- tmux vim keybindings | ||||
|   'christoomey/vim-tmux-navigator', | ||||
| 
 | ||||
|   -- The following two comments only work if you have downloaded the kickstart repo, not just copy pasted the | ||||
|   -- init.lua. If you want these files, they are in the repository, so you can just download them and | ||||
|  | @ -819,3 +978,92 @@ require('lazy').setup { | |||
| 
 | ||||
| -- The line beneath this is called `modeline`. See `:help modeline` | ||||
| -- vim: ts=2 sts=2 sw=2 et | ||||
| 
 | ||||
| -- Toggle line numbers depending on the vim mode | ||||
| local augroup = vim.api.nvim_create_augroup('numbertoggle', {}) | ||||
| 
 | ||||
| vim.api.nvim_create_autocmd({ 'BufEnter', 'FocusGained', 'InsertLeave', 'CmdlineLeave', 'WinEnter' }, { | ||||
|   pattern = '*', | ||||
|   group = augroup, | ||||
|   callback = function() | ||||
|     if vim.o.nu and vim.api.nvim_get_mode().mode ~= 'i' then | ||||
|       vim.opt.relativenumber = true | ||||
|     end | ||||
|   end, | ||||
| }) | ||||
| 
 | ||||
| vim.api.nvim_create_autocmd({ 'BufLeave', 'FocusLost', 'InsertEnter', 'CmdlineEnter', 'WinLeave' }, { | ||||
|   pattern = '*', | ||||
|   group = augroup, | ||||
|   callback = function() | ||||
|     if vim.o.nu then | ||||
|       vim.opt.relativenumber = false | ||||
|       vim.cmd 'redraw' | ||||
|     end | ||||
|   end, | ||||
| }) | ||||
| 
 | ||||
| vim.keymap.set('i', 'jj', '<esc>', { desc = 'Closes insert mode' }) | ||||
| vim.keymap.set('n', 'ec', ':', { desc = 'Execute command' }) | ||||
| 
 | ||||
| vim.keymap.set('v', 'J', ":m '>+1<CR>gv=gv", { desc = 'Move line down' }) | ||||
| vim.keymap.set('v', 'K', ":m '<-2<CR>gv=gv", { desc = 'Move line up' }) | ||||
| 
 | ||||
| vim.keymap.set('x', '<leader>p', '"_dP', { desc = '[P]aste with previous still in buffer' }) | ||||
| 
 | ||||
| vim.keymap.set('n', '<leader>y', '"+y', { desc = '[Y]ank to system clipboard' }) | ||||
| vim.keymap.set('v', '<leader>y', '"+y', { desc = '[Y]ank to system clipboard' }) | ||||
| vim.keymap.set('n', '<leader>Y', '"+Y', { desc = '[Y]ank to system clipboard' }) | ||||
| 
 | ||||
| vim.keymap.set('n', '<leader>rr', [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], { desc = '[R]ename by [R]egex pattern' }) | ||||
| 
 | ||||
| -- map capital b and e to end/start line, should be default? | ||||
| vim.keymap.set('n', 'B', '_', { desc = 'Jump to line [B]eginning' }) | ||||
| vim.keymap.set('n', 'E', '$', { desc = 'Jump to line [E]nding' }) | ||||
| 
 | ||||
| -- wilder | ||||
| local wilder = require 'wilder' | ||||
| wilder.setup { modes = { ':', '/', '?' } } | ||||
| 
 | ||||
| -- filetree | ||||
| -- Unless you are still migrating, remove the deprecated commands from v1.x | ||||
| vim.cmd [[ let g:neo_tree_remove_legacy_commands = 1 ]] | ||||
| 
 | ||||
| -- neo_tree | ||||
| vim.keymap.set('n', '<leader>n', '<Cmd>Neotree toggle <Cr>', { desc = 'Toggle [N]eoTree' }) | ||||
| vim.keymap.set('n', '<leader>m', '<Cmd>Neotree float dir=%:p:h:h reveal_file=%:p <CR>', { desc = '[M]odify File NeoTree' }) | ||||
| 
 | ||||
| vim.keymap.set('n', '<C-P>', ':Telescope find_files<CR>', { desc = 'Toggle [N]eoTree' }) | ||||
| 
 | ||||
| -- harpoon | ||||
| local mark = require 'harpoon.mark' | ||||
| local ui = require 'harpoon.ui' | ||||
| 
 | ||||
| vim.keymap.set('n', '<leader>hh', mark.add_file, { desc = 'Add file to harpoon' }) | ||||
| vim.keymap.set('n', '<C-e>', ui.toggle_quick_menu, { desc = 'Toggle harpoon quick menu' }) | ||||
| 
 | ||||
| vim.keymap.set('n', '<C-t>', function() | ||||
|   ui.nav_file(1) | ||||
| end, { desc = 'Harpoon file 1' }) | ||||
| vim.keymap.set('n', '<C-n>', function() | ||||
|   ui.nav_file(2) | ||||
| end, { desc = 'Harpoon file 2' }) | ||||
| 
 | ||||
| -- ctrl+s write | ||||
| vim.api.nvim_set_keymap('n', '<C-s>', ':w<CR>', { noremap = true, silent = true }) | ||||
| vim.api.nvim_set_keymap('i', '<C-s>', '<Esc>:w<CR>i', { noremap = true, silent = true }) | ||||
| 
 | ||||
| --- ctrl+q quit | ||||
| vim.api.nvim_set_keymap('n', '<C-q>', ':q<CR>', { noremap = true, silent = true }) | ||||
| vim.api.nvim_set_keymap('i', '<C-q>', '<Esc>:q<CR>', { noremap = true, silent = true }) | ||||
| 
 | ||||
| -- undotree | ||||
| vim.keymap.set('n', '<leader>u', vim.cmd.UndotreeToggle, { desc = 'Toggle Undotree' }) | ||||
| 
 | ||||
| -- copilot disabled by default, enable it by typing :let b:copilot_enabled = 1 or executing ThisIsYourCaptainSpeaking | ||||
| vim.g.copilot_assume_mapped = true | ||||
| vim.api.nvim_exec([[ au BufNewFile,BufRead * let b:copilot_enabled = 0 ]], false) | ||||
| vim.api.nvim_create_user_command('ThisIsYourCaptainSpeaking', 'let b:copilot_enabled = 1', {}) | ||||
| 
 | ||||
| require('neoclip').setup() | ||||
| vim.api.nvim_set_keymap('n', '<leader>cc', ':Telescope neoclip<CR>', { noremap = true, silent = true }) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue