Merge branch 'nvim-lua:master' into master
This commit is contained in:
		
						commit
						ee4a5ba0a2
					
				
							
								
								
									
										27
									
								
								README.md
								
								
								
								
							
							
						
						
									
										27
									
								
								README.md
								
								
								
								
							|  | @ -94,8 +94,8 @@ information about extending and exploring Neovim. | |||
| ### Recommended Steps | ||||
| 
 | ||||
| [Fork](https://docs.github.com/en/get-started/quickstart/fork-a-repo) this repo | ||||
| (so that you have your own copy that you can modify) and then installing you | ||||
| can install to your machine using the methods above. | ||||
| (so that you have your own copy that you can modify) and then install. You | ||||
| can install it on your machine using the methods above. | ||||
| 
 | ||||
| > **NOTE** | ||||
| > Your fork's url will be something like this: `https://github.com/<your_github_username>/kickstart.nvim.git` | ||||
|  | @ -135,13 +135,12 @@ return { | |||
| <details> | ||||
|   <summary>Adding a file tree plugin</summary> | ||||
| 
 | ||||
| This will install the tree plugin and add the command `:Neotree` for you. You can explore the documentation at [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim) for more information. | ||||
| This will install the tree plugin and add the command `:Neotree` for you. For more information, see the documentation at [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim). | ||||
| 
 | ||||
| In the file: `lua/custom/plugins/filetree.lua`, add: | ||||
| 
 | ||||
| ```lua | ||||
| -- Unless you are still migrating, remove the deprecated commands from v1.x | ||||
| vim.cmd([[ let g:neo_tree_remove_legacy_commands = 1 ]]) | ||||
| -- File: lua/custom/plugins/filetree.lua | ||||
| 
 | ||||
| return { | ||||
|   "nvim-neo-tree/neo-tree.nvim", | ||||
|  | @ -162,10 +161,10 @@ return { | |||
| ### FAQ | ||||
| 
 | ||||
| * What should I do if I already have a pre-existing neovim configuration? | ||||
|   * You should back it up, then delete all files associated with it. | ||||
|   * You should back it up and then delete all associated files. | ||||
|   * This includes your existing init.lua and the neovim files in `~/.local` which can be deleted with `rm -rf ~/.local/share/nvim/` | ||||
| * Can I keep my existing configuration in parallel to kickstart? | ||||
|   * Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME` to maintain multiple configurations. For example you can install the kickstart configuration in `~/.config/nvim-kickstart` and create an alias: | ||||
|   * Yes! You can use [NVIM_APPNAME](https://neovim.io/doc/user/starting.html#%24NVIM_APPNAME)`=nvim-NAME` to maintain multiple configurations. For example, you can install the kickstart configuration in `~/.config/nvim-kickstart` and create an alias: | ||||
|     ``` | ||||
|     alias nvim-kickstart='NVIM_APPNAME="nvim-kickstart" nvim' | ||||
|     ``` | ||||
|  | @ -174,9 +173,9 @@ return { | |||
|   * See [lazy.nvim uninstall](https://github.com/folke/lazy.nvim#-uninstalling) information | ||||
| * Why is the kickstart `init.lua` a single file? Wouldn't it make sense to split it into multiple files? | ||||
|   * The main purpose of kickstart is to serve as a teaching tool and a reference | ||||
|     configuration that someone can easily `git clone` as a basis for their own. | ||||
|     configuration that someone can easily use to `git clone` as a basis for their own. | ||||
|     As you progress in learning Neovim and Lua, you might consider splitting `init.lua` | ||||
|     into smaller parts. A fork of kickstart that does this while maintaining the exact | ||||
|     into smaller parts. A fork of kickstart that does this while maintaining the  | ||||
|     same functionality is available here: | ||||
|     * [kickstart-modular.nvim](https://github.com/dam9000/kickstart-modular.nvim) | ||||
|   * Discussions on this topic can be found here: | ||||
|  | @ -185,19 +184,19 @@ return { | |||
| 
 | ||||
| ### Windows Installation | ||||
| 
 | ||||
| Installation may require installing build tools, and updating the run command for `telescope-fzf-native` | ||||
| Installation may require installing build tools and updating the run command for `telescope-fzf-native` | ||||
| 
 | ||||
| See `telescope-fzf-native` documentation for [more details](https://github.com/nvim-telescope/telescope-fzf-native.nvim#installation) | ||||
| 
 | ||||
| This requires: | ||||
| 
 | ||||
| - Install CMake, and the Microsoft C++ Build Tools on Windows | ||||
| - Install CMake and the Microsoft C++ Build Tools on Windows | ||||
| 
 | ||||
| ```lua | ||||
| {'nvim-telescope/telescope-fzf-native.nvim', build = 'cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build' } | ||||
| ``` | ||||
| 
 | ||||
| Alternatively one can install gcc and make which don't require changing the config, | ||||
| Alternatively, one can install gcc and make which don't require changing the config, | ||||
| the easiest way is to use choco: | ||||
| 
 | ||||
| 1. install [chocolatey](https://chocolatey.org/install) | ||||
|  | @ -208,9 +207,9 @@ winget install --accept-source-agreements chocolatey.chocolatey | |||
| ``` | ||||
| 
 | ||||
| 2. install all requirements using choco, exit previous cmd and | ||||
| open a new one so that choco path is set, run in cmd as **admin**: | ||||
| open a new one so that choco path is set, and run in cmd as **admin**: | ||||
| ``` | ||||
| choco install -y neovim git ripgrep wget fd unzip gzip mingw make | ||||
| ``` | ||||
| 
 | ||||
| Then continue with the [Install Kickstart](#Install-Kickstart) step. | ||||
| Then, continue with the [Install Kickstart](#Install-Kickstart) step. | ||||
|  |  | |||
							
								
								
									
										85
									
								
								init.lua
								
								
								
								
							
							
						
						
									
										85
									
								
								init.lua
								
								
								
								
							|  | @ -130,6 +130,9 @@ vim.opt.signcolumn = 'yes' | |||
| 
 | ||||
| -- Decrease update time | ||||
| vim.opt.updatetime = 250 | ||||
| 
 | ||||
| -- Decrease mapped sequence wait time | ||||
| -- Displays which-key popup sooner | ||||
| vim.opt.timeoutlen = 300 | ||||
| 
 | ||||
| -- Configure how new splits should be opened | ||||
|  | @ -410,6 +413,10 @@ require('lazy').setup({ | |||
|       -- Useful status updates for LSP. | ||||
|       -- NOTE: `opts = {}` is the same as calling `require('fidget').setup({})` | ||||
|       { 'j-hui/fidget.nvim', opts = {} }, | ||||
| 
 | ||||
|       -- `neodev` configures Lua LSP for your Neovim config, runtime and plugins | ||||
|       -- used for completion, annotations and signatures of Neovim apis | ||||
|       { 'folke/neodev.nvim', opts = {} }, | ||||
|     }, | ||||
|     config = function() | ||||
|       -- Brief Aside: **What is LSP?** | ||||
|  | @ -456,7 +463,7 @@ require('lazy').setup({ | |||
| 
 | ||||
|           -- Jump to the definition of the word under your cursor. | ||||
|           --  This is where a variable was first declared, or where a function is defined, etc. | ||||
|           --  To jump back, press <C-T>. | ||||
|           --  To jump back, press <C-t>. | ||||
|           map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition') | ||||
| 
 | ||||
|           -- Find references for the word under your cursor. | ||||
|  | @ -551,18 +558,6 @@ require('lazy').setup({ | |||
|           -- capabilities = {}, | ||||
|           settings = { | ||||
|             Lua = { | ||||
|               runtime = { version = 'LuaJIT' }, | ||||
|               workspace = { | ||||
|                 checkThirdParty = false, | ||||
|                 -- Tells lua_ls where to find all the Lua files that you have loaded | ||||
|                 -- for your neovim configuration. | ||||
|                 library = { | ||||
|                   '${3rd}/luv/library', | ||||
|                   unpack(vim.api.nvim_get_runtime_file('', true)), | ||||
|                 }, | ||||
|                 -- If lua_ls is really slow on your computer, you can try this instead: | ||||
|                 -- library = { vim.env.VIMRUNTIME }, | ||||
|               }, | ||||
|               completion = { | ||||
|                 callSnippet = 'Replace', | ||||
|               }, | ||||
|  | @ -608,10 +603,16 @@ require('lazy').setup({ | |||
|     'stevearc/conform.nvim', | ||||
|     opts = { | ||||
|       notify_on_error = false, | ||||
|       format_on_save = { | ||||
|         timeout_ms = 500, | ||||
|         lsp_fallback = true, | ||||
|       }, | ||||
|       format_on_save = function(bufnr) | ||||
|         -- Disable "format_on_save lsp_fallback" for languages that don't | ||||
|         -- have a well standardized coding style. You can add additional | ||||
|         -- languages here or re-enable it for the disabled ones. | ||||
|         local disable_filetypes = { c = true, cpp = true } | ||||
|         return { | ||||
|           timeout_ms = 500, | ||||
|           lsp_fallback = not disable_filetypes[vim.bo[bufnr].filetype], | ||||
|         } | ||||
|       end, | ||||
|       formatters_by_ft = { | ||||
|         lua = { 'stylua' }, | ||||
|         -- Conform can also run multiple formatters sequentially | ||||
|  | @ -640,6 +641,17 @@ require('lazy').setup({ | |||
|           end | ||||
|           return 'make install_jsregexp' | ||||
|         end)(), | ||||
|         dependencies = { | ||||
|           -- `friendly-snippets` contains a variety of premade snippets. | ||||
|           --    See the README about individual language/framework/plugin snippets: | ||||
|           --    https://github.com/rafamadriz/friendly-snippets | ||||
|           -- { | ||||
|           --   'rafamadriz/friendly-snippets', | ||||
|           --   config = function() | ||||
|           --     require('luasnip.loaders.from_vscode').lazy_load() | ||||
|           --   end, | ||||
|           -- }, | ||||
|         }, | ||||
|       }, | ||||
|       'saadparwaiz1/cmp_luasnip', | ||||
| 
 | ||||
|  | @ -648,12 +660,6 @@ require('lazy').setup({ | |||
|       --  into multiple repos for maintenance purposes. | ||||
|       'hrsh7th/cmp-nvim-lsp', | ||||
|       'hrsh7th/cmp-path', | ||||
| 
 | ||||
|       -- If you want to add a bunch of pre-configured snippets, | ||||
|       --    you can use this plugin to help you. It even has snippets | ||||
|       --    for various frameworks/libraries/etc. but you will have to | ||||
|       --    set up the ones that are useful for you. | ||||
|       -- 'rafamadriz/friendly-snippets', | ||||
|     }, | ||||
|     config = function() | ||||
|       -- See `:help cmp` | ||||
|  | @ -679,6 +685,10 @@ require('lazy').setup({ | |||
|           -- Select the [p]revious item | ||||
|           ['<C-p>'] = cmp.mapping.select_prev_item(), | ||||
| 
 | ||||
|           -- scroll the documentation window [b]ack / [f]orward | ||||
|           ['<C-b>'] = cmp.mapping.scroll_docs(-4), | ||||
|           ['<C-f>'] = cmp.mapping.scroll_docs(4), | ||||
| 
 | ||||
|           -- Accept ([y]es) the completion. | ||||
|           --  This will auto-import if your LSP supports it. | ||||
|           --  This will expand snippets if the LSP sent a snippet. | ||||
|  | @ -707,6 +717,9 @@ require('lazy').setup({ | |||
|               luasnip.jump(-1) | ||||
|             end | ||||
|           end, { 'i', 's' }), | ||||
| 
 | ||||
|           -- For more advanced luasnip keymaps (e.g. selecting choice nodes, expansion) see: | ||||
|           --    https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps | ||||
|         }, | ||||
|         sources = { | ||||
|           { name = 'nvim_lsp' }, | ||||
|  | @ -723,9 +736,8 @@ require('lazy').setup({ | |||
|     -- | ||||
|     -- If you want to see what colorschemes are already installed, you can use `:Telescope colorscheme` | ||||
|     'folke/tokyonight.nvim', | ||||
|     lazy = false, -- make sure we load this during startup if it is your main colorscheme | ||||
|     priority = 1000, -- make sure to load this before all the other start plugins | ||||
|     config = function() | ||||
|     init = function() | ||||
|       -- Load the colorscheme here. | ||||
|       -- Like many other themes, this one has different styles, and you could load | ||||
|       -- any other, such as 'tokyonight-storm', 'tokyonight-moon', or 'tokyonight-day'. | ||||
|  | @ -780,17 +792,24 @@ require('lazy').setup({ | |||
|   { -- Highlight, edit, and navigate code | ||||
|     'nvim-treesitter/nvim-treesitter', | ||||
|     build = ':TSUpdate', | ||||
|     config = function() | ||||
|     opts = { | ||||
|       ensure_installed = { 'bash', 'c', 'html', 'lua', 'markdown', 'vim', 'vimdoc' }, | ||||
|       -- Autoinstall languages that are not installed | ||||
|       auto_install = true, | ||||
|       highlight = { | ||||
|         enable = true, | ||||
|         -- Some languages depend on vim's regex highlighting system (such as Ruby) for indent rules. | ||||
|         --  If you are experiencing weird indenting issues, add the language to | ||||
|         --  the list of additional_vim_regex_highlighting and disabled languages for indent. | ||||
|         additional_vim_regex_highlighting = { 'ruby' }, | ||||
|       }, | ||||
|       indent = { enable = true, disable = { 'ruby' } }, | ||||
|     }, | ||||
|     config = function(_, opts) | ||||
|       -- [[ Configure Treesitter ]] See `:help nvim-treesitter` | ||||
| 
 | ||||
|       ---@diagnostic disable-next-line: missing-fields | ||||
|       require('nvim-treesitter.configs').setup { | ||||
|         ensure_installed = { 'bash', 'c', 'html', 'lua', 'markdown', 'vim', 'vimdoc' }, | ||||
|         -- Autoinstall languages that are not installed | ||||
|         auto_install = true, | ||||
|         highlight = { enable = true }, | ||||
|         indent = { enable = true }, | ||||
|       } | ||||
|       require('nvim-treesitter.configs').setup(opts) | ||||
| 
 | ||||
|       -- There are additional nvim-treesitter modules that you can use to interact | ||||
|       -- with nvim-treesitter. You should go explore a few and see what interests you: | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue