-- 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 { "kovisoft/paredit", { "monkoose/nvlime", event = "VeryLazy", dependencies = { "monkoose/parsley" } }, -- 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 -- { -- "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", "co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) -- vim.keymap.set("n", "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 -- 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", "bash", "html", "javascript", "json", "lua", "markdown", "markdown_inline", "python", "query", "regex", "tsx", "typescript", "vim", "yaml", }) 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, { -- function() -- return "😄" -- end, -- }) -- 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", }, }, }, }