refactor(nvim): use packer for plugins

This commit is contained in:
Oliver Davies 2021-10-30 22:02:12 +01:00
parent 626bcd4ce4
commit ad7a62bfeb
4 changed files with 284 additions and 60 deletions

View file

@ -1,9 +1,3 @@
function! s:LoadPlugins()
call plug#begin('~/.local/share/nvim/plugins')
source ~/.config/nvim/plugins.vim
call plug#end()
endfunction
function! s:SourceConfigFilesIn(directory) function! s:SourceConfigFilesIn(directory)
let directory_splat = '~/.config/nvim/' . a:directory . '/*' let directory_splat = '~/.config/nvim/' . a:directory . '/*'
for config_file in split(glob(directory_splat), '\n') for config_file in split(glob(directory_splat), '\n')
@ -13,8 +7,6 @@ function! s:SourceConfigFilesIn(directory)
endfor endfor
endfunction endfunction
call s:LoadPlugins()
call s:SourceConfigFilesIn('plugins')
lua require("opdavies") lua require("opdavies")
call s:SourceConfigFilesIn('plugins')

View file

@ -56,6 +56,60 @@ vim.api.nvim_set_keymap('v', '<right>', '<nop>', options)
vim.api.nvim_set_keymap('v', '<up>', '<nop>', options) vim.api.nvim_set_keymap('v', '<up>', '<nop>', options)
vim.api.nvim_set_keymap('n', '<Leader>k', ':nohlsearch', options) vim.api.nvim_set_keymap('n', '<Leader>k', ':nohlsearch', options)
require('packer').startup(function()
-- Utilities
use 'cakebaker/scss-syntax.vim'
use 'christoomey/vim-sort-motion'
use 'christoomey/vim-tmux-navigator'
use 'editorconfig/editorconfig-vim'
use 'icatalina/vim-case-change'
use 'lewis6991/gitsigns.nvim'
use 'lukas-reineke/indent-blankline.nvim'
use 'machakann/vim-highlightedyank'
use 'mattn/emmet-vim'
use 'miyakogi/seiya.vim'
use 'norcalli/nvim-colorizer.lua'
use 'nvim-lua/plenary.nvim'
use 'nvim-lua/popup.nvim'
use 'preservim/nerdcommenter'
use 'sheerun/vim-polyglot'
use 'tpope/vim-surround'
use 'vim-test/vim-test'
use 'voldikss/vim-floaterm'
use { 'mg979/vim-visual-multi', branch = 'master' }
-- Themes
use 'arcticicestudio/nord-vim'
use 'nanotech/jellybeans.vim'
use 'tjdevries/colorbuddy.vim'
use 'tjdevries/gruvbuddy.nvim'
-- Navigation
use 'ThePrimeagen/harpoon'
-- Treesitter
use 'JoosepAlviste/nvim-ts-context-commentstring'
use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' }
-- Completion
use 'L3MON4D3/LuaSnip'
use 'hrsh7th/cmp-buffer'
use 'hrsh7th/cmp-nvim-lsp'
use 'hrsh7th/cmp-path'
use 'hrsh7th/nvim-cmp'
use 'onsails/lspkind-nvim'
use 'saadparwaiz1/cmp_luasnip'
use { 'tzachar/cmp-tabnine', run = './install.sh' }
-- LSP
use 'neovim/nvim-lspconfig'
-- Telescope
use 'nvim-telescope/telescope.nvim'
use { 'nvim-telescope/telescope-fzf-native.nvim', run = 'make' }
end)
require "opdavies.plugins.colours" require "opdavies.plugins.colours"
require "opdavies.plugins.completion" require "opdavies.plugins.completion"
require "opdavies.plugins.floaterm" require "opdavies.plugins.floaterm"

View file

@ -0,0 +1,229 @@
-- Automatically generated packer.nvim plugin loader code
if vim.api.nvim_call_function('has', {'nvim-0.5'}) ~= 1 then
vim.api.nvim_command('echohl WarningMsg | echom "Invalid Neovim version for packer.nvim! | echohl None"')
return
end
vim.api.nvim_command('packadd packer.nvim')
local no_errors, error_msg = pcall(function()
local time
local profile_info
local should_profile = false
if should_profile then
local hrtime = vim.loop.hrtime
profile_info = {}
time = function(chunk, start)
if start then
profile_info[chunk] = hrtime()
else
profile_info[chunk] = (hrtime() - profile_info[chunk]) / 1e6
end
end
else
time = function(chunk, start) end
end
local function save_profiles(threshold)
local sorted_times = {}
for chunk_name, time_taken in pairs(profile_info) do
sorted_times[#sorted_times + 1] = {chunk_name, time_taken}
end
table.sort(sorted_times, function(a, b) return a[2] > b[2] end)
local results = {}
for i, elem in ipairs(sorted_times) do
if not threshold or threshold and elem[2] > threshold then
results[i] = elem[1] .. ' took ' .. elem[2] .. 'ms'
end
end
_G._packer = _G._packer or {}
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/opdavies/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/opdavies/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/opdavies/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/opdavies/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/opdavies/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/lua/5.1/?.so"
if not string.find(package.path, package_path_str, 1, true) then
package.path = package.path .. ';' .. package_path_str
end
if not string.find(package.cpath, install_cpath_pattern, 1, true) then
package.cpath = package.cpath .. ';' .. install_cpath_pattern
end
time([[Luarocks path setup]], false)
time([[try_loadstring definition]], true)
local function try_loadstring(s, component, name)
local success, result = pcall(loadstring(s))
if not success then
vim.schedule(function()
vim.api.nvim_notify('packer.nvim: Error running ' .. component .. ' for ' .. name .. ': ' .. result, vim.log.levels.ERROR, {})
end)
end
return result
end
time([[try_loadstring definition]], false)
time([[Defining packer_plugins]], true)
_G.packer_plugins = {
LuaSnip = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/LuaSnip"
},
["cmp-buffer"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/cmp-buffer"
},
["cmp-nvim-lsp"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp"
},
["cmp-path"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/cmp-path"
},
["cmp-tabnine"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/cmp-tabnine"
},
cmp_luasnip = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/cmp_luasnip"
},
["colorbuddy.vim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/colorbuddy.vim"
},
["editorconfig-vim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/editorconfig-vim"
},
["emmet-vim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/emmet-vim"
},
["gitsigns.nvim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/gitsigns.nvim"
},
["gruvbuddy.nvim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/gruvbuddy.nvim"
},
harpoon = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/harpoon"
},
["indent-blankline.nvim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/indent-blankline.nvim"
},
["jellybeans.vim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/jellybeans.vim"
},
["lspkind-nvim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/lspkind-nvim"
},
nerdcommenter = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/nerdcommenter"
},
["nord-vim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/nord-vim"
},
["nvim-cmp"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/nvim-cmp"
},
["nvim-colorizer.lua"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/nvim-lspconfig"
},
["nvim-treesitter"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/nvim-treesitter"
},
["nvim-ts-context-commentstring"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/nvim-ts-context-commentstring"
},
["plenary.nvim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/plenary.nvim"
},
["popup.nvim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/popup.nvim"
},
["scss-syntax.vim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/scss-syntax.vim"
},
["seiya.vim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/seiya.vim"
},
["telescope-fzf-native.nvim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/telescope-fzf-native.nvim"
},
["telescope.nvim"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/telescope.nvim"
},
["vim-case-change"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-case-change"
},
["vim-floaterm"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-floaterm"
},
["vim-highlightedyank"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-highlightedyank"
},
["vim-polyglot"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-polyglot"
},
["vim-sort-motion"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-sort-motion"
},
["vim-surround"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-surround"
},
["vim-test"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-test"
},
["vim-tmux-navigator"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-tmux-navigator"
},
["vim-visual-multi"] = {
loaded = true,
path = "/home/opdavies/.local/share/nvim/site/pack/packer/start/vim-visual-multi"
}
}
time([[Defining packer_plugins]], false)
if should_profile then save_profiles() end
end)
if not no_errors then
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end

View file

@ -1,51 +0,0 @@
" Utilities
Plug 'cakebaker/scss-syntax.vim'
Plug 'christoomey/vim-sort-motion'
Plug 'christoomey/vim-tmux-navigator'
Plug 'editorconfig/editorconfig-vim'
Plug 'icatalina/vim-case-change'
Plug 'lewis6991/gitsigns.nvim'
Plug 'lukas-reineke/indent-blankline.nvim'
Plug 'machakann/vim-highlightedyank'
Plug 'mattn/emmet-vim'
Plug 'mg979/vim-visual-multi', {'branch': 'master'}
Plug 'miyakogi/seiya.vim'
Plug 'norcalli/nvim-colorizer.lua'
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-lua/popup.nvim'
Plug 'preservim/nerdcommenter'
Plug 'sheerun/vim-polyglot'
Plug 'tpope/vim-surround'
Plug 'vim-test/vim-test'
Plug 'voldikss/vim-floaterm'
" Themes
Plug 'arcticicestudio/nord-vim'
Plug 'dracula/vim', { 'as': 'dracula' }
Plug 'nanotech/jellybeans.vim'
Plug 'tjdevries/colorbuddy.vim'
Plug 'tjdevries/gruvbuddy.nvim'
" Navigation
Plug 'ThePrimeagen/harpoon'
" Treesitter
Plug 'JoosepAlviste/nvim-ts-context-commentstring'
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
" Completion
Plug 'L3MON4D3/LuaSnip'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-path'
Plug 'hrsh7th/nvim-cmp'
Plug 'onsails/lspkind-nvim'
Plug 'saadparwaiz1/cmp_luasnip'
Plug 'tzachar/cmp-tabnine', { 'do': './install.sh' }
" LSP
Plug 'neovim/nvim-lspconfig'
" Telescope
Plug 'nvim-telescope/telescope-fzf-native.nvim', {'do': 'make'}
Plug 'nvim-telescope/telescope.nvim'