Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 44 additions & 76 deletions init.lua
Original file line number Diff line number Diff line change
@@ -1,95 +1,69 @@
-- Install packer
local install_path = vim.fn.stdpath 'data' .. '/site/pack/packer/start/packer.nvim'
local is_bootstrap = false
if vim.fn.empty(vim.fn.glob(install_path)) > 0 then
is_bootstrap = true
vim.fn.system { 'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path }
vim.cmd [[packadd packer.nvim]]
end
-- Set <space> as the leader key
-- NOTE: Must happen before plugins are required (otherwise wrong leader will be used)
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '

require('packer').startup(function(use)
-- Package manager
use 'wbthomason/packer.nvim'
-- Install Lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
'git', 'clone',
'--filter=blob:none', '--single-branch',
'https://github.com/folke/lazy.nvim.git',
lazypath,
})
end
vim.opt.runtimepath:prepend(lazypath)

use { -- LSP Configuration & Plugins
require('lazy').setup({
{ -- LSP Configuration & Plugins
'neovim/nvim-lspconfig',
requires = {
event = "BufReadPre",
dependencies = {
-- Automatically install LSPs to stdpath for neovim
'williamboman/mason.nvim',
{ 'williamboman/mason.nvim', config = true },
'williamboman/mason-lspconfig.nvim',

-- Useful status updates for LSP
'j-hui/fidget.nvim',
{ 'j-hui/fidget.nvim', config = true },

-- Additional lua configuration, makes nvim stuff amazing
'folke/neodev.nvim',
{ 'folke/neodev.nvim', config = true }
},
}
},

use { -- Autocompletion
{ -- Autocompletion
'hrsh7th/nvim-cmp',
requires = { 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip' },
}
event = 'InsertEnter',
dependencies = { 'hrsh7th/cmp-nvim-lsp', 'L3MON4D3/LuaSnip', 'saadparwaiz1/cmp_luasnip' },
},

use { -- Highlight, edit, and navigate code
{ -- Highlight, edit, and navigate code
'nvim-treesitter/nvim-treesitter',
run = function()
config = function()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

build?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep

pcall(require('nvim-treesitter.install').update { with_sync = true })
end,
}
},

use { -- Additional text objects via treesitter
'nvim-treesitter/nvim-treesitter-textobjects',
after = 'nvim-treesitter',
}
-- Additional text objects via treesitter
'nvim-treesitter/nvim-treesitter-textobjects',

-- Git related plugins
use 'tpope/vim-fugitive'
use 'tpope/vim-rhubarb'
use 'lewis6991/gitsigns.nvim'
{ 'tpope/vim-fugitive', cmd = { "G", "Git" } },
'tpope/vim-rhubarb',
{ 'lewis6991/gitsigns.nvim', event = "BufReadPre" } ,

use 'navarasu/onedark.nvim' -- Theme inspired by Atom
use 'nvim-lualine/lualine.nvim' -- Fancier statusline
use 'lukas-reineke/indent-blankline.nvim' -- Add indentation guides even on blank lines
use 'numToStr/Comment.nvim' -- "gc" to comment visual regions/lines
use 'tpope/vim-sleuth' -- Detect tabstop and shiftwidth automatically
'navarasu/onedark.nvim', -- Theme inspired by Atom
{ 'nvim-lualine/lualine.nvim', event = "VeryLazy" }, -- Fancier statusline
'lukas-reineke/indent-blankline.nvim', -- Add indentation guides even on blank lines
{ 'numToStr/Comment.nvim', config = true },
'tpope/vim-sleuth', -- Detect tabstop and shiftwidth automatically

-- Fuzzy Finder (files, lsp, etc)
use { 'nvim-telescope/telescope.nvim', branch = '0.1.x', requires = { 'nvim-lua/plenary.nvim' } }

-- 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 ~/.config/nvim/lua/custom/plugins.lua
local has_plugins, plugins = pcall(require, 'custom.plugins')
if has_plugins then
plugins(use)
end

if is_bootstrap then
require('packer').sync()
end
end)

-- When we are bootstrapping a configuration, it doesn't
-- make sense to execute the rest of the init.lua.
--
-- You'll need to restart nvim, and then it will work.
if is_bootstrap then
print '=================================='
print ' Plugins are being installed'
print ' Wait until Packer completes,'
print ' then restart nvim'
print '=================================='
return
end

-- Automatically source and re-compile packer whenever you save this init.lua
local packer_group = vim.api.nvim_create_augroup('Packer', { clear = true })
vim.api.nvim_create_autocmd('BufWritePost', {
command = 'source <afile> | silent! LspStop | silent! LspStart | PackerCompile',
group = packer_group,
pattern = vim.fn.expand '$MYVIMRC',
{ 'nvim-telescope/telescope.nvim', branch = '0.1.x', cmd = "Telescope",
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 = vim.fn.executable 'make' == 1 } } },
})

-- [[ Setting options ]]
Expand Down Expand Up @@ -126,12 +100,6 @@ vim.cmd [[colorscheme onedark]]
vim.o.completeopt = 'menuone,noselect'

-- [[ Basic Keymaps ]]
-- Set <space> as the leader key
-- See `:help mapleader`
-- NOTE: Must happen before plugins are required (otherwise wrong leader will be used)
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '

-- Keymaps for better default experience
-- See `:help vim.keymap.set()`
vim.keymap.set({ 'n', 'v' }, '<Space>', '<Nop>', { silent = true })
Expand Down