]> git.madduck.net Git - etc/lazyvim.git/blob - .config/lazyvim/lua/plugins/example.lua

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

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.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Set markdown for all tridactyl files
[etc/lazyvim.git] / .config / lazyvim / lua / plugins / example.lua
1 -- since this is just an example spec, don't actually load anything here and return an empty spec
2 -- stylua: ignore
3 if true then return {} end
4
5 -- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
6 --
7 -- In your plugin files, you can:
8 -- * add extra plugins
9 -- * disable/enabled LazyVim plugins
10 -- * override the configuration of LazyVim plugins
11 return {
12   -- add gruvbox
13   { "ellisonleao/gruvbox.nvim" },
14
15   -- Configure LazyVim to load gruvbox
16   {
17     "LazyVim/LazyVim",
18     opts = {
19       colorscheme = "gruvbox",
20     },
21   },
22
23   -- change trouble config
24   {
25     "folke/trouble.nvim",
26     -- opts will be merged with the parent spec
27     opts = { use_diagnostic_signs = true },
28   },
29
30   -- disable trouble
31   { "folke/trouble.nvim", enabled = false },
32
33   -- override nvim-cmp and add cmp-emoji
34   {
35     "hrsh7th/nvim-cmp",
36     dependencies = { "hrsh7th/cmp-emoji" },
37     ---@param opts cmp.ConfigSchema
38     opts = function(_, opts)
39       table.insert(opts.sources, { name = "emoji" })
40     end,
41   },
42
43   -- change some telescope options and a keymap to browse plugin files
44   {
45     "nvim-telescope/telescope.nvim",
46     keys = {
47       -- add a keymap to browse plugin files
48       -- stylua: ignore
49       {
50         "<leader>fp",
51         function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
52         desc = "Find Plugin File",
53       },
54     },
55     -- change some options
56     opts = {
57       defaults = {
58         layout_strategy = "horizontal",
59         layout_config = { prompt_position = "top" },
60         sorting_strategy = "ascending",
61         winblend = 0,
62       },
63     },
64   },
65
66   -- add pyright to lspconfig
67   {
68     "neovim/nvim-lspconfig",
69     ---@class PluginLspOpts
70     opts = {
71       ---@type lspconfig.options
72       servers = {
73         -- pyright will be automatically installed with mason and loaded with lspconfig
74         pyright = {},
75       },
76     },
77   },
78
79   -- add tsserver and setup with typescript.nvim instead of lspconfig
80   {
81     "neovim/nvim-lspconfig",
82     dependencies = {
83       "jose-elias-alvarez/typescript.nvim",
84       init = function()
85         require("lazyvim.util").lsp.on_attach(function(_, buffer)
86           -- stylua: ignore
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 })
89         end)
90       end,
91     },
92     ---@class PluginLspOpts
93     opts = {
94       ---@type lspconfig.options
95       servers = {
96         -- tsserver will be automatically installed with mason and loaded with lspconfig
97         tsserver = {},
98       },
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?>
102       setup = {
103         -- example to setup with typescript.nvim
104         tsserver = function(_, opts)
105           require("typescript").setup({ server = opts })
106           return true
107         end,
108         -- Specify * to use this function as a fallback for any server
109         -- ["*"] = function(server, opts) end,
110       },
111     },
112   },
113
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" },
117
118   -- add more treesitter parsers
119   {
120     "nvim-treesitter/nvim-treesitter",
121     opts = {
122       ensure_installed = {
123         "bash",
124         "html",
125         "javascript",
126         "json",
127         "lua",
128         "markdown",
129         "markdown_inline",
130         "python",
131         "query",
132         "regex",
133         "tsx",
134         "typescript",
135         "vim",
136         "yaml",
137       },
138     },
139   },
140
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:
144   {
145     "nvim-treesitter/nvim-treesitter",
146     opts = function(_, opts)
147       -- add tsx and treesitter
148       vim.list_extend(opts.ensure_installed, {
149         "tsx",
150         "typescript",
151       })
152     end,
153   },
154
155   -- the opts function can also be used to change the default opts:
156   {
157     "nvim-lualine/lualine.nvim",
158     event = "VeryLazy",
159     opts = function(_, opts)
160       table.insert(opts.sections.lualine_x, {
161         function()
162           return "😄"
163         end,
164       })
165     end,
166   },
167
168   -- or you can return new options to override all the defaults
169   {
170     "nvim-lualine/lualine.nvim",
171     event = "VeryLazy",
172     opts = function()
173       return {
174         --[[add your custom lualine config here]]
175       }
176     end,
177   },
178
179   -- use mini.starter instead of alpha
180   { import = "lazyvim.plugins.extras.ui.mini-starter" },
181
182   -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
183   { import = "lazyvim.plugins.extras.lang.json" },
184
185   -- add any tools you want to have installed below
186   {
187     "williamboman/mason.nvim",
188     opts = {
189       ensure_installed = {
190         "stylua",
191         "shellcheck",
192         "shfmt",
193         "flake8",
194       },
195     },
196   },
197 }