From 7e65b6a1fe8a4f60f4cd4ba52864ab4c116235e8 Mon Sep 17 00:00:00 2001 From: Elijah Manor Date: Sun, 20 Nov 2022 18:45:31 -0600 Subject: [PATCH] Provide help in README and simplify module --- README.md | 32 ++++++++++++++++++++++++++++++++ init.lua | 4 ++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c523139a..ca91aaf7 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,43 @@ Kickstart targets *only* the latest stable neovim release (0.7) and the nightly. This repo is meant to be used as a starting point for a user's own configuration; remove the things you don't use and add what you miss. This configuration serves as the reference configuration for the [lspconfig wiki](https://github.com/neovim/nvim-lspconfig/wiki). ### Installation + * Backup your previous configuration * Copy and paste the kickstart.nvim `init.lua` into `$HOME/.config/nvim/init.lua` * start neovim (`nvim`) and run `:PackerInstall`, ignore any error message about missing plugins, `:PackerInstall` will fix that shortly. * restart neovim +### Configuration + +You could directly modify the `init.lua` file with your personal customizations. This option is the most straightforward, but if you update your config from this repo, you may need to reapply your changes. + +An alternative approach is to create a separate `custom.plugins` module to register your own plugins. In addition, you can handle further customizations in a `after/plugin/defaults.lua` file. See the following examples for more information. Leveraging these files should make upgrading to a newer version of this repo easier. + +#### Example `plugins.lua` + +The following is an example of a `plugins.lua` file (located at `$HOME/.config/nvim/lua/custom/plugins.lua`) where you can register you own plugins. + +```lua +return function(use) + use({ + "folke/which-key.nvim", + config = function() + require("which-key").setup({}) + end + }) +end +``` + +#### Example `defaults.lua` + +The following is an example `defaults.lua` file (localed at `$HOME/.config/nvim/after/plugin/defaults.lua`) where you can define your own options, keymaps, autogroups, and more. + +```lua +vim.opt.relativenumber = true + +vim.keymap.set('n', 'sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' }) +``` + ### Contribution Pull-requests are welcome. The goal of this repo is not to create a neovim configuration framework, but to offer a starting template that shows, by example, available features in neovim. Some things that will not be included: diff --git a/init.lua b/init.lua index fca1624f..3ac19c2c 100644 --- a/init.lua +++ b/init.lua @@ -32,9 +32,9 @@ require('packer').startup(function(use) -- Fuzzy Finder Algorithm which requires local dependencies to be built. Only load if `make` is available use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make', cond = vim.fn.executable "make" == 1 } - -- Add custom plugins to packer from a /nvim/lua/custom/plugins.lua module + -- Add custom plugins to packer from /nvim/lua/custom/plugins.lua local has_plugins, plugins = pcall(require, "custom.plugins") - if has_plugins then plugins.setup(use) end + if has_plugins then plugins(use) end if is_bootstrap then require('packer').sync()