All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
1 -- since this is just an example spec, don't actually load anything here and return an empty spec
3 if true then return {} end
5 -- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
7 -- In your plugin files, you can:
9 -- * disable/enabled LazyVim plugins
10 -- * override the configuration of LazyVim plugins
13 { "ellisonleao/gruvbox.nvim" },
15 -- Configure LazyVim to load gruvbox
19 colorscheme = "gruvbox",
23 -- change trouble config
26 -- opts will be merged with the parent spec
27 opts = { use_diagnostic_signs = true },
31 { "folke/trouble.nvim", enabled = false },
33 -- override nvim-cmp and add cmp-emoji
36 dependencies = { "hrsh7th/cmp-emoji" },
37 ---@param opts cmp.ConfigSchema
38 opts = function(_, opts)
39 table.insert(opts.sources, { name = "emoji" })
43 -- change some telescope options and a keymap to browse plugin files
45 "nvim-telescope/telescope.nvim",
47 -- add a keymap to browse plugin files
51 function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
52 desc = "Find Plugin File",
55 -- change some options
58 layout_strategy = "horizontal",
59 layout_config = { prompt_position = "top" },
60 sorting_strategy = "ascending",
66 -- add pyright to lspconfig
68 "neovim/nvim-lspconfig",
69 ---@class PluginLspOpts
71 ---@type lspconfig.options
73 -- pyright will be automatically installed with mason and loaded with lspconfig
79 -- add tsserver and setup with typescript.nvim instead of lspconfig
81 "neovim/nvim-lspconfig",
83 "jose-elias-alvarez/typescript.nvim",
85 require("lazyvim.util").lsp.on_attach(function(_, buffer)
87 vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
88 vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
92 ---@class PluginLspOpts
94 ---@type lspconfig.options
96 -- tsserver will be automatically installed with mason and loaded with lspconfig
99 -- you can do any additional lsp server setup here
100 -- return true if you don't want this server to be setup with lspconfig
101 ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
103 -- example to setup with typescript.nvim
104 tsserver = function(_, opts)
105 require("typescript").setup({ server = opts })
108 -- Specify * to use this function as a fallback for any server
109 -- ["*"] = function(server, opts) end,
114 -- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
115 -- treesitter, mason and typescript.nvim. So instead of the above, you can use:
116 { import = "lazyvim.plugins.extras.lang.typescript" },
118 -- add more treesitter parsers
120 "nvim-treesitter/nvim-treesitter",
141 -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
142 -- would overwrite `ensure_installed` with the new value.
143 -- If you'd rather extend the default config, use the code below instead:
145 "nvim-treesitter/nvim-treesitter",
146 opts = function(_, opts)
147 -- add tsx and treesitter
148 vim.list_extend(opts.ensure_installed, {
155 -- the opts function can also be used to change the default opts:
157 "nvim-lualine/lualine.nvim",
159 opts = function(_, opts)
160 table.insert(opts.sections.lualine_x, {
168 -- or you can return new options to override all the defaults
170 "nvim-lualine/lualine.nvim",
174 --[[add your custom lualine config here]]
179 -- use mini.starter instead of alpha
180 { import = "lazyvim.plugins.extras.ui.mini-starter" },
182 -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
183 { import = "lazyvim.plugins.extras.lang.json" },
185 -- add any tools you want to have installed below
187 "williamboman/mason.nvim",