]> git.localhorst.tv Git - nvim-config.git/commitdiff
refactor: better examples
authorFolke Lemaitre <folke.lemaitre@gmail.com>
Mon, 9 Jan 2023 09:53:23 +0000 (10:53 +0100)
committerFolke Lemaitre <folke.lemaitre@gmail.com>
Mon, 9 Jan 2023 09:53:23 +0000 (10:53 +0100)
lua/config/lazy.lua
lua/plugins/editor.lua [deleted file]
lua/plugins/example.lua [new file with mode: 0644]
lua/plugins/lsp.lua [deleted file]
lua/plugins/treesitter.lua [deleted file]
lua/plugins/ui.lua [deleted file]

index 9208df7f3a953ef33620b5234ea0b40e6d577a3f..8a3b188ebc495a6d47884445954e8ee24c59750b 100644 (file)
@@ -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 (file)
index c9ff400..0000000
+++ /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 = { { "<leader>cs", "<cmd>SymbolsOutline<cr>", desc = "Symbols Outline" } },
-  --   config = true,
-  -- },
-
-  -- add zen-mode
-  -- {
-  --   "folke/zen-mode.nvim",
-  --   cmd = "ZenMode",
-  --   config = true,
-  --   keys = { { "<leader>z", "<cmd>ZenMode<cr>", desc = "Zen Mode" } },
-  -- },
-}
diff --git a/lua/plugins/example.lua b/lua/plugins/example.lua
new file mode 100644 (file)
index 0000000..1e18038
--- /dev/null
@@ -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 = { { "<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",
+      },
+    },
+  },
+}
diff --git a/lua/plugins/lsp.lua b/lua/plugins/lsp.lua
deleted file mode 100644 (file)
index 342d408..0000000
+++ /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<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",
-    --   },
-    -- },
-  },
-}
diff --git a/lua/plugins/treesitter.lua b/lua/plugins/treesitter.lua
deleted file mode 100644 (file)
index 38279ca..0000000
+++ /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 (file)
index f0caa47..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-return {
-  -- use mini.starter instead of alpha
-  -- { import = "lazyvim.plugins.extras.ui.mini-starter" },
-}