getting to the closing part of this repo

This commit is contained in:
TJ DeVries 2023-02-16 17:31:31 -05:00
parent e5c03b4206
commit bdbe2f3ae2
6 changed files with 152 additions and 125 deletions

218
init.lua
View file

@ -1,5 +1,23 @@
-- TODO BEFORE MERGE:
-- - [ ] Document an example of adding your own custom plugins (for example, autopairs)
--[[
=====================================================================
==================== READ THIS BEFORE CONTINUING ====================
=====================================================================
I have left several `:help X` comments throughout the init.lua
You should run that command and read the help for the section for more information.
In addition, I have some `NOTE:` items throughout the file.
These are for you, the reader to help understand what is happening. Feel free to delete
them once you know what you're doing, but they should serve as a guide for when you
are first encountering a few different constructs in your nvim config.
I hope you enjoy your Neovim journey,
- TJ
P.S. You can delete this when you're done too. It's your config now :)
--]]
-- Set <space> as the leader key
-- See `:help mapleader`
@ -23,8 +41,23 @@ if not vim.loop.fs_stat(lazypath) then
end
vim.opt.rtp:prepend(lazypath)
-- NOTE: Here is where you install your plugins.
-- You can configure plugins using the `config` key.
--
-- You can also configure plugins after the setup call,
-- as they will be available in your neovim runtime.
require('lazy').setup({
---@diagnostic disable-next-line: assign-type-mismatch
-- NOTE: First, some plugins that don't require any configuration
-- Git related plugins
'tpope/vim-fugitive',
'tpope/vim-rhubarb',
-- Detect tabstop and shiftwidth automatically
'tpope/vim-sleuth',
-- NOTE: This is where your plugins related to LSP can be installed.
-- The configuration is done below. Search for lspconfig to find it below.
{ -- LSP Configuration & Plugins
'neovim/nvim-lspconfig',
dependencies = {
@ -32,18 +65,104 @@ require('lazy').setup({
'williamboman/mason.nvim',
'williamboman/mason-lspconfig.nvim',
-- Useful status updates for LSP
'j-hui/fidget.nvim',
{ -- Useful status updates for LSP
'j-hui/fidget.nvim',
config = function()
require('fidget').setup()
end,
},
-- Additional lua configuration, makes nvim stuff amazing
-- Additional lua configuration, makes nvim stuff amazing!
'folke/neodev.nvim',
},
},
{ -- Autocompletion
'hrsh7th/nvim-cmp',
dependencies = { 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip' },
},
{ -- Useful plugin to show you pending keybinds.
'folke/which-key.nvim',
config = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
require('which-key').setup {}
end,
},
{ -- Adds git releated signs to the gutter, as well as utilities for managing changes
'lewis6991/gitsigns.nvim',
config = function()
-- See `:help gitsigns.txt`
require('gitsigns').setup {
signs = {
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
}
end,
},
{ -- Theme inspired by Atom
'navarasu/onedark.nvim',
config = function()
vim.cmd.colorscheme 'onedark'
end,
},
{ -- Fancier statusline
'nvim-lualine/lualine.nvim',
config = function()
-- Set lualine as statusline
-- See `:help lualine.txt`
require('lualine').setup {
options = {
icons_enabled = false,
theme = 'onedark',
component_separators = '|',
section_separators = '',
},
}
end,
},
{ -- Add indentation guides even on blank lines
'lukas-reineke/indent-blankline.nvim',
config = function()
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help indent_blankline.txt`
require('indent_blankline').setup {
char = '',
show_trailing_blankline_indent = false,
}
end,
},
{ -- "gc" to comment visual regions/lines
'numToStr/Comment.nvim',
config = function()
require('Comment').setup()
end,
},
-- Fuzzy Finder (files, lsp, etc)
{ 'nvim-telescope/telescope.nvim', branch = '0.1.x', dependencies = { 'nvim-lua/plenary.nvim' } },
-- Fuzzy Finder Algorithm which requires local dependencies to be built.
-- Only load if `make` is available. Make sure you have the system
-- requirements installed.
{
'nvim-telescope/telescope-fzf-native.nvim',
build = 'make',
cond = function()
return vim.fn.executable 'make' == 1
end,
},
{ -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
dependencies = {
@ -54,45 +173,13 @@ require('lazy').setup({
end,
},
{ -- Useful plugin to show you pending keybinds.
'folke/which-key.nvim',
config = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
require('which-key').setup {}
end,
},
-- Git related plugins
'tpope/vim-fugitive',
'tpope/vim-rhubarb',
'lewis6991/gitsigns.nvim',
'navarasu/onedark.nvim', -- Theme inspired by Atom
'nvim-lualine/lualine.nvim', -- Fancier statusline
'lukas-reineke/indent-blankline.nvim', -- Add indentation guides even on blank lines
'numToStr/Comment.nvim', -- "gc" to comment visual regions/lines
'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically
-- Fuzzy Finder (files, lsp, etc)
{ 'nvim-telescope/telescope.nvim', branch = '0.1.x', dependencies = { 'nvim-lua/plenary.nvim' } },
-- Fuzzy Finder Algorithm which requires local dependencies to be built. Only load if `make` is available
{
'nvim-telescope/telescope-fzf-native.nvim',
build = 'make',
cond = function()
return vim.fn.executable 'make' == 1
end,
},
-- Next Step on Your Neovim Journey: Add/Configure additional "plugins" for kickstart
-- NOTE: Next Step on Your Neovim Journey: Add/Configure additional "plugins" for kickstart
-- require 'kickstart.plugins.autoformat',
-- require 'kickstart.plugins.debug',
-- Add your own custom plugins to `lua/custom/plugins/*.lua`
-- For more information see:
-- https://github.com/folke/lazy.nvim#-structuring-your-plugins
-- NOTE: Add your own custom plugins to `lua/custom/plugins/*.lua`
-- There are examples in the README.md for kickstar.nvim
-- For additional information see: https://github.com/folke/lazy.nvim#-structuring-your-plugins
{ import = 'custom.plugins' },
}, {})
@ -122,13 +209,12 @@ vim.o.smartcase = true
vim.o.updatetime = 250
vim.wo.signcolumn = 'yes'
-- Set colorscheme
vim.o.termguicolors = true
vim.cmd [[colorscheme onedark]]
-- Set completeopt to have a better completion experience
vim.o.completeopt = 'menuone,noselect'
-- NOTE: You should make sure your terminal supports this
vim.o.termguicolors = true
-- [[ Basic Keymaps ]]
-- Keymaps for better default experience
@ -150,39 +236,6 @@ vim.api.nvim_create_autocmd('TextYankPost', {
pattern = '*',
})
-- Set lualine as statusline
-- See `:help lualine.txt`
require('lualine').setup {
options = {
icons_enabled = false,
theme = 'onedark',
component_separators = '|',
section_separators = '',
},
}
-- Enable Comment.nvim
require('Comment').setup()
-- Enable `lukas-reineke/indent-blankline.nvim`
-- See `:help indent_blankline.txt`
require('indent_blankline').setup {
char = '',
show_trailing_blankline_indent = false,
}
-- Gitsigns
-- See `:help gitsigns.txt`
require('gitsigns').setup {
signs = {
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
}
-- [[ Configure Telescope ]]
-- See `:help telescope` and `:help telescope.setup()`
require('telescope').setup {
@ -355,7 +408,7 @@ local servers = {
-- Setup neovim lua configuration
require('neodev').setup()
--
-- nvim-cmp supports additional completion capabilities, so broadcast that to servers
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
@ -380,9 +433,6 @@ mason_lspconfig.setup_handlers {
end,
}
-- Turn on lsp status information
require('fidget').setup()
-- nvim-cmp setup
local cmp = require 'cmp'
local luasnip = require 'luasnip'
@ -398,7 +448,7 @@ cmp.setup {
mapping = cmp.mapping.preset.insert {
['<C-d>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-Space>'] = cmp.mapping.complete {},
['<CR>'] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Replace,
select = true,