new initial
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					avante-upstream/
 | 
				
			||||||
 | 
					lvs-upstream/
 | 
				
			||||||
							
								
								
									
										15
									
								
								base_config_setup.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										15
									
								
								base_config_setup.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# To be run in ~/.config/nvim/
 | 
				
			||||||
 | 
					# This will clone git dirs but the lua/plugins/avante.lua file is made
 | 
				
			||||||
 | 
					# either from config repo or avante README.
 | 
				
			||||||
 | 
					# opts = {} section is important.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					git clone https://github.com/LazyVim/starter.git lvs-upstream
 | 
				
			||||||
 | 
					git clone https://github.com/yetone/avante.nvim.git avante-upstream
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cp -r lvs-upstream/lua .
 | 
				
			||||||
 | 
					cp lvs-upstream/init.lua .
 | 
				
			||||||
 | 
					cp lvs-upstream/stylua.toml .
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Probably run nvim at this point.
 | 
				
			||||||
							
								
								
									
										2
									
								
								init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								init.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					-- bootstrap lazy.nvim, LazyVim and your plugins
 | 
				
			||||||
 | 
					require("config.lazy")
 | 
				
			||||||
							
								
								
									
										48
									
								
								lazy-lock.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								lazy-lock.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "LazyVim": { "branch": "main", "commit": "12818a6cb499456f4903c5d8e68af43753ebc869" },
 | 
				
			||||||
 | 
					  "avante.nvim": { "branch": "main", "commit": "b09ff856b7239380cf4a92e304460e99dc88282a" },
 | 
				
			||||||
 | 
					  "bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" },
 | 
				
			||||||
 | 
					  "catppuccin": { "branch": "main", "commit": "4fd72a9ab64b393c2c22b168508fd244877fec96" },
 | 
				
			||||||
 | 
					  "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
 | 
				
			||||||
 | 
					  "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
 | 
				
			||||||
 | 
					  "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
 | 
				
			||||||
 | 
					  "conform.nvim": { "branch": "master", "commit": "62eba813b7501b39612146cbf29cd07f1d4ac29c" },
 | 
				
			||||||
 | 
					  "dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" },
 | 
				
			||||||
 | 
					  "dressing.nvim": { "branch": "master", "commit": "c5775a888adbc50652cb370073fcfec963eca93e" },
 | 
				
			||||||
 | 
					  "flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" },
 | 
				
			||||||
 | 
					  "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
 | 
				
			||||||
 | 
					  "gitsigns.nvim": { "branch": "main", "commit": "899e993850084ea33d001ec229d237bc020c19ae" },
 | 
				
			||||||
 | 
					  "grug-far.nvim": { "branch": "main", "commit": "986fca5ffc354f48f2c329c8dff8a41632832600" },
 | 
				
			||||||
 | 
					  "img-clip.nvim": { "branch": "main", "commit": "28a32d811d69042f4fa5c3d5fa35571df2bc1623" },
 | 
				
			||||||
 | 
					  "indent-blankline.nvim": { "branch": "master", "commit": "db926997af951da38e5004ec7b9fbdc480b48f5d" },
 | 
				
			||||||
 | 
					  "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
 | 
				
			||||||
 | 
					  "lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
 | 
				
			||||||
 | 
					  "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
 | 
				
			||||||
 | 
					  "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
 | 
				
			||||||
 | 
					  "mason-lspconfig.nvim": { "branch": "main", "commit": "482350b050bd413931c2cdd4857443c3da7d57cb" },
 | 
				
			||||||
 | 
					  "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
 | 
				
			||||||
 | 
					  "mini.ai": { "branch": "main", "commit": "a9b992b13d22a8db8df6beac25afa59a10b5584d" },
 | 
				
			||||||
 | 
					  "mini.icons": { "branch": "main", "commit": "12e7b5d47bfc1b4c5ba4278fb49ec9100138df14" },
 | 
				
			||||||
 | 
					  "mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" },
 | 
				
			||||||
 | 
					  "neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" },
 | 
				
			||||||
 | 
					  "noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" },
 | 
				
			||||||
 | 
					  "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
 | 
				
			||||||
 | 
					  "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
 | 
				
			||||||
 | 
					  "nvim-lint": { "branch": "master", "commit": "debabca63c0905b59ce596a55a8e33eafdf66342" },
 | 
				
			||||||
 | 
					  "nvim-lspconfig": { "branch": "master", "commit": "6bfd9210e312af6cfedba05d272e85618c93ab0d" },
 | 
				
			||||||
 | 
					  "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
 | 
				
			||||||
 | 
					  "nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" },
 | 
				
			||||||
 | 
					  "nvim-treesitter": { "branch": "master", "commit": "fd9663acca289598086b7c5a366be8b2fa5d7960" },
 | 
				
			||||||
 | 
					  "nvim-treesitter-textobjects": { "branch": "master", "commit": "3a3c6244553f13fdd92d312c82722b57ce6c4bec" },
 | 
				
			||||||
 | 
					  "nvim-ts-autotag": { "branch": "main", "commit": "e239a560f338be31337e7abc3ee42515daf23f5e" },
 | 
				
			||||||
 | 
					  "persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" },
 | 
				
			||||||
 | 
					  "plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" },
 | 
				
			||||||
 | 
					  "render-markdown.nvim": { "branch": "main", "commit": "bc8213ddcd91d2045cc3813df861adb93fbf2d2d" },
 | 
				
			||||||
 | 
					  "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
 | 
				
			||||||
 | 
					  "telescope.nvim": { "branch": "master", "commit": "5972437de807c3bc101565175da66a1aa4f8707a" },
 | 
				
			||||||
 | 
					  "todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" },
 | 
				
			||||||
 | 
					  "tokyonight.nvim": { "branch": "main", "commit": "b0e7c7382a7e8f6456f2a95655983993ffda745e" },
 | 
				
			||||||
 | 
					  "trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" },
 | 
				
			||||||
 | 
					  "ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" },
 | 
				
			||||||
 | 
					  "which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										9
									
								
								lazyvim.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								lazyvim.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "extras": [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ],
 | 
				
			||||||
 | 
					  "news": {
 | 
				
			||||||
 | 
					    "NEWS.md": "6520"
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  "version": 6
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										3
									
								
								lua/config/autocmds.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								lua/config/autocmds.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					-- Autocmds are automatically loaded on the VeryLazy event
 | 
				
			||||||
 | 
					-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
 | 
				
			||||||
 | 
					-- Add any additional autocmds here
 | 
				
			||||||
							
								
								
									
										3
									
								
								lua/config/keymaps.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								lua/config/keymaps.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					-- Keymaps are automatically loaded on the VeryLazy event
 | 
				
			||||||
 | 
					-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
 | 
				
			||||||
 | 
					-- Add any additional keymaps here
 | 
				
			||||||
							
								
								
									
										53
									
								
								lua/config/lazy.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								lua/config/lazy.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
 | 
				
			||||||
 | 
					if not (vim.uv or vim.loop).fs_stat(lazypath) then
 | 
				
			||||||
 | 
					  local lazyrepo = "https://github.com/folke/lazy.nvim.git"
 | 
				
			||||||
 | 
					  local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
 | 
				
			||||||
 | 
					  if vim.v.shell_error ~= 0 then
 | 
				
			||||||
 | 
					    vim.api.nvim_echo({
 | 
				
			||||||
 | 
					      { "Failed to clone lazy.nvim:\n", "ErrorMsg" },
 | 
				
			||||||
 | 
					      { out, "WarningMsg" },
 | 
				
			||||||
 | 
					      { "\nPress any key to exit..." },
 | 
				
			||||||
 | 
					    }, true, {})
 | 
				
			||||||
 | 
					    vim.fn.getchar()
 | 
				
			||||||
 | 
					    os.exit(1)
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					end
 | 
				
			||||||
 | 
					vim.opt.rtp:prepend(lazypath)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require("lazy").setup({
 | 
				
			||||||
 | 
					  spec = {
 | 
				
			||||||
 | 
					    -- add LazyVim and import its plugins
 | 
				
			||||||
 | 
					    { "LazyVim/LazyVim", import = "lazyvim.plugins" },
 | 
				
			||||||
 | 
					    -- import/override with your plugins
 | 
				
			||||||
 | 
					    { import = "plugins" },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  defaults = {
 | 
				
			||||||
 | 
					    -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
 | 
				
			||||||
 | 
					    -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
 | 
				
			||||||
 | 
					    lazy = false,
 | 
				
			||||||
 | 
					    -- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
 | 
				
			||||||
 | 
					    -- have outdated releases, which may break your Neovim install.
 | 
				
			||||||
 | 
					    version = false, -- always use the latest git commit
 | 
				
			||||||
 | 
					    -- version = "*", -- try installing the latest stable version for plugins that support semver
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  install = { colorscheme = { "tokyonight", "habamax" } },
 | 
				
			||||||
 | 
					  checker = {
 | 
				
			||||||
 | 
					    enabled = true, -- check for plugin updates periodically
 | 
				
			||||||
 | 
					    notify = false, -- notify on update
 | 
				
			||||||
 | 
					  }, -- automatically check for plugin updates
 | 
				
			||||||
 | 
					  performance = {
 | 
				
			||||||
 | 
					    rtp = {
 | 
				
			||||||
 | 
					      -- disable some rtp plugins
 | 
				
			||||||
 | 
					      disabled_plugins = {
 | 
				
			||||||
 | 
					        "gzip",
 | 
				
			||||||
 | 
					        -- "matchit",
 | 
				
			||||||
 | 
					        -- "matchparen",
 | 
				
			||||||
 | 
					        -- "netrwPlugin",
 | 
				
			||||||
 | 
					        "tarPlugin",
 | 
				
			||||||
 | 
					        "tohtml",
 | 
				
			||||||
 | 
					        "tutor",
 | 
				
			||||||
 | 
					        "zipPlugin",
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
							
								
								
									
										3
									
								
								lua/config/options.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								lua/config/options.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					-- Options are automatically loaded before lazy.nvim startup
 | 
				
			||||||
 | 
					-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
 | 
				
			||||||
 | 
					-- Add any additional options here
 | 
				
			||||||
							
								
								
									
										99
									
								
								lua/plugins/avante.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								lua/plugins/avante.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,99 @@
 | 
				
			|||||||
 | 
					return {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							"yetone/avante.nvim",
 | 
				
			||||||
 | 
							event = "VeryLazy",
 | 
				
			||||||
 | 
							lazy = false,
 | 
				
			||||||
 | 
							opts = {
 | 
				
			||||||
 | 
								claude = {
 | 
				
			||||||
 | 
									["local"] = true,
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								provider = "ollama",
 | 
				
			||||||
 | 
								vendors = {
 | 
				
			||||||
 | 
									provider = "ollama",
 | 
				
			||||||
 | 
									---@type AvanteProvider
 | 
				
			||||||
 | 
									ollama = {
 | 
				
			||||||
 | 
										["local"] = true,
 | 
				
			||||||
 | 
										endpoint = "127.0.0.1:11434/v1",
 | 
				
			||||||
 | 
										model = "llama3.1",
 | 
				
			||||||
 | 
										parse_curl_args = function(opts, code_opts)
 | 
				
			||||||
 | 
											return {
 | 
				
			||||||
 | 
												url = opts.endpoint .. "/chat/completions",
 | 
				
			||||||
 | 
												headers = {
 | 
				
			||||||
 | 
													["Accept"] = "application/json",
 | 
				
			||||||
 | 
													["Content-Type"] = "application/json",
 | 
				
			||||||
 | 
												},
 | 
				
			||||||
 | 
												body = {
 | 
				
			||||||
 | 
													model = opts.model,
 | 
				
			||||||
 | 
													messages = require("avante.providers").copilot.parse_message(code_opts), -- you can make your own message, but this is very advanced
 | 
				
			||||||
 | 
													max_tokens = 2048,
 | 
				
			||||||
 | 
													stream = true,
 | 
				
			||||||
 | 
												},
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										end,
 | 
				
			||||||
 | 
										parse_response_data = function(data_stream, event_state, opts)
 | 
				
			||||||
 | 
											require("avante.providers").openai.parse_response(data_stream, event_state, opts)
 | 
				
			||||||
 | 
										end,
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								-- add any opts here
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							keys = {
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									"<leader>aa",
 | 
				
			||||||
 | 
									function()
 | 
				
			||||||
 | 
										require("avante.api").ask()
 | 
				
			||||||
 | 
									end,
 | 
				
			||||||
 | 
									desc = "avante: ask",
 | 
				
			||||||
 | 
									mode = { "n", "v" },
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									"<leader>ar",
 | 
				
			||||||
 | 
									function()
 | 
				
			||||||
 | 
										require("avante.api").refresh()
 | 
				
			||||||
 | 
									end,
 | 
				
			||||||
 | 
									desc = "avante: refresh",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									"<leader>ae",
 | 
				
			||||||
 | 
									function()
 | 
				
			||||||
 | 
										require("avante.api").edit()
 | 
				
			||||||
 | 
									end,
 | 
				
			||||||
 | 
									desc = "avante: edit",
 | 
				
			||||||
 | 
									mode = "v",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							dependencies = {
 | 
				
			||||||
 | 
								"stevearc/dressing.nvim",
 | 
				
			||||||
 | 
								"nvim-lua/plenary.nvim",
 | 
				
			||||||
 | 
								"MunifTanjim/nui.nvim",
 | 
				
			||||||
 | 
								--- The below dependencies are optional,
 | 
				
			||||||
 | 
								--"nvim-tree/nvim-web-devicons", -- or echasnovski/mini.icons
 | 
				
			||||||
 | 
								"echasnovski/mini.icons",
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									-- support for image pasting
 | 
				
			||||||
 | 
									"HakonHarnes/img-clip.nvim",
 | 
				
			||||||
 | 
									event = "VeryLazy",
 | 
				
			||||||
 | 
									opts = {
 | 
				
			||||||
 | 
										-- recommended settings
 | 
				
			||||||
 | 
										default = {
 | 
				
			||||||
 | 
											embed_image_as_base64 = false,
 | 
				
			||||||
 | 
											prompt_for_file_name = false,
 | 
				
			||||||
 | 
											drag_and_drop = {
 | 
				
			||||||
 | 
												insert_mode = true,
 | 
				
			||||||
 | 
											},
 | 
				
			||||||
 | 
											-- required for Windows users
 | 
				
			||||||
 | 
											use_absolute_path = true,
 | 
				
			||||||
 | 
										},
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									-- Make sure to setup it properly if you have lazy=true
 | 
				
			||||||
 | 
									"MeanderingProgrammer/render-markdown.nvim",
 | 
				
			||||||
 | 
									opts = {
 | 
				
			||||||
 | 
										file_types = { "markdown", "Avante" },
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									ft = { "markdown", "Avante" },
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										193
									
								
								lua/plugins/example.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										193
									
								
								lua/plugins/example.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,193 @@
 | 
				
			|||||||
 | 
					-- since this is just an example spec, don't actually load anything here and return an empty spec
 | 
				
			||||||
 | 
					-- stylua: ignore
 | 
				
			||||||
 | 
					if true then return {} end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
 | 
				
			||||||
 | 
					--
 | 
				
			||||||
 | 
					-- In your plugin files, you can:
 | 
				
			||||||
 | 
					-- * add extra plugins
 | 
				
			||||||
 | 
					-- * disable/enabled LazyVim plugins
 | 
				
			||||||
 | 
					-- * override the configuration of LazyVim plugins
 | 
				
			||||||
 | 
					return {
 | 
				
			||||||
 | 
					  -- add gruvbox
 | 
				
			||||||
 | 
					  { "ellisonleao/gruvbox.nvim" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- Configure LazyVim to load gruvbox
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "LazyVim/LazyVim",
 | 
				
			||||||
 | 
					    opts = {
 | 
				
			||||||
 | 
					      colorscheme = "gruvbox",
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- change trouble config
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "folke/trouble.nvim",
 | 
				
			||||||
 | 
					    -- opts will be merged with the parent spec
 | 
				
			||||||
 | 
					    opts = { use_diagnostic_signs = true },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- disable trouble
 | 
				
			||||||
 | 
					  { "folke/trouble.nvim", enabled = false },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- override nvim-cmp and add cmp-emoji
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "hrsh7th/nvim-cmp",
 | 
				
			||||||
 | 
					    dependencies = { "hrsh7th/cmp-emoji" },
 | 
				
			||||||
 | 
					    ---@param opts cmp.ConfigSchema
 | 
				
			||||||
 | 
					    opts = function(_, opts)
 | 
				
			||||||
 | 
					      table.insert(opts.sources, { name = "emoji" })
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- change some telescope options and a keymap to browse plugin files
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "nvim-telescope/telescope.nvim",
 | 
				
			||||||
 | 
					    keys = {
 | 
				
			||||||
 | 
					      -- add a keymap to browse plugin files
 | 
				
			||||||
 | 
					      -- stylua: ignore
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "<leader>fp",
 | 
				
			||||||
 | 
					        function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
 | 
				
			||||||
 | 
					        desc = "Find Plugin File",
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    -- change some options
 | 
				
			||||||
 | 
					    opts = {
 | 
				
			||||||
 | 
					      defaults = {
 | 
				
			||||||
 | 
					        layout_strategy = "horizontal",
 | 
				
			||||||
 | 
					        layout_config = { prompt_position = "top" },
 | 
				
			||||||
 | 
					        sorting_strategy = "ascending",
 | 
				
			||||||
 | 
					        winblend = 0,
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- add pyright to lspconfig
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "neovim/nvim-lspconfig",
 | 
				
			||||||
 | 
					    ---@class PluginLspOpts
 | 
				
			||||||
 | 
					    opts = {
 | 
				
			||||||
 | 
					      ---@type lspconfig.options
 | 
				
			||||||
 | 
					      servers = {
 | 
				
			||||||
 | 
					        -- pyright will be automatically installed with mason and loaded with lspconfig
 | 
				
			||||||
 | 
					        pyright = {},
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- add tsserver and setup with typescript.nvim instead of lspconfig
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "neovim/nvim-lspconfig",
 | 
				
			||||||
 | 
					    dependencies = {
 | 
				
			||||||
 | 
					      "jose-elias-alvarez/typescript.nvim",
 | 
				
			||||||
 | 
					      init = function()
 | 
				
			||||||
 | 
					        require("lazyvim.util").lsp.on_attach(function(_, buffer)
 | 
				
			||||||
 | 
					          -- stylua: ignore
 | 
				
			||||||
 | 
					          vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
 | 
				
			||||||
 | 
					          vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
 | 
				
			||||||
 | 
					        end)
 | 
				
			||||||
 | 
					      end,
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    ---@class PluginLspOpts
 | 
				
			||||||
 | 
					    opts = {
 | 
				
			||||||
 | 
					      ---@type lspconfig.options
 | 
				
			||||||
 | 
					      servers = {
 | 
				
			||||||
 | 
					        -- tsserver will be automatically installed with mason and loaded with lspconfig
 | 
				
			||||||
 | 
					        tsserver = {},
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      -- you can do any additional lsp server setup here
 | 
				
			||||||
 | 
					      -- return true if you don't want this server to be setup with lspconfig
 | 
				
			||||||
 | 
					      ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
 | 
				
			||||||
 | 
					      setup = {
 | 
				
			||||||
 | 
					        -- example to setup with typescript.nvim
 | 
				
			||||||
 | 
					        tsserver = function(_, opts)
 | 
				
			||||||
 | 
					          require("typescript").setup({ server = opts })
 | 
				
			||||||
 | 
					          return true
 | 
				
			||||||
 | 
					        end,
 | 
				
			||||||
 | 
					        -- Specify * to use this function as a fallback for any server
 | 
				
			||||||
 | 
					        -- ["*"] = function(server, opts) end,
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
 | 
				
			||||||
 | 
					  -- treesitter, mason and typescript.nvim. So instead of the above, you can use:
 | 
				
			||||||
 | 
					  { import = "lazyvim.plugins.extras.lang.typescript" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- add more treesitter parsers
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "nvim-treesitter/nvim-treesitter",
 | 
				
			||||||
 | 
					    opts = {
 | 
				
			||||||
 | 
					      ensure_installed = {
 | 
				
			||||||
 | 
					        "bash",
 | 
				
			||||||
 | 
					        "html",
 | 
				
			||||||
 | 
					        "javascript",
 | 
				
			||||||
 | 
					        "json",
 | 
				
			||||||
 | 
					        "lua",
 | 
				
			||||||
 | 
					        "markdown",
 | 
				
			||||||
 | 
					        "markdown_inline",
 | 
				
			||||||
 | 
					        "python",
 | 
				
			||||||
 | 
					        "query",
 | 
				
			||||||
 | 
					        "regex",
 | 
				
			||||||
 | 
					        "tsx",
 | 
				
			||||||
 | 
					        "typescript",
 | 
				
			||||||
 | 
					        "vim",
 | 
				
			||||||
 | 
					        "yaml",
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
 | 
				
			||||||
 | 
					  -- would overwrite `ensure_installed` with the new value.
 | 
				
			||||||
 | 
					  -- If you'd rather extend the default config, use the code below instead:
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "nvim-treesitter/nvim-treesitter",
 | 
				
			||||||
 | 
					    opts = function(_, opts)
 | 
				
			||||||
 | 
					      -- add tsx and treesitter
 | 
				
			||||||
 | 
					      vim.list_extend(opts.ensure_installed, {
 | 
				
			||||||
 | 
					        "tsx",
 | 
				
			||||||
 | 
					        "typescript",
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- the opts function can also be used to change the default opts:
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "nvim-lualine/lualine.nvim",
 | 
				
			||||||
 | 
					    event = "VeryLazy",
 | 
				
			||||||
 | 
					    opts = function(_, opts)
 | 
				
			||||||
 | 
					      table.insert(opts.sections.lualine_x, "😄")
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- or you can return new options to override all the defaults
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "nvim-lualine/lualine.nvim",
 | 
				
			||||||
 | 
					    event = "VeryLazy",
 | 
				
			||||||
 | 
					    opts = function()
 | 
				
			||||||
 | 
					      return {
 | 
				
			||||||
 | 
					        --[[add your custom lualine config here]]
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    end,
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- use mini.starter instead of alpha
 | 
				
			||||||
 | 
					  { import = "lazyvim.plugins.extras.ui.mini-starter" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
 | 
				
			||||||
 | 
					  { import = "lazyvim.plugins.extras.lang.json" },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  -- add any tools you want to have installed below
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    "williamboman/mason.nvim",
 | 
				
			||||||
 | 
					    opts = {
 | 
				
			||||||
 | 
					      ensure_installed = {
 | 
				
			||||||
 | 
					        "stylua",
 | 
				
			||||||
 | 
					        "shellcheck",
 | 
				
			||||||
 | 
					        "shfmt",
 | 
				
			||||||
 | 
					        "flake8",
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										9
									
								
								reset_nvim.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								reset_nvim.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Full nuke in 5 secs. Control-C to stop."
 | 
				
			||||||
 | 
					sleep 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					rm -rf ~/.local/share/nvim
 | 
				
			||||||
 | 
					rm init.lua
 | 
				
			||||||
 | 
					rm lazy-lock.json
 | 
				
			||||||
 | 
					rm -rf plugins/
 | 
				
			||||||
							
								
								
									
										3
									
								
								stylua.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								stylua.toml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					indent_type = "Spaces"
 | 
				
			||||||
 | 
					indent_width = 2
 | 
				
			||||||
 | 
					column_width = 120
 | 
				
			||||||
							
								
								
									
										4
									
								
								update_nvim.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								update_nvim.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					# Not a script. Source this in your ~/bin/nvim-linux64/ dir if that's your nvim binary path.
 | 
				
			||||||
 | 
					# Symlink the binary from something in your PATH (ln -s ~/bin/nvim-linux64/bin/nvim ~/bin/nvim)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz -O - | tar -xvz --strip-components=1
 | 
				
			||||||
		Reference in New Issue
	
	Block a user