Custom neovim setup.
This commit is contained in:
		
							parent
							
								
									e2bfa0c66f
								
							
						
					
					
						commit
						cea7aa184b
					
				
							
								
								
									
										144
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										144
									
								
								init.lua
								
								
								
								
							| 
						 | 
					@ -91,7 +91,7 @@ vim.g.mapleader = ' '
 | 
				
			||||||
vim.g.maplocalleader = ' '
 | 
					vim.g.maplocalleader = ' '
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Set to true if you have a Nerd Font installed
 | 
					-- Set to true if you have a Nerd Font installed
 | 
				
			||||||
vim.g.have_nerd_font = false
 | 
					vim.g.have_nerd_font = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- [[ Setting options ]]
 | 
					-- [[ Setting options ]]
 | 
				
			||||||
-- See `:help vim.opt`
 | 
					-- See `:help vim.opt`
 | 
				
			||||||
| 
						 | 
					@ -102,7 +102,7 @@ vim.g.have_nerd_font = false
 | 
				
			||||||
vim.opt.number = true
 | 
					vim.opt.number = true
 | 
				
			||||||
-- You can also add relative line numbers, to help with jumping.
 | 
					-- You can also add relative line numbers, to help with jumping.
 | 
				
			||||||
--  Experiment for yourself to see if you like it!
 | 
					--  Experiment for yourself to see if you like it!
 | 
				
			||||||
-- vim.opt.relativenumber = true
 | 
					vim.opt.relativenumber = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- Enable mouse mode, can be useful for resizing splits for example!
 | 
					-- Enable mouse mode, can be useful for resizing splits for example!
 | 
				
			||||||
vim.opt.mouse = 'a'
 | 
					vim.opt.mouse = 'a'
 | 
				
			||||||
| 
						 | 
					@ -190,6 +190,10 @@ vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right win
 | 
				
			||||||
vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
 | 
					vim.keymap.set('n', '<C-j>', '<C-w><C-j>', { desc = 'Move focus to the lower window' })
 | 
				
			||||||
vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
 | 
					vim.keymap.set('n', '<C-k>', '<C-w><C-k>', { desc = 'Move focus to the upper window' })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Center cursor after moving half page
 | 
				
			||||||
 | 
					vim.keymap.set('n', '<C-d>', '<C-d>zz', { desc = 'Center cursor after down half page' })
 | 
				
			||||||
 | 
					vim.keymap.set('n', '<C-u>', '<C-u>zz', { desc = 'Center cursor after down half up' })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
-- [[ Basic Autocommands ]]
 | 
					-- [[ Basic Autocommands ]]
 | 
				
			||||||
--  See `:help lua-guide-autocommands`
 | 
					--  See `:help lua-guide-autocommands`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -283,6 +287,8 @@ require('lazy').setup({
 | 
				
			||||||
      require('which-key').register {
 | 
					      require('which-key').register {
 | 
				
			||||||
        ['<leader>c'] = { name = '[C]ode', _ = 'which_key_ignore' },
 | 
					        ['<leader>c'] = { name = '[C]ode', _ = 'which_key_ignore' },
 | 
				
			||||||
        ['<leader>d'] = { name = '[D]ocument', _ = 'which_key_ignore' },
 | 
					        ['<leader>d'] = { name = '[D]ocument', _ = 'which_key_ignore' },
 | 
				
			||||||
 | 
					        ['<leader>h'] = { name = '[H]arpoon', _ = 'which_key_ignore' },
 | 
				
			||||||
 | 
					        ['<leader>l'] = { name = '[L]azy Git', _ = 'which_key_ignore' },
 | 
				
			||||||
        ['<leader>r'] = { name = '[R]ename', _ = 'which_key_ignore' },
 | 
					        ['<leader>r'] = { name = '[R]ename', _ = 'which_key_ignore' },
 | 
				
			||||||
        ['<leader>s'] = { name = '[S]earch', _ = 'which_key_ignore' },
 | 
					        ['<leader>s'] = { name = '[S]earch', _ = 'which_key_ignore' },
 | 
				
			||||||
        ['<leader>w'] = { name = '[W]orkspace', _ = 'which_key_ignore' },
 | 
					        ['<leader>w'] = { name = '[W]orkspace', _ = 'which_key_ignore' },
 | 
				
			||||||
| 
						 | 
					@ -402,6 +408,71 @@ require('lazy').setup({
 | 
				
			||||||
    end,
 | 
					    end,
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    'ThePrimeagen/harpoon',
 | 
				
			||||||
 | 
					    branch = 'harpoon2',
 | 
				
			||||||
 | 
					    dependencies = { 'nvim-lua/plenary.nvim' },
 | 
				
			||||||
 | 
					    config = function()
 | 
				
			||||||
 | 
					      local harpoon = require 'harpoon'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      harpoon:setup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      vim.keymap.set('n', '<leader>ha', function()
 | 
				
			||||||
 | 
					        harpoon:list():add()
 | 
				
			||||||
 | 
					      end, { desc = '[A]dd to list' })
 | 
				
			||||||
 | 
					      vim.keymap.set('n', '<leader>he', function()
 | 
				
			||||||
 | 
					        harpoon.ui:toggle_quick_menu(harpoon:list())
 | 
				
			||||||
 | 
					      end, { desc = '[E]xplorer' })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      vim.keymap.set('n', '<leader>h1', function()
 | 
				
			||||||
 | 
					        harpoon:list():select(1)
 | 
				
			||||||
 | 
					      end, { desc = 'Switch to [1] mark' })
 | 
				
			||||||
 | 
					      vim.keymap.set('n', '<leader>h2', function()
 | 
				
			||||||
 | 
					        harpoon:list():select(2)
 | 
				
			||||||
 | 
					      end, { desc = 'Switch to [2] mark' })
 | 
				
			||||||
 | 
					      vim.keymap.set('n', '<leader>h3', function()
 | 
				
			||||||
 | 
					        harpoon:list():select(3)
 | 
				
			||||||
 | 
					      end, { desc = 'Switch to [3] mark' })
 | 
				
			||||||
 | 
					      vim.keymap.set('n', '<leader>h4', function()
 | 
				
			||||||
 | 
					        harpoon:list():select(4)
 | 
				
			||||||
 | 
					      end, { desc = 'Switch to [4] mark' })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      -- vim.keymap.set('n', '<leader><C-1>', function()
 | 
				
			||||||
 | 
					      --   harpoon:list():replace_at(1)
 | 
				
			||||||
 | 
					      -- end)
 | 
				
			||||||
 | 
					      -- vim.keymap.set('n', '<leader><C-2>', function()
 | 
				
			||||||
 | 
					      --   harpoon:list():replace_at(2)
 | 
				
			||||||
 | 
					      -- end)
 | 
				
			||||||
 | 
					      -- vim.keymap.set('n', '<leader><C-3>', function()
 | 
				
			||||||
 | 
					      --   harpoon:list():replace_at(3)
 | 
				
			||||||
 | 
					      -- end)
 | 
				
			||||||
 | 
					      -- vim.keymap.set('n', '<leader><C-4>', function()
 | 
				
			||||||
 | 
					      --   harpoon:list():replace_at(4)
 | 
				
			||||||
 | 
					      -- end)
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    'zbirenbaum/copilot.lua',
 | 
				
			||||||
 | 
					    cmd = 'Copilot',
 | 
				
			||||||
 | 
					    event = 'InsertEnter',
 | 
				
			||||||
 | 
					    config = function()
 | 
				
			||||||
 | 
					      require('copilot').setup {
 | 
				
			||||||
 | 
					        suggestion = {
 | 
				
			||||||
 | 
					          auto_trigger = true,
 | 
				
			||||||
 | 
					          keymap = {
 | 
				
			||||||
 | 
					            accept = '<C-y>',
 | 
				
			||||||
 | 
					            accept_word = false,
 | 
				
			||||||
 | 
					            accept_line = false,
 | 
				
			||||||
 | 
					            next = '<C-]>',
 | 
				
			||||||
 | 
					            prev = '<C-[>',
 | 
				
			||||||
 | 
					            dismiss = '<C-x>',
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  { -- LSP Configuration & Plugins
 | 
					  { -- LSP Configuration & Plugins
 | 
				
			||||||
    'neovim/nvim-lspconfig',
 | 
					    'neovim/nvim-lspconfig',
 | 
				
			||||||
    dependencies = {
 | 
					    dependencies = {
 | 
				
			||||||
| 
						 | 
					@ -740,18 +811,52 @@ require('lazy').setup({
 | 
				
			||||||
    end,
 | 
					    end,
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  { 'tjdevries/colorbuddy.nvim' },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  { 'rose-pine/neovim', name = 'rose-pine' },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    'folke/tokyonight.nvim',
 | 
				
			||||||
 | 
					    config = function()
 | 
				
			||||||
 | 
					      require('tokyonight').setup {
 | 
				
			||||||
 | 
					        -- your configuration comes here
 | 
				
			||||||
 | 
					        -- or leave it empty to use the default settings
 | 
				
			||||||
 | 
					        style = 'storm', -- The theme comes in three styles, `storm`, `moon`, a darker variant `night` and `day`
 | 
				
			||||||
 | 
					        transparent = true, -- Enable this to disable setting the background color
 | 
				
			||||||
 | 
					        terminal_colors = true, -- Configure the colors used when opening a `:terminal` in Neovim
 | 
				
			||||||
 | 
					        styles = {
 | 
				
			||||||
 | 
					          -- Style to be applied to different syntax groups
 | 
				
			||||||
 | 
					          -- Value is any valid attr-list value for `:help nvim_set_hl`
 | 
				
			||||||
 | 
					          comments = { italic = false },
 | 
				
			||||||
 | 
					          keywords = { italic = false },
 | 
				
			||||||
 | 
					          -- Background styles. Can be "dark", "transparent" or "normal"
 | 
				
			||||||
 | 
					          sidebars = 'dark', -- style for sidebars, see below
 | 
				
			||||||
 | 
					          floats = 'dark', -- style for floating windows
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  { -- You can easily change to a different colorscheme.
 | 
					  { -- You can easily change to a different colorscheme.
 | 
				
			||||||
    -- Change the name of the colorscheme plugin below, and then
 | 
					    -- Change the name of the colorscheme plugin below, and then
 | 
				
			||||||
    -- change the command in the config to whatever the name of that colorscheme is.
 | 
					    -- change the command in the config to whatever the name of that colorscheme is.
 | 
				
			||||||
    --
 | 
					    --
 | 
				
			||||||
    -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
 | 
					    -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme`.
 | 
				
			||||||
    'folke/tokyonight.nvim',
 | 
					    'catppuccin/nvim',
 | 
				
			||||||
 | 
					    name = 'catpuccin',
 | 
				
			||||||
    priority = 1000, -- Make sure to load this before all the other start plugins.
 | 
					    priority = 1000, -- Make sure to load this before all the other start plugins.
 | 
				
			||||||
    init = function()
 | 
					    init = function()
 | 
				
			||||||
 | 
					      -- require('rose-pine').setup {
 | 
				
			||||||
 | 
					      --   disable_background = true,
 | 
				
			||||||
 | 
					      --   styles = {
 | 
				
			||||||
 | 
					      --     italic = false,
 | 
				
			||||||
 | 
					      --   },
 | 
				
			||||||
 | 
					      -- }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      -- Load the colorscheme here.
 | 
					      -- Load the colorscheme here.
 | 
				
			||||||
      -- Like many other themes, this one has different styles, and you could load
 | 
					      -- Like many other themes, this one has different styles, and you could load
 | 
				
			||||||
      -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
 | 
					      -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'.
 | 
				
			||||||
      vim.cmd.colorscheme 'tokyonight-night'
 | 
					      vim.cmd.colorscheme 'catppuccin'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      -- You can configure highlights by doing something like:
 | 
					      -- You can configure highlights by doing something like:
 | 
				
			||||||
      vim.cmd.hi 'Comment gui=none'
 | 
					      vim.cmd.hi 'Comment gui=none'
 | 
				
			||||||
| 
						 | 
					@ -798,6 +903,7 @@ require('lazy').setup({
 | 
				
			||||||
      --  Check out: https://github.com/echasnovski/mini.nvim
 | 
					      --  Check out: https://github.com/echasnovski/mini.nvim
 | 
				
			||||||
    end,
 | 
					    end,
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  { -- Highlight, edit, and navigate code
 | 
					  { -- Highlight, edit, and navigate code
 | 
				
			||||||
    'nvim-treesitter/nvim-treesitter',
 | 
					    'nvim-treesitter/nvim-treesitter',
 | 
				
			||||||
    build = ':TSUpdate',
 | 
					    build = ':TSUpdate',
 | 
				
			||||||
| 
						 | 
					@ -829,6 +935,36 @@ require('lazy').setup({
 | 
				
			||||||
    end,
 | 
					    end,
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    'max397574/better-escape.nvim',
 | 
				
			||||||
 | 
					    opts = {
 | 
				
			||||||
 | 
					      mapping = { 'jk', 'kj' },
 | 
				
			||||||
 | 
					      timeout = vim.o.timeoutlen,
 | 
				
			||||||
 | 
					      clear_empty_lines = false,
 | 
				
			||||||
 | 
					      keys = '<Esc>',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    'kdheepak/lazygit.nvim',
 | 
				
			||||||
 | 
					    cmd = {
 | 
				
			||||||
 | 
					      'LazyGit',
 | 
				
			||||||
 | 
					      'LazyGitConfig',
 | 
				
			||||||
 | 
					      'LazyGitCurrentFile',
 | 
				
			||||||
 | 
					      'LazyGitFilter',
 | 
				
			||||||
 | 
					      'LazyGitFilterCurrentFile',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    -- optional for floating window border decoration
 | 
				
			||||||
 | 
					    dependencies = {
 | 
				
			||||||
 | 
					      'nvim-lua/plenary.nvim',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    -- setting the keybinding for LazyGit with 'keys' is recommended in
 | 
				
			||||||
 | 
					    -- order to load the plugin when the command is run for the first time
 | 
				
			||||||
 | 
					    keys = {
 | 
				
			||||||
 | 
					      { '<leader>lg', '<cmd>LazyGit<cr>', desc = 'LazyGit' },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  -- The following two comments only work if you have downloaded the kickstart repo, not just copy pasted the
 | 
					  -- 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
 | 
					  -- init.lua. If you want these files, they are in the repository, so you can just download them and
 | 
				
			||||||
  -- place them in the correct locations.
 | 
					  -- place them in the correct locations.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue