nvim: Switch to lua for all the things

This commit is contained in:
2023-10-21 12:54:32 +02:00
parent 7c6fd745cd
commit 059ac7737b
10 changed files with 731 additions and 296 deletions

View File

@ -1,76 +0,0 @@
{
"suggest.noselect": true,
"languageserver": {
"rust": {
"command": "rust-analyzer",
"filetypes": ["rust"],
"rootPatterns": ["Cargo.toml"]
},
"python": {
"command": "pylsp",
"args": [
"-vv",
"--log-file",
"/tmp/lsp_python.log"
],
"trace.server": "verbose",
"filetypes": [
"python"
],
"settings": {
"pyls": {
"enable": true,
"trace": {
"server": "verbose"
},
"commandPath": "",
"configurationSources": [
"pycodestyle"
],
"plugins": {
"jedi_completion": {
"enabled": true
},
"jedi_hover": {
"enabled": true
},
"jedi_references": {
"enabled": true
},
"jedi_signature_help": {
"enabled": true
},
"jedi_symbols": {
"enabled": true,
"all_scopes": true
},
"mccabe": {
"enabled": true,
"threshold": 15
},
"preload": {
"enabled": true
},
"pycodestyle": {
"enabled": true
},
"pydocstyle": {
"enabled": false,
"match": "(?!test_).*\\.py",
"matchDir": "[^\\.].*"
},
"pyflakes": {
"enabled": true
},
"rope_completion": {
"enabled": true
},
"yapf": {
"enabled": true
}
}
}
}
}
}
}

141
tree/.config/nvim/init.lua Normal file
View File

@ -0,0 +1,141 @@
vim.g.mapleader = " "
vim.g.localleader = "\\"
require('plugins')
require('vars')
require('opts')
require('keys')
require('theme')
require('statusline')
-- Mason Setup
require("mason").setup({
ui = {
icons = {
package_installed = "",
package_pending = "",
package_uninstalled = "",
},
}
})
require("mason-lspconfig").setup()
local rt = require("rust-tools")
rt.setup({
server = {
on_attach = function(_, bufnr)
-- Hover actions
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
end,
},
})
-- -- LSP Diagnostics Options Setup
-- local sign = function(opts)
-- vim.fn.sign_define(opts.name, {
-- texthl = opts.name,
-- text = opts.text,
-- numhl = ''
-- })
-- end
--
-- sign({name = 'DiagnosticSignError', text = ''})
-- sign({name = 'DiagnosticSignWarn', text = ''})
-- sign({name = 'DiagnosticSignHint', text = ''})
-- sign({name = 'DiagnosticSignInfo', text = ''})
--
-- vim.diagnostic.config({
-- virtual_text = false,
-- signs = true,
-- update_in_insert = true,
-- underline = true,
-- severity_sort = false,
-- float = {
-- border = 'rounded',
-- source = 'always',
-- header = '',
-- prefix = '',
-- },
-- })
--
-- vim.cmd([[
-- set signcolumn=yes
-- autocmd CursorHold * lua vim.diagnostic.open_float(nil, { focusable = false })
-- ]])
-- Format file on save
vim.cmd [[autocmd BufWritePre * lua vim.lsp.buf.format()]]
-- Completion Plugin Setup
local cmp = require'cmp'
cmp.setup({
-- Enable LSP snippets
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
end,
},
mapping = {
['<C-p>'] = cmp.mapping.select_prev_item(),
['<C-n>'] = cmp.mapping.select_next_item(),
-- Add tab support
['<S-Tab>'] = cmp.mapping.select_prev_item(),
['<Tab>'] = cmp.mapping.select_next_item(),
['<C-S-f>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.close(),
['<CR>'] = cmp.mapping.confirm({
behavior = cmp.ConfirmBehavior.Insert,
select = true,
})
},
-- Installed sources:
sources = {
{ name = 'path' }, -- file paths
{ name = 'nvim_lsp', keyword_length = 3 }, -- from language server
{ name = 'nvim_lsp_signature_help'}, -- display function signatures with current parameter emphasized
{ name = 'nvim_lua', keyword_length = 2 }, -- complete neovim's Lua runtime API such vim.lsp.*
{ name = 'buffer', keyword_length = 2 }, -- source current buffer
{ name = 'vsnip', keyword_length = 2 }, -- nvim-cmp source for vim-vsnip
{ name = 'calc'}, -- source for math calculation
},
window = {
completion = cmp.config.window.bordered(),
documentation = cmp.config.window.bordered(),
},
formatting = {
fields = {'menu', 'abbr', 'kind'},
format = function(entry, item)
local menu_icon ={
nvim_lsp = 'λ',
vsnip = '',
buffer = 'Ω',
path = '🖫',
}
item.menu = menu_icon[entry.source.name]
return item
end,
},
})
-- Treesitter Plugin Setup
require('nvim-treesitter.configs').setup {
ensure_installed = { "lua", "rust", "toml" },
auto_install = true,
highlight = {
enable = true,
additional_vim_regex_highlighting=false,
},
ident = { enable = true },
rainbow = {
enable = true,
extended_mode = true,
max_file_lines = nil,
}
}

View File

@ -1,220 +0,0 @@
runtime! archlinux.vim
if empty(glob('~/.local/share/nvim/site/autoload/plug.vim'))
silent !curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
" plugins
call plug#begin('~/.local/share/nvim/plugged')
Plug 'easymotion/vim-easymotion'
Plug 'roxma/vim-hug-neovim-rpc'
Plug 'roxma/nvim-yarp'
Plug 'airblade/vim-rooter'
"Plug 'junegunn/fzf'
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'neutaaaaan/iosvkem'
Plug 'vimwiki/vimwiki'
" fuzzy finder
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim', { 'branch': '0.1.x' }
" themes
Plug 'chriskempson/base16-vim'
" gui stuff
Plug 'itchyny/lightline.vim'
Plug 'machakann/vim-highlightedyank'
Plug 'terryma/vim-smooth-scroll'
" Language support
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'rust-lang/rust.vim'
Plug 'cespare/vim-toml'
Plug 'dag/vim-fish'
Plug 'rhysd/vim-grammarous'
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
call plug#end()
set nocompatible
set backspace=indent,eol,start
set tabstop=4
set shiftwidth=4
set noet
set directory=~/.vim/tmp
" preview substitute (%s/a/b)
set inccommand=nosplit
" use unicode
set encoding=utf-8
" show whitespace
set listchars=nbsp:¬,trail:·,precedes:«,extends:▸,tab:»\
set list
" highlight column 80
"highlight ColorColumn ctermbg=darkgray
highlight ColorColumn ctermbg=16
set colorcolumn=100
" colors and themes
set background = "dark"
if !has('gui_running')
set t_Co=256
endif
if (match($TERM, "-256color") != -1) && (match($TERM, "screen-256color") == -1)
" screen does not (yet) support truecolor
set termguicolors
endif
let base16colorspace=256
{% if light %}
colorscheme base16-gruvbox-light-hard
{% else %}
colorscheme base16-gruvbox-dark-hard
{% end %}
" brighter comments
call Base16hi("Comment", g:base16_gui09, "", g:base16_cterm09, "", "", "")
" Lightline
let g:lightline = {
\ 'active': {
\ 'left': [ [ 'mode', 'paste' ],
\ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ]
\ },
\ 'component_function': {
\ 'filename': 'LightlineFilename',
\ 'cocstatus': 'coc#status'
\ },
\ }
function! LightlineFilename()
return expand('%:t') !=# '' ? @% : '[No Name]'
endfunction
" Use auocmd to force lightline update.
autocmd User CocStatusChange,CocDiagnosticChange call lightline#update()
" vimwiki
let g:vimwiki_list = [{'path': '~/wiki/text/', 'path_html': '~/wiki/html/'}]
" misc
set mouse=a
set history=50
set ruler
set wildmode=longest,full
set wildmenu
set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc,.png,.jpg
set number
set relativenumber
set clipboard+=unnamedplus
" No arrow keys --- force yourself to use the home row
nnoremap <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
syntax enable
filetype plugin indent on
" Handlebars -> HTML
autocmd BufNewFile,BufRead *.hbs set syntax=html
" Config template files
autocmd BufNewFile,BufRead *.vim.tpl set syntax=vim
autocmd BufNewFile,BufRead *.yml.tpl set syntax=yaml
autocmd BufNewFile,BufRead *.toml.tpl set syntax=toml
autocmd BufNewFile,BufRead *.fish.tpl set syntax=fish
" Rust syntax highlighting for rust-ish files
autocmd BufNewFile,BufRead *.ron set syntax=rust
autocmd BufNewFile,BufRead *.lalrpop set syntax=rust
autocmd BufNewFile,BufRead *.pest set syntax=rust
" Word-wrapping for relevant files
autocmd BufNewFile,BufRead *.tex set linebreak
autocmd BufNewFile,BufRead *.wiki set linebreak
" rust-stuff
let g:rustfmt_autosave = 1
let g:rustfmt_emit_files = 1
let g:rustfmt_fail_silently = 0
let g:rust_clip_command = 'xclip -selection clipboard'
" === FISH CONFIGURATION === "
" Use fish for compiling fish-files
autocmd FileType fish compiler fish
" Code block folding
"autocmd FileType fish setlocal foldmethod=expr
" === ================== === "
" === KEY BINDINGS === "
" Map <leader> to space
let mapleader = " "
" Fuzzy file search
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fs <cmd>Telescope grep_string initial_mode=normal<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
" Clear highlights
noremap <leader>h :noh<Enter>
" trigger vim-rooter
noremap <c-r> :Rooter<Enter>
let g:rooter_manual_only = 1
" Toggle between begin
nnoremap <leader><leader> <c-^>
" Managing tabs
nnoremap <leader>n :tabe<Enter>:Telescope find-files<Enter>
nnoremap <c-j> gt
nnoremap <c-k> gT
" undo-redo
nnoremap U :redo<Enter>
" language server shortcuts
nmap <leader>a <Plug>(coc-codeaction-selected)
nmap <leader>r <Plug>(coc-rename)
"nmap <leader>cl <Plug>(coc-codelens-action)
nmap <leader>d :<C-u>CocList diagnostics<Enter>
nmap <leader>c :<C-u>CocList commands<Enter>
nmap <leader>s :<C-u>CocList -I symbols<Enter>
nmap <leader>o :<C-u>CocOutline<Enter>
imap <expr><Enter> coc#pum#visible() ? coc#pum#confirm() : "\<Enter>"
imap <silent><expr> <TAB>
\ coc#pum#visible() ? coc#pum#next(1) :
\ coc#refresh()
imap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
" grammarous
nmap <leader>gc :GrammarousCheck<Enter>
nmap <leader>gq <Plug>(grammarous-close-info-window) <Plug>(grammarous-reset)
nmap <leader>gn <Plug>(grammarous-move-to-next-error) <Plug>(grammarous-open-info-window)
nmap <leader>gN <Plug>(grammarous-move-to-previous-error) <Plug>(grammarous-open-info-window)
" vim-smooth-scroll hotkey overrides
noremap <silent> <c-u> :call smooth_scroll#up(&scroll, 0, 3)<CR>
noremap <silent> <c-d> :call smooth_scroll#down(&scroll, 0, 3)<CR>
noremap <silent> <c-b> :call smooth_scroll#up(&scroll*2, 0, 4)<CR>
noremap <silent> <c-f> :call smooth_scroll#down(&scroll*2, 0, 4)<CR>
" ==================== "

View File

@ -0,0 +1,7 @@
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
vim.keymap.set('n', '<leader>fs', builtin.treesitter, {}) -- find symbols
vim.keymap.set('n', 'U', ":redo<Enter>", {}) -- find symbols

View File

@ -0,0 +1,52 @@
local opt = vim.opt
-- Use system clipboard
vim.opt.clipboard="unnamedplus"
-- [[ Context ]]
opt.colorcolumn = '100' -- str: Show col for max line length
opt.number = true -- bool: Show line numbers
opt.relativenumber = true -- bool: Show relative line numbers
opt.scrolloff = 4 -- int: Min num lines of context
opt.signcolumn = "yes" -- str: Show the sign column
-- [[ Filetypes ]]
opt.encoding = 'utf8' -- str: String encoding to use
opt.fileencoding = 'utf8' -- str: File encoding to use
-- [[ Theme ]]
opt.syntax = "ON" -- str: Allow syntax highlighting
opt.termguicolors = true -- bool: If term supports ui color then enable
-- [[ Search ]]
opt.ignorecase = true -- bool: Ignore case in search patterns
opt.smartcase = true -- bool: Override ignorecase if search contains capitals
opt.incsearch = true -- bool: Use incremental search
opt.hlsearch = false -- bool: Highlight search matches
-- [[ Whitespace ]]
-- opt.expandtab = true -- bool: Use spaces instead of tabs
opt.shiftwidth = 4 -- num: Size of an indent
opt.softtabstop = 4 -- num: Number of spaces tabs count for in insert mode
opt.tabstop = 4 -- num: Number of spaces tabs count for
-- [[ Splits ]]
opt.splitright = true -- bool: Place new window to right of current one
opt.splitbelow = true -- bool: Place new window below the current one
--Set completeopt to have a better completion experience
-- :help completeopt
-- menuone: popup even when there's only one match
-- noinsert: Do not insert text until a selection is made
-- noselect: Do not select, force to select one from the menu
-- shortness: avoid showing extra messages when using completion
-- updatetime: set updatetime for CursorHold
vim.opt.completeopt = {'menuone', 'noselect', 'noinsert'}
vim.opt.shortmess = vim.opt.shortmess + { c = true}
vim.api.nvim_set_option('updatetime', 300)
-- Uncomment to enable treesitter folding by default
--vim.wo.foldmethod = 'expr'
--vim.wo.foldexpr = 'nvim_treesitter#foldexpr()'

View File

@ -0,0 +1,116 @@
-- vim.cmd([[
-- augroup packer_user_config
-- autocmd!
-- autocmd BufWritePost plugins.lua source <afile> | PackerCompile
-- augroup end
-- ]])
return require('packer').startup(function(use)
-- Packer can manage itself
use 'wbthomason/packer.nvim'
-- Simple plugins can be specified as strings
use 'rstacruz/vim-closer'
-- Lazy loading:
-- Load on specific commands
use {'tpope/vim-dispatch', opt = true, cmd = {'Dispatch', 'Make', 'Focus', 'Start'}}
-- Load on an autocommand event
use {'andymass/vim-matchup', event = 'VimEnter'}
-- Load on a combination of conditions: specific filetypes or commands
-- Also run code after load (see the "config" key)
use {
'w0rp/ale',
ft = {'sh', 'zsh', 'bash', 'c', 'cpp', 'cmake', 'html', 'markdown', 'racket', 'vim', 'tex'},
cmd = 'ALEEnable',
config = 'vim.cmd[[ALEEnable]]'
}
-- Plugins can have dependencies on other plugins
use {
'haorenW1025/completion-nvim',
opt = true,
requires = {{'hrsh7th/vim-vsnip', opt = true}, {'hrsh7th/vim-vsnip-integ', opt = true}}
}
-- Plugins can also depend on rocks from luarocks.org:
--use {
-- 'my/supercoolplugin',
-- rocks = {'lpeg', {'lua-cjson', version = '2.1.0'}}
--}
-- You can specify rocks in isolation
use_rocks 'penlight'
use_rocks {'lua-resty-http', 'lpeg'}
-- Local plugins can be included
--use '~/projects/personal/hover.nvim'
-- Plugins can have post-install/update hooks
use {'iamcco/markdown-preview.nvim', run = 'cd app && yarn install', cmd = 'MarkdownPreview'}
-- Post-install/update hook with neovim command
use 'nvim-treesitter/nvim-treesitter'
-- Post-install/update hook with call of vimscript function with argument
use { 'glacambre/firenvim', run = function() vim.fn['firenvim#install'](0) end }
-- Use specific branch, dependency and run lua file after load
--use {
-- 'glepnir/galaxyline.nvim', branch = 'main', config = function() require'statusline' end,
-- requires = {'kyazdani42/nvim-web-devicons'}
--}
-- Use dependency and run lua function after load
--use {
-- 'lewis6991/gitsigns.nvim', requires = { 'nvim-lua/plenary.nvim' },
-- config = function() require('gitsigns').setup() end
--}
-- You can specify multiple plugins in a single call
use {'tjdevries/colorbuddy.vim', {'nvim-treesitter/nvim-treesitter', opt = true}}
-- You can alias plugin names
use {'dracula/vim', as = 'dracula'}
-- example plugins above
-- my stuff below
use 'ellisonleao/gruvbox.nvim'
use 'danilamihailov/beacon.nvim'
-- language server stuff
use 'williamboman/mason.nvim'
use 'williamboman/mason-lspconfig.nvim'
use 'neovim/nvim-lspconfig'
use 'simrat39/rust-tools.nvim'
use 'WhoIsSethDaniel/lualine-lsp-progress.nvim'
-- Completion framework:
use 'hrsh7th/nvim-cmp'
-- LSP completion source:
use 'hrsh7th/cmp-nvim-lsp'
-- Useful completion sources:
use 'hrsh7th/cmp-nvim-lua'
use 'hrsh7th/cmp-nvim-lsp-signature-help'
use 'hrsh7th/cmp-vsnip'
use 'hrsh7th/cmp-path'
use 'hrsh7th/cmp-buffer'
use 'hrsh7th/vim-vsnip'
-- telescope
use "nvim-lua/plenary.nvim"
use {
'nvim-telescope/telescope.nvim', branch = '0.1.x',
requires = { {'nvim-lua/plenary.nvim'} }
}
-- status line
use {
'nvim-lualine/lualine.nvim',
requires = { 'nvim-tree/nvim-web-devicons', opt = true }
}
end)

View File

@ -0,0 +1,43 @@
require('lualine').setup {
options = {
icons_enabled = true,
theme = 'auto',
component_separators = { left = '', right = ''},
section_separators = { left = '', right = ''},
disabled_filetypes = {
statusline = {},
winbar = {},
},
ignore_focus = {},
always_divide_middle = true,
globalstatus = false,
refresh = {
statusline = 1000,
tabline = 1000,
winbar = 1000,
}
},
sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff', 'diagnostics'},
lualine_c = {'filename'},
lualine_x = {{
'lsp_progress',
timer = { progress_enddelay = 20, spinner = 20, lsp_client_name_enddelay = 20 },
}},
lualine_y = {'encoding', 'fileformat', 'filetype'},
lualine_z = {'location'}
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = {'filename'},
lualine_x = {'location'},
lualine_y = {},
lualine_z = {}
},
tabline = {},
winbar = {},
inactive_winbar = {},
extensions = {}
}

View File

@ -0,0 +1,30 @@
-- setup must be called before loading the colorscheme
-- Default options:
require("gruvbox").setup({
terminal_colors = true, -- add neovim terminal colors
undercurl = true,
underline = true,
bold = true,
italic = {
strings = true,
emphasis = true,
comments = true,
operators = false,
folds = true,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "", -- can be "hard", "soft" or empty string
palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
})
vim.o.background = "dark" -- or "light" for light mode
vim.cmd([[colorscheme gruvbox]])

View File

@ -0,0 +1,4 @@
local g = vim.g
g.t_co = 256
g.background = "dark"

View File

@ -0,0 +1,338 @@
-- 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()
_G._packer = _G._packer or {}
_G._packer.inside_compile = true
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
if threshold then
table.insert(results, '(Only showing plugins that took longer than ' .. threshold .. ' ms ' .. 'to load)')
end
_G._packer.profile_output = results
end
time([[Luarocks path setup]], true)
local package_path_str = "/home/hulthe/.cache/nvim/packer_hererocks/2.1.1694285958/share/lua/5.1/?.lua;/home/hulthe/.cache/nvim/packer_hererocks/2.1.1694285958/share/lua/5.1/?/init.lua;/home/hulthe/.cache/nvim/packer_hererocks/2.1.1694285958/lib/luarocks/rocks-5.1/?.lua;/home/hulthe/.cache/nvim/packer_hererocks/2.1.1694285958/lib/luarocks/rocks-5.1/?/init.lua"
local install_cpath_pattern = "/home/hulthe/.cache/nvim/packer_hererocks/2.1.1694285958/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), name, _G.packer_plugins[name])
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 = {
ale = {
commands = { "ALEEnable" },
config = { "vim.cmd[[ALEEnable]]" },
loaded = false,
needs_bufread = true,
only_cond = false,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/opt/ale",
url = "https://github.com/w0rp/ale"
},
["beacon.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/beacon.nvim",
url = "https://github.com/danilamihailov/beacon.nvim"
},
["cmp-buffer"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/cmp-buffer",
url = "https://github.com/hrsh7th/cmp-buffer"
},
["cmp-nvim-lsp"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp",
url = "https://github.com/hrsh7th/cmp-nvim-lsp"
},
["cmp-nvim-lsp-signature-help"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help",
url = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help"
},
["cmp-nvim-lua"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua",
url = "https://github.com/hrsh7th/cmp-nvim-lua"
},
["cmp-path"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/cmp-path",
url = "https://github.com/hrsh7th/cmp-path"
},
["cmp-vsnip"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/cmp-vsnip",
url = "https://github.com/hrsh7th/cmp-vsnip"
},
["colorbuddy.vim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/colorbuddy.vim",
url = "https://github.com/tjdevries/colorbuddy.vim"
},
["completion-nvim"] = {
after = { "vim-vsnip-integ" },
loaded = false,
needs_bufread = false,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/opt/completion-nvim",
url = "https://github.com/haorenW1025/completion-nvim"
},
dracula = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/dracula",
url = "https://github.com/dracula/vim"
},
firenvim = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/firenvim",
url = "https://github.com/glacambre/firenvim"
},
["gruvbox.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/gruvbox.nvim",
url = "https://github.com/ellisonleao/gruvbox.nvim"
},
["lualine-lsp-progress.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/lualine-lsp-progress.nvim",
url = "https://github.com/WhoIsSethDaniel/lualine-lsp-progress.nvim"
},
["lualine.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/lualine.nvim",
url = "https://github.com/nvim-lualine/lualine.nvim"
},
["markdown-preview.nvim"] = {
commands = { "MarkdownPreview" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/opt/markdown-preview.nvim",
url = "https://github.com/iamcco/markdown-preview.nvim"
},
["mason-lspconfig.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim",
url = "https://github.com/williamboman/mason-lspconfig.nvim"
},
["mason.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/mason.nvim",
url = "https://github.com/williamboman/mason.nvim"
},
["nvim-cmp"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/nvim-cmp",
url = "https://github.com/hrsh7th/nvim-cmp"
},
["nvim-lspconfig"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/nvim-lspconfig",
url = "https://github.com/neovim/nvim-lspconfig"
},
["nvim-treesitter"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/nvim-treesitter",
url = "https://github.com/nvim-treesitter/nvim-treesitter"
},
["nvim-web-devicons"] = {
loaded = false,
needs_bufread = false,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/opt/nvim-web-devicons",
url = "https://github.com/nvim-tree/nvim-web-devicons"
},
["packer.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/packer.nvim",
url = "https://github.com/wbthomason/packer.nvim"
},
["plenary.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/plenary.nvim",
url = "https://github.com/nvim-lua/plenary.nvim"
},
["rust-tools.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/rust-tools.nvim",
url = "https://github.com/simrat39/rust-tools.nvim"
},
["telescope.nvim"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/telescope.nvim",
url = "https://github.com/nvim-telescope/telescope.nvim"
},
["vim-closer"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/vim-closer",
url = "https://github.com/rstacruz/vim-closer"
},
["vim-dispatch"] = {
commands = { "Dispatch", "Make", "Focus", "Start" },
loaded = false,
needs_bufread = false,
only_cond = false,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/opt/vim-dispatch",
url = "https://github.com/tpope/vim-dispatch"
},
["vim-matchup"] = {
after_files = { "/home/hulthe/.local/share/nvim/site/pack/packer/opt/vim-matchup/after/plugin/matchit.vim" },
loaded = false,
needs_bufread = true,
only_cond = false,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/opt/vim-matchup",
url = "https://github.com/andymass/vim-matchup"
},
["vim-vsnip"] = {
loaded = true,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/start/vim-vsnip",
url = "https://github.com/hrsh7th/vim-vsnip"
},
["vim-vsnip-integ"] = {
after_files = { "/home/hulthe/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ/after/plugin/vsnip_integ.vim" },
load_after = {
["completion-nvim"] = true
},
loaded = false,
needs_bufread = false,
path = "/home/hulthe/.local/share/nvim/site/pack/packer/opt/vim-vsnip-integ",
url = "https://github.com/hrsh7th/vim-vsnip-integ"
}
}
time([[Defining packer_plugins]], false)
-- Command lazy-loads
time([[Defining lazy-load commands]], true)
pcall(vim.api.nvim_create_user_command, 'MarkdownPreview', function(cmdargs)
require('packer.load')({'markdown-preview.nvim'}, { cmd = 'MarkdownPreview', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
end,
{nargs = '*', range = true, bang = true, complete = function()
require('packer.load')({'markdown-preview.nvim'}, {}, _G.packer_plugins)
return vim.fn.getcompletion('MarkdownPreview ', 'cmdline')
end})
pcall(vim.api.nvim_create_user_command, 'Dispatch', function(cmdargs)
require('packer.load')({'vim-dispatch'}, { cmd = 'Dispatch', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
end,
{nargs = '*', range = true, bang = true, complete = function()
require('packer.load')({'vim-dispatch'}, {}, _G.packer_plugins)
return vim.fn.getcompletion('Dispatch ', 'cmdline')
end})
pcall(vim.api.nvim_create_user_command, 'Make', function(cmdargs)
require('packer.load')({'vim-dispatch'}, { cmd = 'Make', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
end,
{nargs = '*', range = true, bang = true, complete = function()
require('packer.load')({'vim-dispatch'}, {}, _G.packer_plugins)
return vim.fn.getcompletion('Make ', 'cmdline')
end})
pcall(vim.api.nvim_create_user_command, 'Focus', function(cmdargs)
require('packer.load')({'vim-dispatch'}, { cmd = 'Focus', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
end,
{nargs = '*', range = true, bang = true, complete = function()
require('packer.load')({'vim-dispatch'}, {}, _G.packer_plugins)
return vim.fn.getcompletion('Focus ', 'cmdline')
end})
pcall(vim.api.nvim_create_user_command, 'Start', function(cmdargs)
require('packer.load')({'vim-dispatch'}, { cmd = 'Start', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
end,
{nargs = '*', range = true, bang = true, complete = function()
require('packer.load')({'vim-dispatch'}, {}, _G.packer_plugins)
return vim.fn.getcompletion('Start ', 'cmdline')
end})
pcall(vim.api.nvim_create_user_command, 'ALEEnable', function(cmdargs)
require('packer.load')({'ale'}, { cmd = 'ALEEnable', l1 = cmdargs.line1, l2 = cmdargs.line2, bang = cmdargs.bang, args = cmdargs.args, mods = cmdargs.mods }, _G.packer_plugins)
end,
{nargs = '*', range = true, bang = true, complete = function()
require('packer.load')({'ale'}, {}, _G.packer_plugins)
return vim.fn.getcompletion('ALEEnable ', 'cmdline')
end})
time([[Defining lazy-load commands]], false)
vim.cmd [[augroup packer_load_aucmds]]
vim.cmd [[au!]]
-- Filetype lazy-loads
time([[Defining lazy-load filetype autocommands]], true)
vim.cmd [[au FileType cmake ++once lua require("packer.load")({'ale'}, { ft = "cmake" }, _G.packer_plugins)]]
vim.cmd [[au FileType html ++once lua require("packer.load")({'ale'}, { ft = "html" }, _G.packer_plugins)]]
vim.cmd [[au FileType markdown ++once lua require("packer.load")({'ale'}, { ft = "markdown" }, _G.packer_plugins)]]
vim.cmd [[au FileType racket ++once lua require("packer.load")({'ale'}, { ft = "racket" }, _G.packer_plugins)]]
vim.cmd [[au FileType tex ++once lua require("packer.load")({'ale'}, { ft = "tex" }, _G.packer_plugins)]]
vim.cmd [[au FileType vim ++once lua require("packer.load")({'ale'}, { ft = "vim" }, _G.packer_plugins)]]
vim.cmd [[au FileType c ++once lua require("packer.load")({'ale'}, { ft = "c" }, _G.packer_plugins)]]
vim.cmd [[au FileType sh ++once lua require("packer.load")({'ale'}, { ft = "sh" }, _G.packer_plugins)]]
vim.cmd [[au FileType zsh ++once lua require("packer.load")({'ale'}, { ft = "zsh" }, _G.packer_plugins)]]
vim.cmd [[au FileType bash ++once lua require("packer.load")({'ale'}, { ft = "bash" }, _G.packer_plugins)]]
vim.cmd [[au FileType cpp ++once lua require("packer.load")({'ale'}, { ft = "cpp" }, _G.packer_plugins)]]
time([[Defining lazy-load filetype autocommands]], false)
-- Event lazy-loads
time([[Defining lazy-load event autocommands]], true)
vim.cmd [[au VimEnter * ++once lua require("packer.load")({'vim-matchup'}, { event = "VimEnter *" }, _G.packer_plugins)]]
time([[Defining lazy-load event autocommands]], false)
vim.cmd("augroup END")
_G._packer.inside_compile = false
if _G._packer.needs_bufread == true then
vim.cmd("doautocmd BufRead")
end
_G._packer.needs_bufread = false
if should_profile then save_profiles() end
end)
if not no_errors then
error_msg = error_msg:gsub('"', '\\"')
vim.api.nvim_command('echohl ErrorMsg | echom "Error in packer_compiled: '..error_msg..'" | echom "Please check your config for correctness" | echohl None')
end