From ecf7a83181714e55f3bf8bf374cda3d2072f419d Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Mon, 9 Jan 2023 10:53:23 +0100 Subject: [PATCH] refactor: better examples --- lua/config/lazy.lua | 3 + lua/plugins/editor.lua | 29 ------ lua/plugins/example.lua | 189 +++++++++++++++++++++++++++++++++++++ lua/plugins/lsp.lua | 51 ---------- lua/plugins/treesitter.lua | 26 ----- lua/plugins/ui.lua | 4 - 6 files changed, 192 insertions(+), 110 deletions(-) delete mode 100644 lua/plugins/editor.lua create mode 100644 lua/plugins/example.lua delete mode 100644 lua/plugins/lsp.lua delete mode 100644 lua/plugins/treesitter.lua delete mode 100644 lua/plugins/ui.lua diff --git a/lua/config/lazy.lua b/lua/config/lazy.lua index 9208df7..8a3b188 100644 --- a/lua/config/lazy.lua +++ b/lua/config/lazy.lua @@ -12,6 +12,9 @@ require("lazy").setup({ { "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 diff --git a/lua/plugins/editor.lua b/lua/plugins/editor.lua deleted file mode 100644 index c9ff400..0000000 --- a/lua/plugins/editor.lua +++ /dev/null @@ -1,29 +0,0 @@ --- 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 = { use_diagnostic_signs = true }, - -- }, - - -- add symbols-outline - -- { - -- "simrat39/symbols-outline.nvim", - -- cmd = "SymbolsOutline", - -- keys = { { "cs", "SymbolsOutline", desc = "Symbols Outline" } }, - -- config = true, - -- }, - - -- add zen-mode - -- { - -- "folke/zen-mode.nvim", - -- cmd = "ZenMode", - -- config = true, - -- keys = { { "z", "ZenMode", desc = "Zen Mode" } }, - -- }, -} diff --git a/lua/plugins/example.lua b/lua/plugins/example.lua new file mode 100644 index 0000000..1e18038 --- /dev/null +++ b/lua/plugins/example.lua @@ -0,0 +1,189 @@ +-- 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 = { { "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", + }, + }, + }, +} diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua deleted file mode 100644 index 342d408..0000000 --- a/lua/plugins/lsp.lua +++ /dev/null @@ -1,51 +0,0 @@ -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 - -- 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", - -- }, - -- }, - }, -} diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua deleted file mode 100644 index 38279ca..0000000 --- a/lua/plugins/treesitter.lua +++ /dev/null @@ -1,26 +0,0 @@ -return { - - -- treesitter - { - "nvim-treesitter/nvim-treesitter", - -- opts = { - -- ensure_installed = { - -- "bash", - -- "help", - -- "html", - -- "javascript", - -- "json", - -- "lua", - -- "markdown", - -- "markdown_inline", - -- "python", - -- "query", - -- "regex", - -- "tsx", - -- "typescript", - -- "vim", - -- "yaml", - -- }, - -- }, - }, -} diff --git a/lua/plugins/ui.lua b/lua/plugins/ui.lua deleted file mode 100644 index f0caa47..0000000 --- a/lua/plugins/ui.lua +++ /dev/null @@ -1,4 +0,0 @@ -return { - -- use mini.starter instead of alpha - -- { import = "lazyvim.plugins.extras.ui.mini-starter" }, -}