config
This commit is contained in:
		
							parent
							
								
									2abcb39fae
								
							
						
					
					
						commit
						ab6de4d9e4
					
				
							
								
								
									
										298
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										298
									
								
								init.lua
								
								
								
								
							|  | @ -1,5 +1,4 @@ | ||||||
| --[[ | --[[ | ||||||
| 
 |  | ||||||
| ===================================================================== | ===================================================================== | ||||||
| ==================== READ THIS BEFORE CONTINUING ==================== | ==================== READ THIS BEFORE CONTINUING ==================== | ||||||
| ===================================================================== | ===================================================================== | ||||||
|  | @ -7,7 +6,7 @@ | ||||||
| ========         .----------------------.   | === |          ======== | ========         .----------------------.   | === |          ======== | ||||||
| ========         |.-""""""""""""""""""-.|   |-----|          ======== | ========         |.-""""""""""""""""""-.|   |-----|          ======== | ||||||
| ========         ||                    ||   | === |          ======== | ========         ||                    ||   | === |          ======== | ||||||
| ========         ||   KICKSTART.NVIM   ||   |-----|          ======== | ========         ||      dino.NVIM     ||   |-----|          ======== | ||||||
| ========         ||                    ||   | === |          ======== | ========         ||                    ||   | === |          ======== | ||||||
| ========         ||                    ||   |-----|          ======== | ========         ||                    ||   |-----|          ======== | ||||||
| ========         ||:Tutor              ||   |:::::|          ======== | ========         ||:Tutor              ||   |:::::|          ======== | ||||||
|  | @ -19,197 +18,20 @@ | ||||||
| ========                                                     ======== | ========                                                     ======== | ||||||
| ===================================================================== | ===================================================================== | ||||||
| ===================================================================== | ===================================================================== | ||||||
| 
 |  | ||||||
| What is Kickstart? |  | ||||||
| 
 |  | ||||||
|   Kickstart.nvim is *not* a distribution. |  | ||||||
| 
 |  | ||||||
|   Kickstart.nvim is a starting point for your own configuration. |  | ||||||
|     The goal is that you can read every line of code, top-to-bottom, understand |  | ||||||
|     what your configuration is doing, and modify it to suit your needs. |  | ||||||
| 
 |  | ||||||
|     Once you've done that, you can start exploring, configuring and tinkering to |  | ||||||
|     make Neovim your own! That might mean leaving Kickstart just the way it is for a while |  | ||||||
|     or immediately breaking it into modular pieces. It's up to you! |  | ||||||
| 
 |  | ||||||
|     If you don't know anything about Lua, I recommend taking some time to read through |  | ||||||
|     a guide. One possible example which will only take 10-15 minutes: |  | ||||||
|       - https://learnxinyminutes.com/docs/lua/ |  | ||||||
| 
 |  | ||||||
|     After understanding a bit more about Lua, you can use `:help lua-guide` as a |  | ||||||
|     reference for how Neovim integrates Lua. |  | ||||||
|     - :help lua-guide |  | ||||||
|     - (or HTML version): https://neovim.io/doc/user/lua-guide.html |  | ||||||
| 
 |  | ||||||
| Kickstart Guide: |  | ||||||
| 
 |  | ||||||
|   TODO: The very first thing you should do is to run the command `:Tutor` in Neovim. |  | ||||||
| 
 |  | ||||||
|     If you don't know what this means, type the following: |  | ||||||
|       - <escape key> |  | ||||||
|       - : |  | ||||||
|       - Tutor |  | ||||||
|       - <enter key> |  | ||||||
| 
 |  | ||||||
|     (If you already know the Neovim basics, you can skip this step.) |  | ||||||
| 
 |  | ||||||
|   Once you've completed that, you can continue working through **AND READING** the rest |  | ||||||
|   of the kickstart init.lua. |  | ||||||
| 
 |  | ||||||
|   Next, run AND READ `:help`. |  | ||||||
|     This will open up a help window with some basic information |  | ||||||
|     about reading, navigating and searching the builtin help documentation. |  | ||||||
| 
 |  | ||||||
|     This should be the first place you go to look when you're stuck or confused |  | ||||||
|     with something. It's one of my favorite Neovim features. |  | ||||||
| 
 |  | ||||||
|     MOST IMPORTANTLY, we provide a keymap "<space>sh" to [s]earch the [h]elp documentation, |  | ||||||
|     which is very useful when you're not exactly sure of what you're looking for. |  | ||||||
| 
 |  | ||||||
|   I have left several `:help X` comments throughout the init.lua |  | ||||||
|     These are hints about where to find more information about the relevant settings, |  | ||||||
|     plugins or Neovim features used in Kickstart. |  | ||||||
| 
 |  | ||||||
|    NOTE: Look for lines like this |  | ||||||
| 
 |  | ||||||
|     Throughout the file. These are for you, the reader, to help you understand what is happening. |  | ||||||
|     Feel free to delete them once you know what you're doing, but they should serve as a guide |  | ||||||
|     for when you are first encountering a few different constructs in your Neovim config. |  | ||||||
| 
 |  | ||||||
| If you experience any errors while trying to install kickstart, run `:checkhealth` for more info. |  | ||||||
| 
 |  | ||||||
| I hope you enjoy your Neovim journey, |  | ||||||
| - TJ |  | ||||||
| 
 |  | ||||||
| P.S. You can delete this when you're done too. It's your config now! :) |  | ||||||
| --]] | --]] | ||||||
| 
 | 
 | ||||||
| -- Set <space> as the leader key | -- Set <space> as the leader key | ||||||
| -- See `:help mapleader` |  | ||||||
| --  NOTE: Must happen before plugins are loaded (otherwise wrong leader will be used) |  | ||||||
| vim.g.mapleader = ' ' | vim.g.mapleader = ' ' | ||||||
| vim.g.maplocalleader = ' ' | vim.g.maplocalleader = ' ' | ||||||
| 
 | 
 | ||||||
| -- Set to true if you have a Nerd Font installed and selected in the terminal | -- Set to true if you have a Nerd Font installed and selected in the terminal | ||||||
| vim.g.have_nerd_font = false | vim.g.have_nerd_font = true | ||||||
| 
 | 
 | ||||||
| -- [[ Setting options ]] | require 'custom.settings' | ||||||
| -- See `:help vim.opt` | require 'custom.keymaps' | ||||||
| -- NOTE: You can change these options as you wish! | require 'custom.basic-autocommands' | ||||||
| --  For more options, you can see `:help option-list` |  | ||||||
| 
 |  | ||||||
| -- Make line numbers default |  | ||||||
| vim.opt.number = true |  | ||||||
| -- You can also add relative line numbers, to help with jumping. |  | ||||||
| --  Experiment for yourself to see if you like it! |  | ||||||
| -- vim.opt.relativenumber = true |  | ||||||
| 
 |  | ||||||
| -- Enable mouse mode, can be useful for resizing splits for example! |  | ||||||
| vim.opt.mouse = 'a' |  | ||||||
| 
 |  | ||||||
| -- Don't show the mode, since it's already in the status line |  | ||||||
| vim.opt.showmode = false |  | ||||||
| 
 |  | ||||||
| -- Sync clipboard between OS and Neovim. |  | ||||||
| --  Schedule the setting after `UiEnter` because it can increase startup-time. |  | ||||||
| --  Remove this option if you want your OS clipboard to remain independent. |  | ||||||
| --  See `:help 'clipboard'` |  | ||||||
| vim.schedule(function() |  | ||||||
|   vim.opt.clipboard = 'unnamedplus' |  | ||||||
| end) |  | ||||||
| 
 |  | ||||||
| -- Enable break indent |  | ||||||
| vim.opt.breakindent = true |  | ||||||
| 
 |  | ||||||
| -- Save undo history |  | ||||||
| vim.opt.undofile = true |  | ||||||
| 
 |  | ||||||
| -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term |  | ||||||
| vim.opt.ignorecase = true |  | ||||||
| vim.opt.smartcase = true |  | ||||||
| 
 |  | ||||||
| -- Keep signcolumn on by default |  | ||||||
| vim.opt.signcolumn = 'yes' |  | ||||||
| 
 |  | ||||||
| -- Decrease update time |  | ||||||
| vim.opt.updatetime = 250 |  | ||||||
| 
 |  | ||||||
| -- Decrease mapped sequence wait time |  | ||||||
| vim.opt.timeoutlen = 300 |  | ||||||
| 
 |  | ||||||
| -- Configure how new splits should be opened |  | ||||||
| vim.opt.splitright = true |  | ||||||
| vim.opt.splitbelow = true |  | ||||||
| 
 |  | ||||||
| -- Sets how neovim will display certain whitespace characters in the editor. |  | ||||||
| --  See `:help 'list'` |  | ||||||
| --  and `:help 'listchars'` |  | ||||||
| vim.opt.list = true |  | ||||||
| vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } |  | ||||||
| 
 |  | ||||||
| -- Preview substitutions live, as you type! |  | ||||||
| vim.opt.inccommand = 'split' |  | ||||||
| 
 |  | ||||||
| -- Show which line your cursor is on |  | ||||||
| vim.opt.cursorline = true |  | ||||||
| 
 |  | ||||||
| -- Minimal number of screen lines to keep above and below the cursor. |  | ||||||
| vim.opt.scrolloff = 10 |  | ||||||
| 
 |  | ||||||
| -- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`), |  | ||||||
| -- instead raise a dialog asking if you wish to save the current file(s) |  | ||||||
| -- See `:help 'confirm'` |  | ||||||
| vim.opt.confirm = true |  | ||||||
| 
 |  | ||||||
| -- [[ Basic Keymaps ]] |  | ||||||
| --  See `:help vim.keymap.set()` |  | ||||||
| 
 |  | ||||||
| -- Clear highlights on search when pressing <Esc> in normal mode |  | ||||||
| --  See `:help hlsearch` |  | ||||||
| vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>') |  | ||||||
| 
 |  | ||||||
| -- Diagnostic keymaps |  | ||||||
| vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) |  | ||||||
| 
 |  | ||||||
| -- Exit terminal mode in the builtin terminal with a shortcut that is a bit easier |  | ||||||
| -- for people to discover. Otherwise, you normally need to press <C-\><C-n>, which |  | ||||||
| -- is not what someone will guess without a bit more experience. |  | ||||||
| -- |  | ||||||
| -- NOTE: This won't work in all terminal emulators/tmux/etc. Try your own mapping |  | ||||||
| -- or just use <C-\><C-n> to exit terminal mode |  | ||||||
| vim.keymap.set('t', '<Esc><Esc>', '<C-\\><C-n>', { desc = 'Exit terminal mode' }) |  | ||||||
| 
 |  | ||||||
| -- TIP: Disable arrow keys in normal mode |  | ||||||
| -- vim.keymap.set('n', '<left>', '<cmd>echo "Use h to move!!"<CR>') |  | ||||||
| -- vim.keymap.set('n', '<right>', '<cmd>echo "Use l to move!!"<CR>') |  | ||||||
| -- vim.keymap.set('n', '<up>', '<cmd>echo "Use k to move!!"<CR>') |  | ||||||
| -- vim.keymap.set('n', '<down>', '<cmd>echo "Use j to move!!"<CR>') |  | ||||||
| 
 |  | ||||||
| -- Keybinds to make split navigation easier. |  | ||||||
| --  Use CTRL+<hjkl> to switch between windows |  | ||||||
| -- |  | ||||||
| --  See `:help wincmd` for a list of all window commands |  | ||||||
| vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' }) |  | ||||||
| vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right 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' }) |  | ||||||
| 
 |  | ||||||
| -- [[ Basic Autocommands ]] |  | ||||||
| --  See `:help lua-guide-autocommands` |  | ||||||
| 
 |  | ||||||
| -- Highlight when yanking (copying) text |  | ||||||
| --  Try it with `yap` in normal mode |  | ||||||
| --  See `:help vim.highlight.on_yank()` |  | ||||||
| vim.api.nvim_create_autocmd('TextYankPost', { |  | ||||||
|   desc = 'Highlight when yanking (copying) text', |  | ||||||
|   group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), |  | ||||||
|   callback = function() |  | ||||||
|     vim.highlight.on_yank() |  | ||||||
|   end, |  | ||||||
| }) |  | ||||||
| 
 | 
 | ||||||
| -- [[ Install `lazy.nvim` plugin manager ]] | -- [[ Install `lazy.nvim` plugin manager ]] | ||||||
| --    See `:help lazy.nvim.txt` or https://github.com/folke/lazy.nvim for more info |  | ||||||
| local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' | local lazypath = vim.fn.stdpath 'data' .. '/lazy/lazy.nvim' | ||||||
| if not (vim.uv or vim.loop).fs_stat(lazypath) then | if not (vim.uv or vim.loop).fs_stat(lazypath) then | ||||||
|   local lazyrepo = 'https://github.com/folke/lazy.nvim.git' |   local lazyrepo = 'https://github.com/folke/lazy.nvim.git' | ||||||
|  | @ -221,42 +43,9 @@ end ---@diagnostic disable-next-line: undefined-field | ||||||
| vim.opt.rtp:prepend(lazypath) | vim.opt.rtp:prepend(lazypath) | ||||||
| 
 | 
 | ||||||
| -- [[ Configure and install plugins ]] | -- [[ Configure and install plugins ]] | ||||||
| -- |  | ||||||
| --  To check the current status of your plugins, run |  | ||||||
| --    :Lazy |  | ||||||
| -- |  | ||||||
| --  You can press `?` in this menu for help. Use `:q` to close the window |  | ||||||
| -- |  | ||||||
| --  To update plugins you can run |  | ||||||
| --    :Lazy update |  | ||||||
| -- |  | ||||||
| -- NOTE: Here is where you install your plugins. |  | ||||||
| require('lazy').setup({ | require('lazy').setup({ | ||||||
|   -- NOTE: Plugins can be added with a link (or for a github repo: 'owner/repo' link). |  | ||||||
|   'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically |   'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically | ||||||
| 
 | 
 | ||||||
|   -- NOTE: Plugins can also be added by using a table, |  | ||||||
|   -- with the first argument being the link and the following |  | ||||||
|   -- keys can be used to configure plugin behavior/loading/etc. |  | ||||||
|   -- |  | ||||||
|   -- Use `opts = {}` to automatically pass options to a plugin's `setup()` function, forcing the plugin to be loaded. |  | ||||||
|   -- |  | ||||||
| 
 |  | ||||||
|   -- Alternatively, use `config = function() ... end` for full control over the configuration. |  | ||||||
|   -- If you prefer to call `setup` explicitly, use: |  | ||||||
|   --    { |  | ||||||
|   --        'lewis6991/gitsigns.nvim', |  | ||||||
|   --        config = function() |  | ||||||
|   --            require('gitsigns').setup({ |  | ||||||
|   --                -- Your gitsigns configuration here |  | ||||||
|   --            }) |  | ||||||
|   --        end, |  | ||||||
|   --    } |  | ||||||
|   -- |  | ||||||
|   -- Here is a more advanced example where we pass configuration |  | ||||||
|   -- options to `gitsigns.nvim`. |  | ||||||
|   -- |  | ||||||
|   -- See `:help gitsigns` to understand what the configuration keys do |  | ||||||
|   { -- Adds git related signs to the gutter, as well as utilities for managing changes |   { -- Adds git related signs to the gutter, as well as utilities for managing changes | ||||||
|     'lewis6991/gitsigns.nvim', |     'lewis6991/gitsigns.nvim', | ||||||
|     opts = { |     opts = { | ||||||
|  | @ -270,27 +59,13 @@ require('lazy').setup({ | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   -- NOTE: Plugins can also be configured to run Lua code when they are loaded. |  | ||||||
|   -- |  | ||||||
|   -- This is often very useful to both group configuration, as well as handle |  | ||||||
|   -- lazy loading plugins that don't need to be loaded immediately at startup. |  | ||||||
|   -- |  | ||||||
|   -- For example, in the following configuration, we use: |  | ||||||
|   --  event = 'VimEnter' |  | ||||||
|   -- |  | ||||||
|   -- which loads which-key before all the UI elements are loaded. Events can be |  | ||||||
|   -- normal autocommands events (`:help autocmd-events`). |  | ||||||
|   -- |  | ||||||
|   -- Then, because we use the `opts` key (recommended), the configuration runs |  | ||||||
|   -- after the plugin has been loaded as `require(MODULE).setup(opts)`. |  | ||||||
| 
 |  | ||||||
|   { -- Useful plugin to show you pending keybinds. |   { -- Useful plugin to show you pending keybinds. | ||||||
|     'folke/which-key.nvim', |     'folke/which-key.nvim', | ||||||
|     event = 'VimEnter', -- Sets the loading event to 'VimEnter' |     event = 'VimEnter', -- Sets the loading event to 'VimEnter' | ||||||
|     opts = { |     opts = { | ||||||
|       -- delay between pressing a key and opening which-key (milliseconds) |       -- delay between pressing a key and opening which-key (milliseconds) | ||||||
|       -- this setting is independent of vim.opt.timeoutlen |       -- this setting is independent of vim.opt.timeoutlen | ||||||
|       delay = 0, |       delay = 300, | ||||||
|       icons = { |       icons = { | ||||||
|         -- set icon mappings to true if you have a Nerd Font |         -- set icon mappings to true if you have a Nerd Font | ||||||
|         mappings = vim.g.have_nerd_font, |         mappings = vim.g.have_nerd_font, | ||||||
|  | @ -330,24 +105,18 @@ require('lazy').setup({ | ||||||
| 
 | 
 | ||||||
|       -- Document existing key chains |       -- Document existing key chains | ||||||
|       spec = { |       spec = { | ||||||
|         { '<leader>c', group = '[C]ode', mode = { 'n', 'x' } }, |         { '<leader>c', group = '[C]lose buffer', mode = { 'n', 'x' } }, | ||||||
|         { '<leader>d', group = '[D]ocument' }, |         { '<leader>d', group = '[D]iagnostics' }, | ||||||
|  |         { '<leader>l', group = '[L]sp' }, | ||||||
|         { '<leader>r', group = '[R]ename' }, |         { '<leader>r', group = '[R]ename' }, | ||||||
|         { '<leader>s', group = '[S]earch' }, |         { '<leader>s', group = '[S]earch' }, | ||||||
|         { '<leader>w', group = '[W]orkspace' }, |         { '<leader>w', group = '[W]save' }, | ||||||
|         { '<leader>t', group = '[T]oggle' }, |         { '<leader>t', group = '[T]oggle' }, | ||||||
|         { '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } }, |         { '<leader>h', group = 'Git [H]unk', mode = { 'n', 'v' } }, | ||||||
|       }, |       }, | ||||||
|     }, |     }, | ||||||
|   }, |   }, | ||||||
| 
 | 
 | ||||||
|   -- NOTE: Plugins can specify dependencies. |  | ||||||
|   -- |  | ||||||
|   -- The dependencies are proper plugin specifications as well - anything |  | ||||||
|   -- you do for a plugin at the top level, you can do for a dependency. |  | ||||||
|   -- |  | ||||||
|   -- Use the `dependencies` key to specify the dependencies of a particular plugin |  | ||||||
| 
 |  | ||||||
|   { -- Fuzzy Finder (files, lsp, etc) |   { -- Fuzzy Finder (files, lsp, etc) | ||||||
|     'nvim-telescope/telescope.nvim', |     'nvim-telescope/telescope.nvim', | ||||||
|     event = 'VimEnter', |     event = 'VimEnter', | ||||||
|  | @ -373,27 +142,7 @@ require('lazy').setup({ | ||||||
|       { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, |       { 'nvim-tree/nvim-web-devicons', enabled = vim.g.have_nerd_font }, | ||||||
|     }, |     }, | ||||||
|     config = function() |     config = function() | ||||||
|       -- Telescope is a fuzzy finder that comes with a lot of different things that |  | ||||||
|       -- it can fuzzy find! It's more than just a "file finder", it can search |  | ||||||
|       -- many different aspects of Neovim, your workspace, LSP, and more! |  | ||||||
|       -- |  | ||||||
|       -- The easiest way to use Telescope, is to start by doing something like: |  | ||||||
|       --  :Telescope help_tags |  | ||||||
|       -- |  | ||||||
|       -- After running this command, a window will open up and you're able to |  | ||||||
|       -- type in the prompt window. You'll see a list of `help_tags` options and |  | ||||||
|       -- a corresponding preview of the help. |  | ||||||
|       -- |  | ||||||
|       -- Two important keymaps to use while in Telescope are: |  | ||||||
|       --  - Insert mode: <c-/> |  | ||||||
|       --  - Normal mode: ? |  | ||||||
|       -- |  | ||||||
|       -- This opens a window that shows you all of the keymaps for the current |  | ||||||
|       -- Telescope picker. This is really useful to discover what Telescope can |  | ||||||
|       -- do as well as how to actually do it! |  | ||||||
| 
 |  | ||||||
|       -- [[ Configure Telescope ]] |       -- [[ Configure Telescope ]] | ||||||
|       -- See `:help telescope` and `:help telescope.setup()` |  | ||||||
|       require('telescope').setup { |       require('telescope').setup { | ||||||
|         -- You can put your default mappings / updates / etc. in here |         -- You can put your default mappings / updates / etc. in here | ||||||
|         --  All the info you're looking for is in `:help telescope.setup()` |         --  All the info you're looking for is in `:help telescope.setup()` | ||||||
|  | @ -428,15 +177,6 @@ require('lazy').setup({ | ||||||
|       vim.keymap.set('n', '<leader>s.', builtin.oldfiles, { desc = '[S]earch Recent Files ("." for repeat)' }) |       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' }) |       vim.keymap.set('n', '<leader><leader>', builtin.buffers, { desc = '[ ] Find existing buffers' }) | ||||||
| 
 | 
 | ||||||
|       -- Slightly advanced example of overriding default behavior and theme |  | ||||||
|       vim.keymap.set('n', '<leader>/', function() |  | ||||||
|         -- You can pass additional configuration to Telescope to change the theme, layout, etc. |  | ||||||
|         builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown { |  | ||||||
|           winblend = 10, |  | ||||||
|           previewer = false, |  | ||||||
|         }) |  | ||||||
|       end, { desc = '[/] Fuzzily search in current buffer' }) |  | ||||||
| 
 |  | ||||||
|       -- It's also possible to pass additional configuration options. |       -- It's also possible to pass additional configuration options. | ||||||
|       --  See `:help telescope.builtin.live_grep()` for information about particular keys |       --  See `:help telescope.builtin.live_grep()` for information about particular keys | ||||||
|       vim.keymap.set('n', '<leader>s/', function() |       vim.keymap.set('n', '<leader>s/', function() | ||||||
|  | @ -734,7 +474,7 @@ require('lazy').setup({ | ||||||
|     cmd = { 'ConformInfo' }, |     cmd = { 'ConformInfo' }, | ||||||
|     keys = { |     keys = { | ||||||
|       { |       { | ||||||
|         '<leader>f', |         '<leader>lf', | ||||||
|         function() |         function() | ||||||
|           require('conform').format { async = true, lsp_format = 'fallback' } |           require('conform').format { async = true, lsp_format = 'fallback' } | ||||||
|         end, |         end, | ||||||
|  | @ -829,8 +569,10 @@ require('lazy').setup({ | ||||||
|         mapping = cmp.mapping.preset.insert { |         mapping = cmp.mapping.preset.insert { | ||||||
|           -- Select the [n]ext item |           -- Select the [n]ext item | ||||||
|           ['<C-n>'] = cmp.mapping.select_next_item(), |           ['<C-n>'] = cmp.mapping.select_next_item(), | ||||||
|  |           ['<C-j>'] = cmp.mapping.select_next_item(), | ||||||
|           -- Select the [p]revious item |           -- Select the [p]revious item | ||||||
|           ['<C-p>'] = cmp.mapping.select_prev_item(), |           ['<C-p>'] = cmp.mapping.select_prev_item(), | ||||||
|  |           ['<C-k>'] = cmp.mapping.select_prev_item(), | ||||||
| 
 | 
 | ||||||
|           -- Scroll the documentation window [b]ack / [f]orward |           -- Scroll the documentation window [b]ack / [f]orward | ||||||
|           ['<C-b>'] = cmp.mapping.scroll_docs(-4), |           ['<C-b>'] = cmp.mapping.scroll_docs(-4), | ||||||
|  | @ -923,14 +665,14 @@ require('lazy').setup({ | ||||||
|       --  - va)  - [V]isually select [A]round [)]paren |       --  - va)  - [V]isually select [A]round [)]paren | ||||||
|       --  - yinq - [Y]ank [I]nside [N]ext [Q]uote |       --  - yinq - [Y]ank [I]nside [N]ext [Q]uote | ||||||
|       --  - ci'  - [C]hange [I]nside [']quote |       --  - ci'  - [C]hange [I]nside [']quote | ||||||
|       require('mini.ai').setup { n_lines = 500 } |       -- require('mini.ai').setup { n_lines = 500 } | ||||||
| 
 | 
 | ||||||
|       -- Add/delete/replace surroundings (brackets, quotes, etc.) |       -- Add/delete/replace surroundings (brackets, quotes, etc.) | ||||||
|       -- |       -- | ||||||
|       -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren |       -- - saiw) - [S]urround [A]dd [I]nner [W]ord [)]Paren | ||||||
|       -- - sd'   - [S]urround [D]elete [']quotes |       -- - sd'   - [S]urround [D]elete [']quotes | ||||||
|       -- - sr)'  - [S]urround [R]eplace [)] ['] |       -- - sr)'  - [S]urround [R]eplace [)] ['] | ||||||
|       require('mini.surround').setup() |       -- require('mini.surround').setup() | ||||||
| 
 | 
 | ||||||
|       -- Simple and easy statusline. |       -- Simple and easy statusline. | ||||||
|       --  You could remove this setup call if you don't like it, |       --  You could remove this setup call if you don't like it, | ||||||
|  | @ -957,7 +699,7 @@ require('lazy').setup({ | ||||||
|     main = 'nvim-treesitter.configs', -- Sets main module to use for opts |     main = 'nvim-treesitter.configs', -- Sets main module to use for opts | ||||||
|     -- [[ Configure Treesitter ]] See `:help nvim-treesitter` |     -- [[ Configure Treesitter ]] See `:help nvim-treesitter` | ||||||
|     opts = { |     opts = { | ||||||
|       ensure_installed = { 'bash', 'c', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' }, |       ensure_installed = { 'bash', 'diff', 'html', 'lua', 'luadoc', 'markdown', 'markdown_inline', 'query', 'vim', 'vimdoc' }, | ||||||
|       -- Autoinstall languages that are not installed |       -- Autoinstall languages that are not installed | ||||||
|       auto_install = true, |       auto_install = true, | ||||||
|       highlight = { |       highlight = { | ||||||
|  | @ -989,15 +731,15 @@ require('lazy').setup({ | ||||||
|   -- require 'kickstart.plugins.debug', |   -- require 'kickstart.plugins.debug', | ||||||
|   -- require 'kickstart.plugins.indent_line', |   -- require 'kickstart.plugins.indent_line', | ||||||
|   -- require 'kickstart.plugins.lint', |   -- require 'kickstart.plugins.lint', | ||||||
|   -- require 'kickstart.plugins.autopairs', |   require 'kickstart.plugins.autopairs', | ||||||
|   -- require 'kickstart.plugins.neo-tree', |   require 'kickstart.plugins.neo-tree', | ||||||
|   -- require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps |   require 'kickstart.plugins.gitsigns', -- adds gitsigns recommend keymaps | ||||||
| 
 | 
 | ||||||
|   -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` |   -- NOTE: The import below can automatically add your own plugins, configuration, etc from `lua/custom/plugins/*.lua` | ||||||
|   --    This is the easiest way to modularize your config. |   --    This is the easiest way to modularize your config. | ||||||
|   -- |   -- | ||||||
|   --  Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. |   --  Uncomment the following line and add your plugins to `lua/custom/plugins/*.lua` to get going. | ||||||
|   -- { import = 'custom.plugins' }, |   { import = 'custom.plugins' }, | ||||||
|   -- |   -- | ||||||
|   -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec` |   -- For additional information with loading, sourcing and examples see `:help lazy.nvim-🔌-plugin-spec` | ||||||
|   -- Or use telescope! |   -- Or use telescope! | ||||||
|  |  | ||||||
|  | @ -0,0 +1,14 @@ | ||||||
|  | -- [[ Basic Autocommands ]] | ||||||
|  | -- | ||||||
|  | --  See `:help lua-guide-autocommands` | ||||||
|  | 
 | ||||||
|  | -- Highlight when yanking (copying) text | ||||||
|  | --  Try it with `yap` in normal mode | ||||||
|  | --  See `:help vim.highlight.on_yank()` | ||||||
|  | vim.api.nvim_create_autocmd('TextYankPost', { | ||||||
|  |   desc = 'Highlight when yanking (copying) text', | ||||||
|  |   group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), | ||||||
|  |   callback = function() | ||||||
|  |     vim.highlight.on_yank() | ||||||
|  |   end, | ||||||
|  | }) | ||||||
|  | @ -0,0 +1,46 @@ | ||||||
|  | -- [[ Basic Keymaps ]] | ||||||
|  | vim.keymap.set('n', '<Esc>', '<cmd>nohlsearch<CR>') | ||||||
|  | vim.keymap.set('n', '<leader>h', '<cmd>nohlsearch<CR>') | ||||||
|  | vim.keymap.set('i', 'jj', '<Esc>') | ||||||
|  | 
 | ||||||
|  | -- Normal -- | ||||||
|  | -- Better window navigation | ||||||
|  | vim.keymap.set('n', '<C-h>', '<C-w><C-h>', { desc = 'Move focus to the left window' }) | ||||||
|  | vim.keymap.set('n', '<C-l>', '<C-w><C-l>', { desc = 'Move focus to the right 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' }) | ||||||
|  | 
 | ||||||
|  | -- Navigate buffers | ||||||
|  | vim.keymap.set('n', '<S-l>', '<cmd>bnext<CR>', { desc = 'Next buffer' }) | ||||||
|  | vim.keymap.set('n', '<S-h>', '<cmd>bprevious<CR>', { desc = 'Previous buffer' }) | ||||||
|  | 
 | ||||||
|  | -- diagnostics | ||||||
|  | vim.keymap.set('n', '<leader>d', '<cmd>lua vim.diagnostic.open_float()<CR>', { desc = 'Show diagnostic float' }) | ||||||
|  | 
 | ||||||
|  | -- Files | ||||||
|  | vim.keymap.set('n', '<leader>q', '<cmd>q!<cr>', { desc = '[Q]uit' }) | ||||||
|  | vim.keymap.set('n', '<leader>w', '<cmd>w!<cr>', { desc = '[W]rite file' }) | ||||||
|  | vim.keymap.set('n', '<leader>/', '<Plug>(comment_toggle_linewise_current)', { desc = 'Toggle comment line' }) | ||||||
|  | vim.keymap.set('n', '<leader>.', '<cmd>luafile %<CR>', { desc = 'Source Lua file' }) | ||||||
|  | vim.keymap.set('v', '<leader>/', '<Plug>(comment_toggle_linewise_visual)', { desc = 'Toggle comment for selection' }) | ||||||
|  | 
 | ||||||
|  | -- delete single character without copying into register | ||||||
|  | vim.keymap.set('n', 'x', '"_x', { desc = 'Delete character without yanking' }) | ||||||
|  | 
 | ||||||
|  | -- Visual -- | ||||||
|  | -- Stay in indent mode | ||||||
|  | vim.keymap.set('v', '<', '<gv', { desc = 'Indent left and stay in visual mode' }) | ||||||
|  | vim.keymap.set('v', '>', '>gv', { desc = 'Indent right and stay in visual mode' }) | ||||||
|  | 
 | ||||||
|  | -- buffers | ||||||
|  | vim.keymap.set('n', '<leader>bh', '<cmd>BufferLineCloseLeft<cr>', { desc = 'Close buffers to the left' }) | ||||||
|  | vim.keymap.set('n', '<leader>bl', '<cmd>BufferLineCloseRight<cr>', { desc = 'Close buffers to the right' }) | ||||||
|  | vim.keymap.set('n', '<leader>bf', '<cmd>Telescope buffers<cr>', { desc = 'Find buffers' }) | ||||||
|  | vim.keymap.set('n', '<leader>c', '<cmd>bd!<CR>', { desc = 'Close buffer' }) | ||||||
|  | 
 | ||||||
|  | --- lsp | ||||||
|  | vim.keymap.set('n', '<leader>la', '<cmd>lua vim.lsp.buf.code_action()<cr>', { desc = 'Code actions' }) | ||||||
|  | vim.keymap.set('n', '<leader>lj', '<cmd>lua vim.diagnostic.goto_next()<cr>', { desc = 'Next diagnostic' }) | ||||||
|  | vim.keymap.set('n', '<leader>lk', '<cmd>lua vim.diagnostic.goto_prev()<cr>', { desc = 'Previous diagnostic' }) | ||||||
|  | vim.keymap.set('n', '<leader>lf', '<cmd>lua vim.lsp.buf.format{async = true}<cr>', { desc = 'Format buffer' }) | ||||||
|  | vim.keymap.set('n', '<leader>lr', '<cmd>lua vim.lsp.buf.rename()<cr>', { desc = 'Rename symbol' }) | ||||||
|  | @ -2,4 +2,53 @@ | ||||||
| --  I promise not to create any merge conflicts in this directory :) | --  I promise not to create any merge conflicts in this directory :) | ||||||
| -- | -- | ||||||
| -- See the kickstart.nvim README for more information | -- See the kickstart.nvim README for more information | ||||||
| return {} | return { | ||||||
|  |   { | ||||||
|  |     'akinsho/bufferline.nvim', | ||||||
|  |     version = '*', | ||||||
|  |     dependencies = 'nvim-tree/nvim-web-devicons', | ||||||
|  |     config = function() | ||||||
|  |       require('bufferline').setup {} | ||||||
|  |     end, | ||||||
|  |   }, | ||||||
|  |   { | ||||||
|  |     'mikavilpas/yazi.nvim', | ||||||
|  |     event = 'VeryLazy', | ||||||
|  |     keys = { | ||||||
|  |       -- 👇 in this section, choose your own keymappings! | ||||||
|  |       { | ||||||
|  |         '<leader>y', | ||||||
|  |         mode = { 'n', 'v' }, | ||||||
|  |         '<cmd>Yazi<cr>', | ||||||
|  |         desc = 'Open yazi at the current file', | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |     opts = { | ||||||
|  |       -- if you want to open yazi instead of netrw, see below for more info | ||||||
|  |       open_for_directories = false, | ||||||
|  |       keymaps = { | ||||||
|  |         show_help = '<f1>', | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  |   'moll/vim-bbye', | ||||||
|  |   { | ||||||
|  |     'folke/flash.nvim', | ||||||
|  |     event = 'VeryLazy', | ||||||
|  |     ---@type Flash.Config | ||||||
|  |     opts = {}, | ||||||
|  |     -- stylua: ignore | ||||||
|  |     keys = { | ||||||
|  |       { "s",     mode = { "n", "x", "o" }, function() require("flash").jump() end,              desc = "Flash" }, | ||||||
|  |       { "S",     mode = { "n", "x", "o" }, function() require("flash").treesitter() end,        desc = "Flash Treesitter" }, | ||||||
|  |       { "r",     mode = "o",               function() require("flash").remote() end,            desc = "Remote Flash" }, | ||||||
|  |       { "R",     mode = { "o", "x" },      function() require("flash").treesitter_search() end, desc = "Treesitter Search" }, | ||||||
|  |       { "<c-s>", mode = { "c" },           function() require("flash").toggle() end,            desc = "Toggle Flash Search" }, | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  | 
 | ||||||
|  |   -------------------------------------COLORS------------------------------------- | ||||||
|  |   --- | ||||||
|  |   { 'catppuccin/nvim', as = 'catppuccin' }, | ||||||
|  |   { 'rose-pine/neovim', name = 'rose-pine' }, | ||||||
|  | } | ||||||
|  |  | ||||||
|  | @ -0,0 +1,67 @@ | ||||||
|  | -- [[ Setting options ]] | ||||||
|  | -- See `:help vim.opt` | ||||||
|  | -- NOTE: You can change these options as you wish! | ||||||
|  | --  For more options, you can see `:help option-list` | ||||||
|  | 
 | ||||||
|  | -- Make line numbers default | ||||||
|  | vim.opt.number = true | ||||||
|  | -- You can also add relative line numbers, to help with jumping. | ||||||
|  | --  Experiment for yourself to see if you like it! | ||||||
|  | -- vim.opt.relativenumber = true | ||||||
|  | 
 | ||||||
|  | -- Enable mouse mode, can be useful for resizing splits for example! | ||||||
|  | vim.opt.mouse = 'a' | ||||||
|  | 
 | ||||||
|  | -- Don't show the mode, since it's already in the status line | ||||||
|  | vim.opt.showmode = false | ||||||
|  | 
 | ||||||
|  | -- Sync clipboard between OS and Neovim. | ||||||
|  | --  Schedule the setting after `UiEnter` because it can increase startup-time. | ||||||
|  | --  Remove this option if you want your OS clipboard to remain independent. | ||||||
|  | --  See `:help 'clipboard'` | ||||||
|  | vim.schedule(function() | ||||||
|  |   vim.opt.clipboard = 'unnamedplus' | ||||||
|  | end) | ||||||
|  | 
 | ||||||
|  | -- Enable break indent | ||||||
|  | vim.opt.breakindent = true | ||||||
|  | 
 | ||||||
|  | -- Save undo history | ||||||
|  | vim.opt.undofile = true | ||||||
|  | 
 | ||||||
|  | -- Case-insensitive searching UNLESS \C or one or more capital letters in the search term | ||||||
|  | vim.opt.ignorecase = true | ||||||
|  | vim.opt.smartcase = true | ||||||
|  | 
 | ||||||
|  | -- Keep signcolumn on by default | ||||||
|  | vim.opt.signcolumn = 'yes' | ||||||
|  | 
 | ||||||
|  | -- Decrease update time | ||||||
|  | vim.opt.updatetime = 250 | ||||||
|  | 
 | ||||||
|  | -- Decrease mapped sequence wait time | ||||||
|  | vim.opt.timeoutlen = 300 | ||||||
|  | 
 | ||||||
|  | -- Configure how new splits should be opened | ||||||
|  | vim.opt.splitright = true | ||||||
|  | vim.opt.splitbelow = true | ||||||
|  | 
 | ||||||
|  | -- Sets how neovim will display certain whitespace characters in the editor. | ||||||
|  | --  See `:help 'list'` | ||||||
|  | --  and `:help 'listchars'` | ||||||
|  | vim.opt.list = true | ||||||
|  | vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } | ||||||
|  | 
 | ||||||
|  | -- Preview substitutions live, as you type! | ||||||
|  | vim.opt.inccommand = 'split' | ||||||
|  | 
 | ||||||
|  | -- Show which line your cursor is on | ||||||
|  | vim.opt.cursorline = true | ||||||
|  | 
 | ||||||
|  | -- Minimal number of screen lines to keep above and below the cursor. | ||||||
|  | vim.opt.scrolloff = 10 | ||||||
|  | 
 | ||||||
|  | -- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`), | ||||||
|  | -- instead raise a dialog asking if you wish to save the current file(s) | ||||||
|  | -- See `:help 'confirm'` | ||||||
|  | vim.opt.confirm = true | ||||||
|  | @ -11,7 +11,7 @@ return { | ||||||
|   }, |   }, | ||||||
|   cmd = 'Neotree', |   cmd = 'Neotree', | ||||||
|   keys = { |   keys = { | ||||||
|     { '\\', ':Neotree reveal<CR>', desc = 'NeoTree reveal', silent = true }, |     { '<leader>e', ':Neotree toggle<CR>', desc = 'NeoTree reveal', silent = true }, | ||||||
|   }, |   }, | ||||||
|   opts = { |   opts = { | ||||||
|     filesystem = { |     filesystem = { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue