LazyVim.LazyVim/README.md

534 lines
24 KiB
Markdown
Raw Normal View History

2022-12-30 17:34:43 +01:00
# LazyVim
2023-01-07 12:11:00 +01:00
Neovim config for the lazy powered by [💤 lazy.nvim](https://github.com/folke/lazy.nvim).
2022-12-30 17:35:02 +01:00
2023-01-07 11:53:23 +01:00
Can't decide between building a config from scratch or using one of the existing
2023-01-07 12:12:08 +01:00
Neovim **_distros_**?
2023-01-07 11:53:23 +01:00
With **LazyVim** you don't have to. Configuring **LazyVim** is
**exactly the same** as you would configure a config from scratch.
You can easily add new plugins, change the config for existing ones
or disable plugins.
2022-12-31 13:13:04 +01:00
![image](https://user-images.githubusercontent.com/292349/210136312-c211f781-6d51-46b0-a265-6098bdbb364d.png)
2022-12-30 18:21:30 +01:00
## 🚀 Getting Started
You can find a starter template for **LazyVim** [here](https://github.com/LazyVim/starter)
2023-01-07 11:59:13 +01:00
**TLDR:**
```lua
require("lazy").setup({
spec = {
-- import LazyVim plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import/override with your plugins
{ import = "plugins" },
2023-01-09 10:52:18 +01:00
-- import any extras modules here
-- { import = "lazyvim.plugins.extras.lang.typescript" },
-- { import = "lazyvim.plugins.extras.lang.json" },
2023-01-07 11:59:13 +01:00
},
defaults = {
lazy = true, -- every plugin is lazy-loaded by default
version = "*", -- try installing the latest stable version for plugins that support semver
2023-01-07 12:01:21 +01:00
},
2023-01-07 11:59:13 +01:00
})
```
2023-01-09 10:52:18 +01:00
## 📂 File Structure
2022-12-30 18:21:30 +01:00
2023-01-09 10:52:18 +01:00
The files under config will be automatically loaded at the appropriate time,
so you don't need to require those files manually.
You can add your custom plugin specs under `lua/plugins/`. All files there
will be automatically loaded by [lazy.nvim](https://github.com/folke/lazy.nvim)
<pre>
~/.config/nvim
├── lua
│   ├── config
│   │   ├── autocmds.lua
│   │   ├── keymaps.lua
│   │   ├── lazy.lua
│   │   └── options.lua
│   └── plugins
│   ├── spec1.lua
│   ├── **
│   └── spec2.lua
└── init.toml
</pre>
## 🚀 Configuring **LazyVim**
Configuring **LazyVim** is exactly the same as using **lazy.nvim** to build
a config from scratch.
For the full plugin spec documentation please check the **lazy.nvim**
[readme](https://github.com/folke/lazy.nvim).
<details><summary>Example spec: <code>lua/plugins/example.lua</code></summary>
<!-- examples:start -->
```lua
-- 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",
},
},
},
}
```
<!-- examples:end -->
</details>
2022-12-30 23:59:24 +01:00
## ⌨️ Keymaps
2023-01-08 21:08:28 +01:00
2023-01-09 08:37:42 +01:00
**LazyVim** uses [which-key.nvim](https://github.com/folke/which-key) to help you remember your
keymaps. Just press any key like `<space>` and you'll see a popup with all
possible keymaps starting with `<space>`.
2023-01-09 08:39:40 +01:00
![image](https://user-images.githubusercontent.com/292349/211259984-a7522199-81a2-44f7-be6c-af21ba153f0a.png)
2023-01-09 08:38:50 +01:00
2023-01-08 21:08:28 +01:00
<!-- keymaps:start -->
2023-01-09 08:37:42 +01:00
<details><summary>General</summary>
2023-01-08 21:08:28 +01:00
| Key | Description | Mode |
| -------------------- | -------------------------- | -------------------------- |
| `<C-h>` | Go to left window | **n** |
| `<C-j>` | Go to lower window | **n** |
| `<C-k>` | Go to upper window | **n** |
| `<C-l>` | Go to right window | **n** |
| `<C-Up>` | Increase window height | **n** |
| `<C-Down>` | Decrease window height | **n** |
| `<C-Left>` | Decrease window width | **n** |
| `<C-Right>` | Increase window width | **n** |
| `<A-j>` | Move down | **n**, **v**, **i** |
| `<A-k>` | Move up | **n**, **v**, **i** |
| `<S-h>` | Prev buffer | **n** |
| `<S-l>` | Next buffer | **n** |
| `[p` | Paste below | **n** |
| `]p` | Paste above | **n** |
| `<esc>` | Escape and clear hlsearch | **i**, **n** |
| `n` | Next search result | **n**, **x**, **o** |
| `N` | Prev search result | **n**, **x**, **o** |
| `<C-s>` | Save file | **i**, **v**, **n**, **s** |
| `<leader>l` | Lazy | **n** |
| `<leader>fn` | New File | **n** |
| `<leader>xl` | Open Location List | **n** |
| `<leader>xq` | Open Quickfix List | **n** |
2023-01-09 08:37:42 +01:00
| `<leader>tf` | Toggle format on Save | **n** |
| `<leader>ts` | Toggle Spelling | **n** |
| `<leader>tw` | Toggle Word Wrap | **n** |
| `<leader>tn` | Toggle Line Numbers | **n** |
| `<leader>td` | Toggle Diagnostics | **n** |
| `<leader>tc` | Toggle Conceal | **n** |
| `<leader>gg` | Lazygit (cwd) | **n** |
| `<leader>gG` | Lazygit (root dir) | **n** |
| `<leader>qq` | Quit all | **n** |
| `<leader>hl` | Highlight Groups at cursor | **n** |
| `<leader>ot` | Terminal (root dir) | **n** |
| `<leader>oT` | Terminal (cwd) | **n** |
| `<esc><esc>` | Enter Normal Mode | **t** |
| `<leader>ww` | other-window | **n** |
| `<leader>wd` | delete-window | **n** |
| `<leader>w-` | split-window-below | **n** |
| `<leader>w\|` | split-window-right | **n** |
| `<leader><tab>l` | Last | **n** |
| `<leader><tab>f` | First | **n** |
| `<leader><tab><tab>` | New Tab | **n** |
| `<leader><tab>]` | Next | **n** |
| `<leader><tab>d` | Close | **n** |
| `<leader><tab>[` | Previous | **n** |
| `<leader>b]` | Next Buffer | **n** |
| `<leader>bb` | Switch to Other Buffer | **n** |
| `<leader>b[` | Previous Buffer | **n** |
| `` <leader>` `` | Switch to Other Buffer | **n** |
2023-01-08 21:08:28 +01:00
2023-01-09 08:37:42 +01:00
</details>
<details><summary>LSP</summary>
2023-01-08 21:08:28 +01:00
| Key | Description | Mode |
| ------------ | --------------------- | ------------ |
| `<leader>cd` | Line Diagnostics | **n** |
| `<leader>cl` | Lsp Info | **n** |
| `<leader>xd` | Telescope Diagnostics | **n** |
| `gd` | Goto Definition | **n** |
| `gr` | References | **n** |
| `gD` | Goto Declaration | **n** |
| `gI` | Goto Implementation | **n** |
| `gt` | Goto Type Definition | **n** |
| `K` | Hover | **n** |
| `gK` | Signature Help | **n** |
| `[d` | Next Diagnostic | **n** |
| `]d` | Prev Diagnostic | **n** |
| `]e` | Next Error | **n** |
| `[e` | Prev Error | **n** |
| `]w` | Next Warning | **n** |
| `[w` | Prev Warning | **n** |
| `<leader>ca` | Code Action | **n**, **v** |
| `<leader>cf` | Format Document | **n** |
| `<leader>cf` | Format Range | **v** |
| `<leader>cr` | Rename | **n** |
2023-01-08 21:08:28 +01:00
2023-01-09 08:37:42 +01:00
</details>
<details><summary>Plugins</summary>
2023-01-08 21:08:28 +01:00
| Key | Description | Mode |
| ----------------- | ---------------------------------------------------------------------------------------------- | ----- |
| `<leader>cm` | [mason.nvim](https://github.com/williamboman/mason.nvim.git) Mason | **n** |
| `<leader>bd` | [mini.bufremove](https://github.com/echasnovski/mini.bufremove.git) Delete Buffer | **n** |
| `<leader>bD` | [mini.bufremove](https://github.com/echasnovski/mini.bufremove.git) Delete Buffer (Force) | **n** |
| `<leader>ft` | [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim.git) NeoTree (root dir) | **n** |
| `<leader>fT` | [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim.git) NeoTree (cwd) | **n** |
| `<S-Enter>` | [noice.nvim](https://github.com/folke/noice.nvim.git) Redirect Cmdline | **c** |
| `<leader>nl` | [noice.nvim](https://github.com/folke/noice.nvim.git) Noice Last Message | **n** |
| `<leader>nh` | [noice.nvim](https://github.com/folke/noice.nvim.git) Noice History | **n** |
| `<leader>na` | [noice.nvim](https://github.com/folke/noice.nvim.git) Noice All | **n** |
2023-01-09 09:54:02 +01:00
| `<c-f>` | [noice.nvim](https://github.com/folke/noice.nvim.git) Scroll forward | **n** |
| `<c-b>` | [noice.nvim](https://github.com/folke/noice.nvim.git) Scroll backward | **n** |
| `<leader>nd` | [nvim-notify](https://github.com/rcarriga/nvim-notify.git) Delete all Notifications | **n** |
| `<leader>sr` | [nvim-spectre](https://github.com/windwp/nvim-spectre.git) Replace in files (Spectre) | **n** |
| `<leader>qs` | [persistence.nvim](https://github.com/folke/persistence.nvim.git) Restore Session | **n** |
| `<leader>ql` | [persistence.nvim](https://github.com/folke/persistence.nvim.git) Restore Last Session | **n** |
| `<leader>qd` | [persistence.nvim](https://github.com/folke/persistence.nvim.git) Don't Save Current Session | **n** |
| `<leader>/` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Find in Files (Grep) | **n** |
| `<leader><space>` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Find Files (root dir) | **n** |
| `<leader>fb` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Buffers | **n** |
| `<leader>ff` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Find Files (root dir) | **n** |
| `<leader>fF` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Find Files (cwd) | **n** |
| `<leader>fr` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Recent | **n** |
| `<leader>gc` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) commits | **n** |
| `<leader>gs` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) status | **n** |
| `<leader>ha` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Auto Commands | **n** |
| `<leader>hc` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Commands | **n** |
| `<leader>hf` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) File Types | **n** |
| `<leader>hh` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Help Pages | **n** |
| `<leader>hk` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Key Maps | **n** |
| `<leader>hm` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Man Pages | **n** |
| `<leader>ho` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Options | **n** |
| `<leader>hs` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Search Highlight Groups | **n** |
| `<leader>ht` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Telescope | **n** |
| `<leader>sb` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Buffer | **n** |
| `<leader>sc` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Command History | **n** |
| `<leader>sg` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Grep (root dir) | **n** |
| `<leader>sG` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Grep (cwd) | **n** |
| `<leader>sm` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Jump to Mark | **n** |
| `<leader>,` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Switch Buffer | **n** |
| `<leader>:` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Command History | **n** |
| `<leader>ss` | [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim.git) Goto Symbol | **n** |
| `]t` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Next todo comment | **n** |
| `[t` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Previous todo comment | **n** |
| `<leader>xt` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Todo Trouble | **n** |
| `<leader>xtt` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Todo Trouble | **n** |
| `<leader>xT` | [todo-comments.nvim](https://github.com/folke/todo-comments.nvim.git) Todo Telescope | **n** |
| `<leader>xx` | [trouble.nvim](https://github.com/folke/trouble.nvim.git) Document Diagnostics (Trouble) | **n** |
| `<leader>xX` | [trouble.nvim](https://github.com/folke/trouble.nvim.git) Workspace Diagnostics (Trouble) | **n** |
| `]]` | [vim-illuminate](https://github.com/RRethy/vim-illuminate.git) Next Reference | **n** |
| `[[` | [vim-illuminate](https://github.com/RRethy/vim-illuminate.git) Prev Reference | **n** |
2023-01-08 21:08:28 +01:00
2023-01-09 08:37:42 +01:00
</details>
2023-01-08 21:08:28 +01:00
<!-- keymaps:end -->
2023-01-01 09:56:44 +01:00
## 📦 Plugins
2022-12-30 23:59:24 +01:00
2023-01-08 21:08:28 +01:00
<!-- plugins:start -->
2023-01-09 10:52:18 +01:00
<details><summary>Core</summary>
2023-01-09 09:54:02 +01:00
2022-12-30 23:59:24 +01:00
- [alpha-nvim](https://github.com/goolord/alpha-nvim)
- [catppuccin](https://github.com/catppuccin/nvim)
- [cmp-buffer](https://github.com/hrsh7th/cmp-buffer)
- [cmp-nvim-lsp](https://github.com/hrsh7th/cmp-nvim-lsp)
- [cmp-path](https://github.com/hrsh7th/cmp-path)
- [cmp_luasnip](https://github.com/saadparwaiz1/cmp_luasnip)
- [dressing.nvim](https://github.com/stevearc/dressing.nvim)
2023-01-01 09:56:44 +01:00
- [flit.nvim](https://github.com/ggandor/flit.nvim)
2022-12-30 23:59:24 +01:00
- [friendly-snippets](https://github.com/rafamadriz/friendly-snippets)
- [gitsigns.nvim](https://github.com/lewis6991/gitsigns.nvim)
- [indent-blankline.nvim](https://github.com/lukas-reineke/indent-blankline.nvim)
- [lazy.nvim](https://github.com/folke/lazy.nvim)
2023-01-01 09:56:44 +01:00
- [leap.nvim](https://github.com/ggandor/leap.nvim)
2022-12-30 23:59:24 +01:00
- [lualine.nvim](https://github.com/nvim-lualine/lualine.nvim)
2022-12-31 00:00:30 +01:00
- [LuaSnip](https://github.com/L3MON4D3/LuaSnip)
2022-12-30 23:59:24 +01:00
- [mason-lspconfig.nvim](https://github.com/williamboman/mason-lspconfig.nvim)
- [mason.nvim](https://github.com/williamboman/mason.nvim)
- [mini.ai](https://github.com/echasnovski/mini.ai)
2023-01-01 09:56:44 +01:00
- [mini.bufremove](https://github.com/echasnovski/mini.bufremove)
2022-12-30 23:59:24 +01:00
- [mini.comment](https://github.com/echasnovski/mini.comment)
- [mini.indentscope](https://github.com/echasnovski/mini.indentscope)
2022-12-30 23:59:24 +01:00
- [mini.pairs](https://github.com/echasnovski/mini.pairs)
- [mini.surround](https://github.com/echasnovski/mini.surround)
2022-12-30 23:59:24 +01:00
- [neo-tree.nvim](https://github.com/nvim-neo-tree/neo-tree.nvim)
- [neoconf.nvim](https://github.com/folke/neoconf.nvim)
- [neodev.nvim](https://github.com/folke/neodev.nvim)
2023-01-01 09:56:44 +01:00
- [noice.nvim](https://github.com/folke/noice.nvim)
2022-12-30 23:59:24 +01:00
- [nui.nvim](https://github.com/MunifTanjim/nui.nvim)
- [null-ls.nvim](https://github.com/jose-elias-alvarez/null-ls.nvim)
- [nvim-bufferline.lua](https://github.com/akinsho/nvim-bufferline.lua)
- [nvim-cmp](https://github.com/hrsh7th/nvim-cmp)
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
2023-01-07 11:33:06 +01:00
- [nvim-navic](https://github.com/SmiteshP/nvim-navic)
2022-12-30 23:59:24 +01:00
- [nvim-notify](https://github.com/rcarriga/nvim-notify)
- [nvim-spectre](https://github.com/windwp/nvim-spectre)
2022-12-30 23:59:24 +01:00
- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
- [nvim-treesitter-textobjects](https://github.com/nvim-treesitter/nvim-treesitter-textobjects)
2022-12-30 23:59:24 +01:00
- [nvim-ts-context-commentstring](https://github.com/JoosepAlviste/nvim-ts-context-commentstring)
- [nvim-web-devicons](https://github.com/nvim-tree/nvim-web-devicons)
- [persistence.nvim](https://github.com/folke/persistence.nvim)
2022-12-30 23:59:24 +01:00
- [plenary.nvim](https://github.com/nvim-lua/plenary.nvim)
- [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim)
- [todo-comments.nvim](https://github.com/folke/todo-comments.nvim)
2022-12-30 23:59:24 +01:00
- [tokyonight.nvim](https://github.com/folke/tokyonight.nvim)
- [trouble.nvim](https://github.com/folke/trouble.nvim)
2023-01-01 09:56:44 +01:00
- [vim-illuminate](https://github.com/RRethy/vim-illuminate)
- [vim-startuptime](https://github.com/dstein64/vim-startuptime)
2022-12-30 23:59:24 +01:00
- [which-key.nvim](https://github.com/folke/which-key.nvim)
2023-01-09 09:54:02 +01:00
</details>
<details><summary>Extras: <code>lang.json</code></summary>
To use this, add it to your **lazy.nvim** imports:
```lua
require("lazy").setup({
spec = {
{ "folke/LazyVim", import = "lazyvim.plugins" },
{ import = "lazyvim.plugins.extras.lang.json" },
{ import = "plugins" },
},
})
```
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
- [schemastore.nvim](https://github.com/b0o/schemastore.nvim)
</details>
<details><summary>Extras: <code>lang.typescript</code></summary>
To use this, add it to your **lazy.nvim** imports:
```lua
require("lazy").setup({
spec = {
{ "folke/LazyVim", import = "lazyvim.plugins" },
{ import = "lazyvim.plugins.extras.lang.typescript" },
{ import = "plugins" },
},
})
```
- [nvim-lspconfig](https://github.com/neovim/nvim-lspconfig)
- [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter)
- [typescript.nvim](https://github.com/jose-elias-alvarez/typescript.nvim)
</details>
<details><summary>Extras: <code>ui.mini-starter</code></summary>
To use this, add it to your **lazy.nvim** imports:
```lua
require("lazy").setup({
spec = {
{ "folke/LazyVim", import = "lazyvim.plugins" },
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
{ import = "plugins" },
},
})
```
- [mini.starter](https://github.com/echasnovski/mini.starter)
</details>
2022-12-30 23:59:24 +01:00
<!-- plugins:end -->