diff options
Diffstat (limited to '.config/nvim')
| -rw-r--r-- | .config/nvim/.luarc.json | 4 | ||||
| -rwxr-xr-x | .config/nvim/colors/test.lua | 1 | ||||
| -rwxr-xr-x | .config/nvim/init.lua | 5 | ||||
| -rwxr-xr-x | .config/nvim/lua/autocmds.lua | 29 | ||||
| -rwxr-xr-x | .config/nvim/lua/keymaps.lua | 68 | ||||
| -rwxr-xr-x | .config/nvim/lua/lilies.lua | 34 | ||||
| -rwxr-xr-x | .config/nvim/lua/options.lua | 28 | ||||
| -rwxr-xr-x | .config/nvim/lua/plugins.lua | 198 | ||||
| -rw-r--r-- | .config/nvim/lua/statusline.lua | 202 | ||||
| -rwxr-xr-x | .config/nvim/lua/ui.lua | 0 | ||||
| -rwxr-xr-x | .config/nvim/lua/util.lua | 34 | ||||
| -rw-r--r-- | .config/nvim/plugin/packer_compiled.lua | 189 | 
12 files changed, 792 insertions, 0 deletions
diff --git a/.config/nvim/.luarc.json b/.config/nvim/.luarc.json new file mode 100644 index 0000000..e1b9d70 --- /dev/null +++ b/.config/nvim/.luarc.json @@ -0,0 +1,4 @@ +{ +    "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json", +    "Lua.workspace.checkThirdParty": false +}
\ No newline at end of file diff --git a/.config/nvim/colors/test.lua b/.config/nvim/colors/test.lua new file mode 100755 index 0000000..c46a1b7 --- /dev/null +++ b/.config/nvim/colors/test.lua @@ -0,0 +1 @@ +print('test dot lua') diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100755 index 0000000..e8e750e --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,5 @@ +require('options') +require('keymaps') +require('autocmds') +require('plugins') +require('statusline') diff --git a/.config/nvim/lua/autocmds.lua b/.config/nvim/lua/autocmds.lua new file mode 100755 index 0000000..5fcb496 --- /dev/null +++ b/.config/nvim/lua/autocmds.lua @@ -0,0 +1,29 @@ +vim.api.nvim_create_autocmd('BufWritePost', { +	pattern = "config", +	command = '!i3-msg -q reload', +}) + +vim.api.nvim_create_autocmd('BufWritePost', { +	pattern = "*.tex", +	command = 'silent !pdflatex %', +}) + +vim.api.nvim_create_autocmd('BufWritePre', { +	pattern = 'todo.txt', +	command = 'sort', +}) + +--vim.api.nvim_create_autocmd('VimEnter', { +	--once = true, +	--callback = function() +		--if vim.fn.filereadable('Session.vim') then +			--vim.cmd('source Session.vim') +		--end +	--end +--}) + +vim.api.nvim_create_autocmd('TextYankPost', { +	callback = function () +		vim.highlight.on_yank({ higroup = 'IncSearch', timeout = 200}) +	end, +}) diff --git a/.config/nvim/lua/keymaps.lua b/.config/nvim/lua/keymaps.lua new file mode 100755 index 0000000..16de10f --- /dev/null +++ b/.config/nvim/lua/keymaps.lua @@ -0,0 +1,68 @@ +vim.g.mapleader = " " +local function keymap(mode, lhs, rhs, opts) +	opts = opts or { noremap = true, silent = true } +	vim.keymap.set(mode, lhs, rhs, opts) +end + +keymap('n', '<leader><leader>', +	function() require('luasnip').jump(1) end, +	{noremap = true, silent = true}) + +-- Map leader + s and v/h to open split  +keymap('n', '<leader>sp', ':sp<CR>') +keymap('n', '<leader>sv', ':vsp<CR>') + +keymap('n', '<leader>q', ':q<CR>') + +keymap('n', '<C-q>', ':mksession!<space>nvim-session<Enter>:wqa<Enter>') +keymap('n', '<C-s>', ':wa<Enter>:mksession!<space>nvim-session<Enter>') +keymap('n', '<C-p>', ':source<space>nvim-session<Enter>') + +keymap('n', '<leader>y', '"+y') +keymap('n', '<leader>d', '"+d') +keymap('n', '<leader>p', '"+p') +keymap('n', '<leader>Y', '"+Y') +keymap('n', '<leader>D', '"+D') +keymap('n', '<leader>P', '"+P') + +keymap('v', '<leader>y', '"+y') +keymap('v', '<leader>d', '"+d') +keymap('v', '<leader>p', '"+p') +keymap('v', '<leader>Y', '"+Y') +keymap('v', '<leader>D', '"+D') +keymap('v', '<leader>P', '"+P') + +keymap('n', '<M-h>', '<C-w>h') +keymap('n', '<M-k>', '<C-w>k') +keymap('n', '<M-j>', '<C-w>j') +keymap('n', '<M-l>', '<C-w>l') + +keymap('v', '<', '<gv') +keymap('v', '>', '>gv') + +keymap('i', '<C-BS>', '<C-w>') + +vim.api.nvim_create_autocmd('User', { +	pattern = 'LspAttached', +	desc = 'LSP Keymaps', +	callback = function() +		local function bufmap(mode, lhs, rhs) +			keymap(mode, lhs, rhs, { silent = true, noremap = true, buffer = true }) +		end + +		bufmap('n', 'gD', vim.lsp.buf.declaration) +		bufmap('n', 'gd', vim.lsp.buf.definition) +		bufmap('n', 'K', vim.lsp.buf.hover) +		bufmap('n', 'gi', vim.lsp.buf.implementation) +		bufmap('n', '<C-k>', vim.lsp.buf.signature_help) +		bufmap('n', '<leader>wa', vim.lsp.buf.add_workspace_folder) +		bufmap('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder) +		bufmap('n', '<leader>wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end) +		bufmap('n', '<leader>D', vim.lsp.buf.type_definition) +		bufmap('n', '<leader>rn', vim.lsp.buf.rename) +		bufmap('n', '<leader>ca', vim.lsp.buf.code_action) +		bufmap('n', 'gr', vim.lsp.buf.references) +		bufmap('n', '<leader>f', vim.lsp.buf.formatting) +		bufmap('n', '<leader>e', vim.diagnostic.open_float) +	end +}) diff --git a/.config/nvim/lua/lilies.lua b/.config/nvim/lua/lilies.lua new file mode 100755 index 0000000..d492426 --- /dev/null +++ b/.config/nvim/lua/lilies.lua @@ -0,0 +1,34 @@ +local M = {} + +local function highlight(group, style) +	local effect = style.effect and 'gui=' .. style.effect or 'gui=NONE' +	local fg = style.fg and 'gui=' .. style.fg or 'gui=NONE' +	local bg = style.bg and 'gui=' .. style.bg or 'gui=NONE' +	local sp = style.sp and 'gui=' .. style.sp or 'gui=NONE' +end + +local colors = { +	color0 = "#20201d" +	color1 = "#d73737" +	color2 = "#60ac39" +	color3 = "#cfb017" +	color4 = "#6684e1" +	color5 = "#b854d4" +	color6 = "#1fad83" +	color7 = "#a6a28c" +	color8 = "#7d7a68" +	color9 = "#d73737" +	color10 = "#60ac39" +	color11 = "#cfb017" +	color12 = "#6684e1" +	color13 = "#b854d4" +	color14 = "#1fad83" +	color15 = "#fefbec" +	cursorColor = "#a6a28c" +	background = "#20201d" +	foreground = "#a6a28c" +} + +function M.colorscheme() + +end diff --git a/.config/nvim/lua/options.lua b/.config/nvim/lua/options.lua new file mode 100755 index 0000000..a32fe58 --- /dev/null +++ b/.config/nvim/lua/options.lua @@ -0,0 +1,28 @@ +--vim.opt.termguicolors = true +vim.opt.showmode = false +vim.opt.path = '.,,**' + +-- Fix split spaw location +vim.opt.splitbelow = true +vim.opt.splitright = true +vim.opt.number = true +vim.opt.relativenumber = false +vim.opt.cursorline = true + +vim.opt.autoindent = true +vim.opt.expandtab = false +vim.opt.tabstop = 4 +vim.opt.shiftwidth = 0 +vim.opt.list = true + +vim.opt.laststatus = 2 +vim.opt.foldmethod = 'marker' + +vim.opt.mouse = 'a' +vim.opt.scrolloff = 15 + +vim.opt.synmaxcol = 300 + +vim.opt.cmdheight = 0 + +--vim.g.editorconfig = true diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua new file mode 100755 index 0000000..9655992 --- /dev/null +++ b/.config/nvim/lua/plugins.lua @@ -0,0 +1,198 @@ +local ensure_packer = function() +	local fn = vim.fn +	local install_path = fn.stdpath('data')..'/site/pack/packer/start/packer.nvim' +	if fn.empty(fn.glob(install_path)) > 0 then +		fn.system({'git', 'clone', '--depth', '1', 'https://github.com/wbthomason/packer.nvim', install_path}) +		vim.cmd [[packadd packer.nvim]] +		return true +	end +	return false +end + +local packer_bootstrap = ensure_packer() + +return require('packer').startup(function(use) +	use 'wbthomason/packer.nvim' + +	use { +		'rose-pine/neovim', +		as = 'rose-pine', +		config = function() +			vim.cmd('colorscheme rose-pine') +		end +	} + +	use { +		"SmiteshP/nvim-navic", +		requires = "neovim/nvim-lspconfig" +	} + +	use { +		"folke/which-key.nvim", +		config = function() +			require("which-key").setup { +				-- your configuration comes here +				-- or leave it empty to use the default settings +				-- refer to the configuration section below +			} +		end +	} + +	use { +		'neovim/nvim-lspconfig', +		config = function() +			local lspconfig = require('lspconfig') +			local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) +			local cache = os.getenv("XDG_RUNTIME_DIR") or "/tmp/" + +			local on_attach = function(client, bufnr) +				vim.api.nvim_exec_autocmds('User', {pattern = 'LspAttached'}) +				require('nvim-navic').attach(client, bufnr) +			end + +			lspconfig.ccls.setup { +				on_attach = on_attach, +				capabilities = capabilities, +				single_file_support = true, +				init_options = { +					cache = { +						directory = cache .. "/ccls" +					} +				} +			} + +			lspconfig.phpactor.setup { +				on_attach = on_attach, +				capabilities = capabilities +			} + +			lspconfig.bashls.setup { +				on_attach = on_attach, +				capabilities = capabilities +			} + +			lspconfig.rust_analyzer.setup { +				on_attach = on_attach, +				capabilities = capabilities +			} + +			lspconfig.lua_ls.setup { +				on_attach = on_attach, +				capabilities = capabilities, +				settings = { +					Lua = { +						runtime = { +							version = 'LuaJIT', +						}, + +						diagnostics = { +							globals = {'vim'}, +						}, + +						workspace = { +							library = vim.api.nvim_get_runtime_file("", true), +						}, + +						telemetry = { +							enable = false, +						} +					} +				} +			} +		end +	} + +	use { +		'nvim-treesitter/nvim-treesitter', +		run = ':TSUpdate', +		config = function() +			require'nvim-treesitter.configs'.setup { +				ensure_installed = { "c", "cpp", "php", "lua" }, +				sync_install = false, +				auto_install = true, +				highlight = { +					enable = true, +					additional_vim_regex_highlighting = false, +				} +			} +		end +	} + +	use { +		'hrsh7th/nvim-cmp', +		requires = { +			'hrsh7th/cmp-nvim-lsp', +			'hrsh7th/cmp-vsnip', +			'hrsh7th/vim-vsnip', +			'hrsh7th/cmp-nvim-lsp-signature-help', +			'hrsh7th/cmp-nvim-lsp-document-symbol', +		}, +		config = function() +			-- Setup nvim-cmp. +			local cmp = require'cmp' +			local has_words_before = function() +				local line, col = unpack(vim.api.nvim_win_get_cursor(0)) +				return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil +			end + +			local feedkey = function(key, mode) +				vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) +			end + +			cmp.setup({ +				snippet = { +					-- REQUIRED - you must specify a snippet engine +					expand = function(args) +						vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. +						-- require('luasnip').lsp_expand(args.body) -- For `luasnip` users. +						-- require('snippy').expand_snippet(args.body) -- For `snippy` users. +						-- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. +					end, +				}, +				window = { +					completion = cmp.config.window.bordered(), +					documentation = cmp.config.window.bordered(), +				}, +				mapping = cmp.mapping.preset.insert({ +					['<C-b>'] = cmp.mapping.scroll_docs(-4), +					['<C-f>'] = cmp.mapping.scroll_docs(4), +					['<C-Space>'] = cmp.mapping.complete(), +					['<C-e>'] = cmp.mapping.abort(), +					['<CR>'] = cmp.mapping.confirm({ select = false }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. +					['<Tab>'] = cmp.mapping(function(fallback) +						if cmp.visible() then +							cmp.select_next_item() +						elseif vim.fn["vsnip#available"](1) == 1 then +							feedkey("<Plug>(vsnip-expand-or-jump)", "") +						elseif has_words_before() then +							cmp.complete() +						else +							fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`. +						end +					end, { "i", "s" }), +					['<S-Tab>'] = cmp.mapping(function() +						if cmp.visible() then +							cmp.select_prev_item() +						elseif vim.fn["vsnip#jumpable"](-1) == 1 then +							feedkey("<Plug>(vsnip-jump-prev)", "") +						end +					end, { "i", "s" }), +				}), +				sources = cmp.config.sources({ +					{ name = 'nvim_lsp' }, +					{ name = 'vsnip' }, -- For vsnip users. +					-- { name = 'luasnip' }, -- For luasnip users. +					-- { name = 'ultisnips' }, -- For ultisnips users. +					-- { name = 'snippy' }, -- For snippy users. +					{ name = 'nvim_lsp_signature_help' } +				}, { +					{ name = 'buffer' }, +				}) +			}) +		end +	} + +	if packer_bootstrap then +		require('packer').sync() +	end +end) diff --git a/.config/nvim/lua/statusline.lua b/.config/nvim/lua/statusline.lua new file mode 100644 index 0000000..b7b6ed9 --- /dev/null +++ b/.config/nvim/lua/statusline.lua @@ -0,0 +1,202 @@ +local fn = vim.fn +local api = vim.api + +-- possible values are 'arrow' | 'rounded' | 'blank' +local active_sep = 'blank' + +-- change them if you want to different separator +local separators = { +	arrow = { '', '' }, +	rounded = { '', '' }, +	blank = { '', '' }, +} + +-- highlight groups +local colors = { +	active        = '%#StatusLine#', +	inactive      = '%#StatuslineNC#', +	mode          = '%#Mode#', +	mode_alt      = '%#ModeAlt#', +	git           = '%#Git#', +	git_alt       = '%#GitAlt#', +	filetype      = '%#Filetype#', +	filetype_alt  = '%#FiletypeAlt#', +	line_col      = '%#LineCol#', +	line_col_alt  = '%#LineColAlt#', +} + +local trunc_width = setmetatable({ +	mode       = 80, +	git_status = 90, +	filename   = 140, +	line_col   = 60, +}, { +	__index = function() +		return 80 +	end +}) + +local is_truncated = function(_, width) +	local current_width = api.nvim_win_get_width(0) +	return current_width < width +end + +--local modes = setmetatable({ +	--['n']  = {'Normal', 'N'}; +	--['no'] = {'N·Pending', 'N·P'} ; +	--['v']  = {'Visual', 'V' }; +	--['V']  = {'V·Line', 'V·L' }; +	--[''] = {'V·Block', 'V·B'}; -- this is not ^V, but it's , they're different +	--['s']  = {'Select', 'S'}; +	--['S']  = {'S·Line', 'S·L'}; +	--[''] = {'S·Block', 'S·B'}; -- same with this one, it's not ^S but it's  +	--['i']  = {'Insert', 'I'}; +	--['ic'] = {'Insert', 'I'}; +	--['R']  = {'Replace', 'R'}; +	--['Rv'] = {'V·Replace', 'V·R'}; +	--['c']  = {'Command', 'C'}; +	--['cv'] = {'Vim·Ex ', 'V·E'}; +	--['ce'] = {'Ex ', 'E'}; +	--['r']  = {'Prompt ', 'P'}; +	--['rm'] = {'More ', 'M'}; +	--['r?'] = {'Confirm ', 'C'}; +	--['!']  = {'Shell ', 'S'}; +	--['t']  = {'Terminal ', 'T'}; +--}, { +	--__index = function() +		--return {'Unknown', 'U'} -- handle edge cases +	--end +--}) + +local get_current_mode = function() +	return string.format('[%s]', api.nvim_get_mode().mode ) +end + +local get_git_status = function() +	-- use fallback because it doesn't set this variable on the initial `BufEnter` +	local signs = vim.b.gitsigns_status_dict or {head = '', added = 0, changed = 0, removed = 0} +	local is_head_empty = signs.head ~= '' + +	if is_truncated(trunc_width.git_status) then +		return is_head_empty and string.format('  %s ', signs.head or '') or '' +	end + +	return is_head_empty and string.format( +	' +%s ~%s -%s |  %s ', +	signs.added, signs.changed, signs.removed, signs.head +	) or '' +end + +local get_filename = function() +	--if is_truncated(trunc_width.filename) then return "%<%f" end +	return "%<%F" +end + +local get_filetype = function() +	local filetype = vim.bo.filetype +	if filetype == '' then +		return '' +	end +	return string.format('%s', filetype):lower() +end + +local get_line_col = function() +	return '%l:%c' +end + +Statusline = {} + +Statusline.active = function() +	local navic = require('nvim-navic') + +	--local mode = colors.mode .. self:get_current_mode() +	--local mode_alt = colors.mode_alt .. self.separators[active_sep][1] +	--local git = colors.git .. self:get_git_status() +	--local git_alt = colors.git_alt .. self.separators[active_sep][1] +	--local filename = colors.inactive .. self:get_filename() .. colors.git_alt +	--local location = "" +	--if navic.is_available() then +	--location = navic.get_location() +	--end +	--local filetype_alt = colors.filetype_alt .. self.separators[active_sep][2] +	--local filetype = colors.filetype .. self:get_filetype() +	--local line_col = colors.line_col .. self:get_line_col() +	--local line_col_alt = colors.line_col_alt .. self.separators[active_sep][2] + +	local mode = get_current_mode() +	--local git = get_git_status() +	local filename = get_filename() .. colors.git_alt +	local location = "" +	if navic.is_available() then +		location = navic.get_location() +	end +	local filetype = get_filetype() +	local line_col = get_line_col() + +	return table.concat({ +		mode, " ", filename, " ", "%m%r%q", " ", filetype, +		"%=", +		location, " ", line_col, " " +	}) +end + +Statusline.inactive = function() +	return colors.inactive .. '%F' +end + +Statusline.set_explorer = function() +	local title = colors.mode .. '   ' +	local title_alt = colors.mode_alt .. Statusline.separators[active_sep][2] + +	return table.concat({ colors.active, title, title_alt }) +end + +--Statusline = setmetatable(M, { +	--__call = function(statusline, mode) +		--if mode == "active" then return statusline:set_active() end +		--if mode == "inactive" then return statusline:set_inactive() end +		--if mode == "explorer" then return statusline:set_explorer() end +	--end +--}) + +local augroup = api.nvim_create_augroup('Statusline', { clear = true}) +api.nvim_create_autocmd({"WinEnter", "BufEnter"}, { +	command = "setlocal statusline=%!v:lua.Statusline.active()", +	group = augroup +}) +api.nvim_create_autocmd({"WinLeave", "BufLeave"}, { +	command = "setlocal statusline=%!v:lua.Statusline.inactive()", +	group = augroup +}) + +----[[ +--  NOTE: I don't use this since the statusline already has +--  so much stuff going on. Feel free to use it! +--  credit: https://github.com/nvim-lua/lsp-status.nvim +-- +--  I now use `tabline` to display these errors, go to `_bufferline.lua` if you +--  want to check that out +----]] +-- Statusline.get_lsp_diagnostic = function(self) +--   local result = {} +--   local levels = { +--     errors = 'Error', +--     warnings = 'Warning', +--     info = 'Information', +--     hints = 'Hint' +--   } + +--   for k, level in pairs(levels) do +--     result[k] = vim.lsp.diagnostic.get_count(0, level) +--   end + +--   if self:is_truncated(120) then +--     return '' +--   else +--     return string.format( +--       "| :%s :%s :%s :%s ", +--       result['errors'] or 0, result['warnings'] or 0, +--       result['info'] or 0, result['hints'] or 0 +--     ) +--   end +-- end diff --git a/.config/nvim/lua/ui.lua b/.config/nvim/lua/ui.lua new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/.config/nvim/lua/ui.lua diff --git a/.config/nvim/lua/util.lua b/.config/nvim/lua/util.lua new file mode 100755 index 0000000..8b57d32 --- /dev/null +++ b/.config/nvim/lua/util.lua @@ -0,0 +1,34 @@ +return { +	{ +		'windwp/nvim-autopairs', +		after = 'nvim-lspconfig', +		config = function()  +			require('nvim-autopairs').setup{} +		end +	}, +	{ +		'nvim-lua/plenary.nvim' +	}, +	{ +		'tversteeg/registers.nvim' +	}, +	{ +		'nvim-telescope/telescope.nvim', +			-- requires = { 'nvim-lua/plenary.nvim' }, +			config = function() +				local keymap = vim.api.nvim_set_keymap +				local opts = { noremap = true, silent = true } + +				keymap('n', '<leader>ff', '<cmd>Telescope find_files<cr>', opts) +				keymap('n', '<leader>fb', '<cmd>Telescope buffers<cr>', opts) +				keymap('n', '<leader>fh', '<cmd>Telescope help_tags<cr>', opts) +				keymap('n', '<leader>fg', '<cmd>Telescope live_grep<cr>', opts) +			end +	}, +	{ +		'xiyaowong/which-key.nvim', +		config = function() +			require("which-key").setup() +		end +	} +} diff --git a/.config/nvim/plugin/packer_compiled.lua b/.config/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..41ea80b --- /dev/null +++ b/.config/nvim/plugin/packer_compiled.lua @@ -0,0 +1,189 @@ +-- 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/anna/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/anna/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/anna/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/anna/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/anna/.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), 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 = { +  ["cmp-nvim-lsp"] = { +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp", +    url = "https://github.com/hrsh7th/cmp-nvim-lsp" +  }, +  ["cmp-nvim-lsp-document-symbol"] = { +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-document-symbol", +    url = "https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol" +  }, +  ["cmp-nvim-lsp-signature-help"] = { +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp-signature-help", +    url = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help" +  }, +  ["cmp-vsnip"] = { +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/cmp-vsnip", +    url = "https://github.com/hrsh7th/cmp-vsnip" +  }, +  ["nvim-cmp"] = { +    config = { "\27LJ\2\n\1\0\0\b\0\b\2!6\0\0\0006\2\1\0009\2\2\0029\2\3\2)\4\0\0B\2\2\0A\0\0\3\b\1\0\0X\2\206\2\1\0009\2\2\0029\2\4\2)\4\0\0\23\5\1\0\18\6\0\0+\a\2\0B\2\5\2:\2\1\2\18\4\2\0009\2\5\2\18\5\1\0\18\6\1\0B\2\4\2\18\4\2\0009\2\6\2'\5\a\0B\2\3\2\n\2\0\0X\2\2+\2\1\0X\3\1+\2\2\0L\2\2\0\a%s\nmatch\bsub\23nvim_buf_get_lines\24nvim_win_get_cursor\bapi\bvim\vunpack\0\2p\0\2\n\0\4\0\0156\2\0\0009\2\1\0029\2\2\0026\4\0\0009\4\1\0049\4\3\4\18\6\0\0+\a\2\0+\b\2\0+\t\2\0B\4\5\2\18\5\1\0+\6\2\0B\2\4\1K\0\1\0\27nvim_replace_termcodes\18nvim_feedkeys\bapi\bvim;\0\1\4\0\4\0\0066\1\0\0009\1\1\0019\1\2\0019\3\3\0B\1\2\1K\0\1\0\tbody\20vsnip#anonymous\afn\bvim\1\0\1\5\3\b\1 -\1\0\0009\1\0\1B\1\1\2\15\0\1\0X\2\4-\1\0\0009\1\1\1B\1\1\1X\1\226\1\2\0009\1\3\0019\1\4\1)\3\1\0B\1\2\2\t\1\0\0X\1\5-\1\1\0'\3\5\0'\4\6\0B\1\3\1X\1\n-\1\2\0B\1\1\2\15\0\1\0X\2\4-\1\0\0009\1\a\1B\1\1\1X\1\2\18\1\0\0B\1\1\1K\0\1\0\0\2\1\rcomplete\5!<Plug>(vsnip-expand-or-jump)\20vsnip#available\afn\bvim\21select_next_item\fvisible\2\1\0\0\4\2\a\1\21-\0\0\0009\0\0\0B\0\1\2\15\0\0\0X\1\4-\0\0\0009\0\1\0B\0\1\1X\0\v6\0\2\0009\0\3\0009\0\4\0)\2B\0\2\2\t\0\0\0X\0\4-\0\1\0'\2\5\0'\3\6\0B\0\3\1K\0\1\0\0\2\5\28<Plug>(vsnip-jump-prev)\19vsnip#jumpable\afn\bvim\21select_prev_item\fvisible\2\4\1\0\r\0)\0O6\0\0\0'\2\1\0B\0\2\0023\1\2\0003\2\3\0009\3\4\0005\5\b\0005\6\6\0003\a\5\0=\a\a\6=\6\t\0055\6\r\0009\a\n\0009\a\v\a9\a\f\aB\a\1\2=\a\14\0069\a\n\0009\a\v\a9\a\f\aB\a\1\2=\a\15\6=\6\v\0059\6\16\0009\6\17\0069\6\18\0065\b\20\0009\t\16\0009\t\19\t)\vB\t\2\2=\t\21\b9\t\16\0009\t\19\t)\v\4\0B\t\2\2=\t\22\b9\t\16\0009\t\23\tB\t\1\2=\t\24\b9\t\16\0009\t\25\tB\t\1\2=\t\26\b9\t\16\0009\t\27\t5\v\28\0B\t\2\2=\t\29\b9\t\16\0003\v\30\0005\f\31\0B\t\3\2=\t \b9\t\16\0003\v!\0005\f\"\0B\t\3\2=\t#\bB\6\2\2=\6\16\0059\6\n\0009\6$\0064\b\4\0005\t%\0>\t\1\b5\t&\0>\t\2\b5\t'\0>\t\3\b4\t\3\0005\n(\0>\n\1\tB\6\3\2=\6$\5B\3\2\0012\0\0K\0\1\0\1\0\1\tname\vbuffer\1\0\1\tname\28nvim_lsp_signature_help\1\0\1\tname\nvsnip\1\0\1\tname\rnvim_lsp\fsources\f<S-Tab>\1\3\0\0\6i\6s\0\n<Tab>\1\3\0\0\6i\6s\0\t<CR>\1\0\1\vselect\1\fconfirm\n<C-e>\nabort\14<C-Space>\rcomplete\n<C-f>\n<C-b>\1\0\0\16scroll_docs\vinsert\vpreset\fmapping\18documentation\15completion\1\0\0\rbordered\vwindow\vconfig\fsnippet\1\0\0\vexpand\1\0\0\0\nsetup\0\0\bcmp\frequire\0" }, +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/nvim-cmp", +    url = "https://github.com/hrsh7th/nvim-cmp" +  }, +  ["nvim-lspconfig"] = { +    config = { "\27LJ\2\nw\0\2\6\1\6\0\f6\2\0\0009\2\1\0029\2\2\2'\4\3\0005\5\4\0B\2\3\1-\2\0\0009\2\5\2\18\4\0\0\18\5\1\0B\2\3\1K\0\1\0\3\vattach\1\0\1\fpattern\16LspAttached\tUser\23nvim_exec_autocmds\bapi\bvim\6\1\0\15\0003\0U6\0\0\0'\2\1\0B\0\2\0026\1\0\0'\3\2\0B\1\2\0029\1\3\0016\3\4\0009\3\5\0039\3\6\0039\3\a\3B\3\1\0A\1\0\0026\2\b\0009\2\t\2'\4\n\0B\2\2\2\14\0\2\0X\3\1'\2\v\0006\3\0\0'\5\f\0B\3\2\0023\4\r\0009\5\14\0009\5\15\0055\a\16\0=\4\17\a=\1\18\a5\b\22\0005\t\20\0\18\n\2\0'\v\19\0&\n\v\n=\n\21\t=\t\23\b=\b\24\aB\5\2\0019\5\25\0009\5\15\0055\a\26\0=\4\17\a=\1\18\aB\5\2\0019\5\27\0009\5\15\0055\a\28\0=\4\17\a=\1\18\aB\5\2\0019\5\29\0009\5\15\0055\a\30\0=\4\17\a=\1\18\aB\5\2\0019\5\31\0009\5\15\0055\a \0=\4\17\a=\1\18\a5\b0\0005\t\"\0005\n!\0=\n#\t5\n%\0005\v$\0=\v&\n=\n'\t5\n+\0006\v\4\0009\v(\v9\v)\v'\r*\0+\14\2\0B\v\3\2=\v,\n=\n-\t5\n.\0=\n/\t=\t1\b=\b2\aB\5\2\0012\0\0K\0\1\0\rsettings\bLua\1\0\0\14telemetry\1\0\1\venable\1\14workspace\flibrary\1\0\0\5\26nvim_get_runtime_file\bapi\16diagnostics\fglobals\1\0\0\1\2\0\0\bvim\fruntime\1\0\0\1\0\1\fversion\vLuaJIT\1\0\0\vlua_ls\1\0\0\18rust_analyzer\1\0\0\vbashls\1\0\0\rphpactor\17init_options\ncache\1\0\0\14directory\1\0\0\n/ccls\17capabilities\14on_attach\1\0\1\24single_file_support\2\nsetup\tccls\0\15nvim-navic\n/tmp/\20XDG_RUNTIME_DIR\vgetenv\aos\29make_client_capabilities\rprotocol\blsp\bvim\25default_capabilities\17cmp_nvim_lsp\14lspconfig\frequire\0" }, +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", +    url = "https://github.com/neovim/nvim-lspconfig" +  }, +  ["nvim-navic"] = { +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/nvim-navic", +    url = "https://github.com/SmiteshP/nvim-navic" +  }, +  ["nvim-treesitter"] = { +    config = { "\27LJ\2\n\1\0\0\4\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\0025\3\6\0=\3\a\2B\0\2\1K\0\1\0\14highlight\1\0\2\venable\2&additional_vim_regex_highlighting\1\21ensure_installed\1\0\2\17auto_install\2\17sync_install\1\1\5\0\0\6c\bcpp\bphp\blua\nsetup\28nvim-treesitter.configs\frequire\0" }, +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/nvim-treesitter", +    url = "https://github.com/nvim-treesitter/nvim-treesitter" +  }, +  ["packer.nvim"] = { +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/packer.nvim", +    url = "https://github.com/wbthomason/packer.nvim" +  }, +  ["rose-pine"] = { +    config = { "\27LJ\2\n9\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0\26colorscheme rose-pine\bcmd\bvim\0" }, +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/rose-pine", +    url = "https://github.com/rose-pine/neovim" +  }, +  ["rust-tools.nvim"] = { +    config = { "\27LJ\2\nZ\0\2\6\0\5\0\a6\2\0\0009\2\1\0029\2\2\2'\4\3\0005\5\4\0B\2\3\1K\0\1\0\1\0\1\fpattern\16LspAttached\tUser\23nvim_exec_autocmds\bapi\bvim\1\1\0\a\0\15\0\0226\0\0\0'\2\1\0B\0\2\0026\1\0\0'\3\2\0B\1\2\0029\1\3\0016\3\4\0009\3\5\0039\3\6\0039\3\a\3B\3\1\0A\1\0\0023\2\b\0009\3\t\0005\5\r\0005\6\n\0=\2\v\6=\1\f\6=\6\14\5B\3\2\1K\0\1\0\vserver\1\0\0\17capabilities\14on_attach\1\0\0\nsetup\0\29make_client_capabilities\rprotocol\blsp\bvim\25default_capabilities\17cmp_nvim_lsp\15rust-tools\frequire\0" }, +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/rust-tools.nvim", +    url = "https://github.com/simrat39/rust-tools.nvim" +  }, +  ["vim-vsnip"] = { +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/vim-vsnip", +    url = "https://github.com/hrsh7th/vim-vsnip" +  }, +  ["which-key.nvim"] = { +    config = { "\27LJ\2\n;\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\14which-key\frequire\0" }, +    loaded = true, +    path = "/home/anna/.local/share/nvim/site/pack/packer/start/which-key.nvim", +    url = "https://github.com/folke/which-key.nvim" +  } +} + +time([[Defining packer_plugins]], false) +-- Config for: nvim-cmp +time([[Config for nvim-cmp]], true) +try_loadstring("\27LJ\2\n\1\0\0\b\0\b\2!6\0\0\0006\2\1\0009\2\2\0029\2\3\2)\4\0\0B\2\2\0A\0\0\3\b\1\0\0X\2\206\2\1\0009\2\2\0029\2\4\2)\4\0\0\23\5\1\0\18\6\0\0+\a\2\0B\2\5\2:\2\1\2\18\4\2\0009\2\5\2\18\5\1\0\18\6\1\0B\2\4\2\18\4\2\0009\2\6\2'\5\a\0B\2\3\2\n\2\0\0X\2\2+\2\1\0X\3\1+\2\2\0L\2\2\0\a%s\nmatch\bsub\23nvim_buf_get_lines\24nvim_win_get_cursor\bapi\bvim\vunpack\0\2p\0\2\n\0\4\0\0156\2\0\0009\2\1\0029\2\2\0026\4\0\0009\4\1\0049\4\3\4\18\6\0\0+\a\2\0+\b\2\0+\t\2\0B\4\5\2\18\5\1\0+\6\2\0B\2\4\1K\0\1\0\27nvim_replace_termcodes\18nvim_feedkeys\bapi\bvim;\0\1\4\0\4\0\0066\1\0\0009\1\1\0019\1\2\0019\3\3\0B\1\2\1K\0\1\0\tbody\20vsnip#anonymous\afn\bvim\1\0\1\5\3\b\1 -\1\0\0009\1\0\1B\1\1\2\15\0\1\0X\2\4-\1\0\0009\1\1\1B\1\1\1X\1\226\1\2\0009\1\3\0019\1\4\1)\3\1\0B\1\2\2\t\1\0\0X\1\5-\1\1\0'\3\5\0'\4\6\0B\1\3\1X\1\n-\1\2\0B\1\1\2\15\0\1\0X\2\4-\1\0\0009\1\a\1B\1\1\1X\1\2\18\1\0\0B\1\1\1K\0\1\0\0\2\1\rcomplete\5!<Plug>(vsnip-expand-or-jump)\20vsnip#available\afn\bvim\21select_next_item\fvisible\2\1\0\0\4\2\a\1\21-\0\0\0009\0\0\0B\0\1\2\15\0\0\0X\1\4-\0\0\0009\0\1\0B\0\1\1X\0\v6\0\2\0009\0\3\0009\0\4\0)\2B\0\2\2\t\0\0\0X\0\4-\0\1\0'\2\5\0'\3\6\0B\0\3\1K\0\1\0\0\2\5\28<Plug>(vsnip-jump-prev)\19vsnip#jumpable\afn\bvim\21select_prev_item\fvisible\2\4\1\0\r\0)\0O6\0\0\0'\2\1\0B\0\2\0023\1\2\0003\2\3\0009\3\4\0005\5\b\0005\6\6\0003\a\5\0=\a\a\6=\6\t\0055\6\r\0009\a\n\0009\a\v\a9\a\f\aB\a\1\2=\a\14\0069\a\n\0009\a\v\a9\a\f\aB\a\1\2=\a\15\6=\6\v\0059\6\16\0009\6\17\0069\6\18\0065\b\20\0009\t\16\0009\t\19\t)\vB\t\2\2=\t\21\b9\t\16\0009\t\19\t)\v\4\0B\t\2\2=\t\22\b9\t\16\0009\t\23\tB\t\1\2=\t\24\b9\t\16\0009\t\25\tB\t\1\2=\t\26\b9\t\16\0009\t\27\t5\v\28\0B\t\2\2=\t\29\b9\t\16\0003\v\30\0005\f\31\0B\t\3\2=\t \b9\t\16\0003\v!\0005\f\"\0B\t\3\2=\t#\bB\6\2\2=\6\16\0059\6\n\0009\6$\0064\b\4\0005\t%\0>\t\1\b5\t&\0>\t\2\b5\t'\0>\t\3\b4\t\3\0005\n(\0>\n\1\tB\6\3\2=\6$\5B\3\2\0012\0\0K\0\1\0\1\0\1\tname\vbuffer\1\0\1\tname\28nvim_lsp_signature_help\1\0\1\tname\nvsnip\1\0\1\tname\rnvim_lsp\fsources\f<S-Tab>\1\3\0\0\6i\6s\0\n<Tab>\1\3\0\0\6i\6s\0\t<CR>\1\0\1\vselect\1\fconfirm\n<C-e>\nabort\14<C-Space>\rcomplete\n<C-f>\n<C-b>\1\0\0\16scroll_docs\vinsert\vpreset\fmapping\18documentation\15completion\1\0\0\rbordered\vwindow\vconfig\fsnippet\1\0\0\vexpand\1\0\0\0\nsetup\0\0\bcmp\frequire\0", "config", "nvim-cmp") +time([[Config for nvim-cmp]], false) +-- Config for: which-key.nvim +time([[Config for which-key.nvim]], true) +try_loadstring("\27LJ\2\n;\0\0\3\0\3\0\a6\0\0\0'\2\1\0B\0\2\0029\0\2\0004\2\0\0B\0\2\1K\0\1\0\nsetup\14which-key\frequire\0", "config", "which-key.nvim") +time([[Config for which-key.nvim]], false) +-- Config for: rose-pine +time([[Config for rose-pine]], true) +try_loadstring("\27LJ\2\n9\0\0\3\0\3\0\0056\0\0\0009\0\1\0'\2\2\0B\0\2\1K\0\1\0\26colorscheme rose-pine\bcmd\bvim\0", "config", "rose-pine") +time([[Config for rose-pine]], false) +-- Config for: nvim-treesitter +time([[Config for nvim-treesitter]], true) +try_loadstring("\27LJ\2\n\1\0\0\4\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\4\0005\3\3\0=\3\5\0025\3\6\0=\3\a\2B\0\2\1K\0\1\0\14highlight\1\0\2\venable\2&additional_vim_regex_highlighting\1\21ensure_installed\1\0\2\17auto_install\2\17sync_install\1\1\5\0\0\6c\bcpp\bphp\blua\nsetup\28nvim-treesitter.configs\frequire\0", "config", "nvim-treesitter") +time([[Config for nvim-treesitter]], false) +-- Config for: nvim-lspconfig +time([[Config for nvim-lspconfig]], true) +try_loadstring("\27LJ\2\nw\0\2\6\1\6\0\f6\2\0\0009\2\1\0029\2\2\2'\4\3\0005\5\4\0B\2\3\1-\2\0\0009\2\5\2\18\4\0\0\18\5\1\0B\2\3\1K\0\1\0\3\vattach\1\0\1\fpattern\16LspAttached\tUser\23nvim_exec_autocmds\bapi\bvim\6\1\0\15\0003\0U6\0\0\0'\2\1\0B\0\2\0026\1\0\0'\3\2\0B\1\2\0029\1\3\0016\3\4\0009\3\5\0039\3\6\0039\3\a\3B\3\1\0A\1\0\0026\2\b\0009\2\t\2'\4\n\0B\2\2\2\14\0\2\0X\3\1'\2\v\0006\3\0\0'\5\f\0B\3\2\0023\4\r\0009\5\14\0009\5\15\0055\a\16\0=\4\17\a=\1\18\a5\b\22\0005\t\20\0\18\n\2\0'\v\19\0&\n\v\n=\n\21\t=\t\23\b=\b\24\aB\5\2\0019\5\25\0009\5\15\0055\a\26\0=\4\17\a=\1\18\aB\5\2\0019\5\27\0009\5\15\0055\a\28\0=\4\17\a=\1\18\aB\5\2\0019\5\29\0009\5\15\0055\a\30\0=\4\17\a=\1\18\aB\5\2\0019\5\31\0009\5\15\0055\a \0=\4\17\a=\1\18\a5\b0\0005\t\"\0005\n!\0=\n#\t5\n%\0005\v$\0=\v&\n=\n'\t5\n+\0006\v\4\0009\v(\v9\v)\v'\r*\0+\14\2\0B\v\3\2=\v,\n=\n-\t5\n.\0=\n/\t=\t1\b=\b2\aB\5\2\0012\0\0K\0\1\0\rsettings\bLua\1\0\0\14telemetry\1\0\1\venable\1\14workspace\flibrary\1\0\0\5\26nvim_get_runtime_file\bapi\16diagnostics\fglobals\1\0\0\1\2\0\0\bvim\fruntime\1\0\0\1\0\1\fversion\vLuaJIT\1\0\0\vlua_ls\1\0\0\18rust_analyzer\1\0\0\vbashls\1\0\0\rphpactor\17init_options\ncache\1\0\0\14directory\1\0\0\n/ccls\17capabilities\14on_attach\1\0\1\24single_file_support\2\nsetup\tccls\0\15nvim-navic\n/tmp/\20XDG_RUNTIME_DIR\vgetenv\aos\29make_client_capabilities\rprotocol\blsp\bvim\25default_capabilities\17cmp_nvim_lsp\14lspconfig\frequire\0", "config", "nvim-lspconfig") +time([[Config for nvim-lspconfig]], false) +-- Config for: rust-tools.nvim +time([[Config for rust-tools.nvim]], true) +try_loadstring("\27LJ\2\nZ\0\2\6\0\5\0\a6\2\0\0009\2\1\0029\2\2\2'\4\3\0005\5\4\0B\2\3\1K\0\1\0\1\0\1\fpattern\16LspAttached\tUser\23nvim_exec_autocmds\bapi\bvim\1\1\0\a\0\15\0\0226\0\0\0'\2\1\0B\0\2\0026\1\0\0'\3\2\0B\1\2\0029\1\3\0016\3\4\0009\3\5\0039\3\6\0039\3\a\3B\3\1\0A\1\0\0023\2\b\0009\3\t\0005\5\r\0005\6\n\0=\2\v\6=\1\f\6=\6\14\5B\3\2\1K\0\1\0\vserver\1\0\0\17capabilities\14on_attach\1\0\0\nsetup\0\29make_client_capabilities\rprotocol\blsp\bvim\25default_capabilities\17cmp_nvim_lsp\15rust-tools\frequire\0", "config", "rust-tools.nvim") +time([[Config for rust-tools.nvim]], false) + +_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  | 
