From 4b32acf12d9663ee6c6274b74d35a5191f3692e4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 9 Jan 2023 09:53:51 +0000 Subject: [PATCH] chore(build): auto-generate vimdoc --- doc/LazyVim.txt | 233 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 224 insertions(+), 9 deletions(-) diff --git a/doc/LazyVim.txt b/doc/LazyVim.txt index d5ee5b9d..33f1281f 100644 --- a/doc/LazyVim.txt +++ b/doc/LazyVim.txt @@ -5,7 +5,8 @@ Table of Contents *LazyVim-table-of-contents* 1. LazyVim |LazyVim-lazyvim| - Getting Started |LazyVim-getting-started| - - Todo |LazyVim-todo| + - File Structure |LazyVim-file-structure| + - Configuring **LazyVim** |LazyVim-configuring-**lazyvim**| - Keymaps |LazyVim-keymaps| - Plugins |LazyVim-plugins| @@ -41,6 +42,9 @@ You can find a starter template for **LazyVim** here { "LazyVim/LazyVim", import = "lazyvim.plugins" }, -- import/override with your plugins { import = "plugins" }, + -- import any extras modules here + -- { import = "lazyvim.plugins.extras.lang.typescript" }, + -- { import = "lazyvim.plugins.extras.lang.json" }, }, defaults = { lazy = true, -- every plugin is lazy-loaded by default @@ -50,15 +54,226 @@ You can find a starter template for **LazyVim** here < -TODO *LazyVim-todo* +FILE STRUCTURE *LazyVim-file-structure* +The files under config will be automatically loaded at the appropriate time, so +you don’t need to require those files manually. -- documentation -- treesitter auto-install seems broken. Switch to `ensure_installed` instead? -- list all plugins in readme -- test all-the-things -- auto-generate keymaps for README.md -- auto-generate plugins for README.md +You can add your custom plugin specs under `lua/plugins/`. All files there will +be automatically loaded by lazy.nvim + +
+~/.config/nvim
+ lua
+    config
+       autocmds.lua
+       keymaps.lua
+       lazy.lua
+       options.lua
+    plugins
+        spec1.lua
+        
+        spec2.lua
+ init.toml
+
+ +CONFIGURING **LAZYVIM** *LazyVim-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 +. + +Example spec: lua/plugins/example.lua + +>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 = { { "cs", "SymbolsOutline", 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 + { + "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", "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 = { + -- 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 + 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", + }, + }, + }, + } +< KEYMAPS *LazyVim-keymaps* @@ -208,7 +423,7 @@ Plugins PLUGINS *LazyVim-plugins* -Core Plugins +Core - alpha-nvim