--- /dev/null
+-- 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 config.plugins 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 {
+ -- 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 },
+
+ -- add symbols-outline
+ {
+ "simrat39/symbols-outline.nvim",
+ cmd = "SymbolsOutline",
+ keys = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
+ config = true,
+ },
+
+ -- override nvim-cmp and add cmp-emoji
+ {
+ "hrsh7th/nvim-cmp",
+ dependencies = { "hrsh7th/cmp-emoji" },
+ ---@param opts cmp.ConfigSchema
+ opts = function(_, opts)
+ local cmp = require("cmp")
+ opts.sources = cmp.config.sources(vim.list_extend(opts.sources, { { name = "emoji" } }))
+ end,
+ },
+
+ -- change some telescope options and add telescope-fzf-native
+ {
+ "nvim-telescope/telescope.nvim",
+ dependencies = { { "nvim-telescope/telescope-fzf-native.nvim", build = "make" } },
+ 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,
+ },
+ },
+ -- apply the config and additionally load fzf-native
+ config = function(_, opts)
+ local telescope = require("telescope")
+ telescope.setup(opts)
+ telescope.load_extension("fzf")
+ end,
+ },
+
+ -- add pyright and setup tsserver with typescript.nvim
+ {
+ "neovim/nvim-lspconfig",
+ dependencies = {
+ "jose-elias-alvarez/typescript.nvim",
+ init = function()
+ require("lazyvim.util").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 = {
+ -- pyright will be automatically installed with mason and loaded with lspconfig
+ pyright = {},
+ 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",
+ "help",
+ "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 ne value.
+ -- If you'd rather extend the default config, use the code below instead:
+ {
+ "nvim-treesitter/nvim-treesitter",
+ opts = function(_, opts)
+ vim.list_extend(opts.ensure_installed, {
+ -- add tsx and treesitter
+ ensure_installed = {
+ "tsx",
+ "typescript",
+ },
+ })
+ end,
+ },
+
+ -- the opts function can als 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 ans 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",
+ },
+ },
+ },
+}
+++ /dev/null
-return {
-
- -- uncomment and add lsp servers with their config to servers below
- {
- "neovim/nvim-lspconfig",
- -- ---@class PluginLspOpts
- -- opts = {
- -- ---@type lspconfig.options
- -- servers = {
- -- jsonls = {},
- -- sumneko_lua = {
- -- settings = {
- -- Lua = {
- -- workspace = {
- -- checkThirdParty = false,
- -- },
- -- completion = {
- -- callSnippet = "Replace",
- -- },
- -- },
- -- },
- -- },
- -- },
- -- -- 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,
- -- },
- -- },
- },
-
- -- uncomment and add tools to ensure_installed below
- {
- "williamboman/mason.nvim",
- -- opts = {
- -- ensure_installed = {
- -- "stylua",
- -- "shellcheck",
- -- "shfmt",
- -- "flake8",
- -- },
- -- },
- },
-}