From e3d10fa2b4d86a8dbbb3087a6d10d18be8f19c47 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 13:06:49 -0400 Subject: [PATCH] Initial NeoVim config --- nvim/.config/nvim/init.vim | 39 +++++++ nvim/.config/nvim/lua/plugins.lua | 24 ++++ nvim/.config/nvim/plugin/packer_compiled.lua | 117 +++++++++++++++++++ 3 files changed, 180 insertions(+) create mode 100644 nvim/.config/nvim/init.vim create mode 100644 nvim/.config/nvim/lua/plugins.lua create mode 100644 nvim/.config/nvim/plugin/packer_compiled.lua diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim new file mode 100644 index 0000000..ed37cb7 --- /dev/null +++ b/nvim/.config/nvim/init.vim @@ -0,0 +1,39 @@ +" Packer plugins +lua require('plugins') + +" Gruvbox Theme +if has('termguicolors') + set termguicolors +endif +" For dark version. +set background=dark +" Set contrast. +" This configuration option should be placed before `colorscheme gruvbox-material`. +" Available values: 'hard', 'medium'(default), 'soft' +let g:gruvbox_material_background = 'medium' +" For better performance +let g:gruvbox_material_better_performance = 1 +colorscheme gruvbox-material + +" Miscellaneous boilerplate +set nocompatible " Disable vi compatibility +set ignorecase +set nu " Line numbers +set cc=80 " 80 characters +set noswapfile +set backupdir=~/.cache/nvim +set cursorline " Highlight current line +set mouse=a " Mouse + +" Default indentation +set softtabstop=4 +set tabstop=4 +set shiftwidth=4 +set expandtab +set autoindent + +" Syntax highlighting +set syntax=on + +" Startup commands +autocmd UIEnter * Neotree diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua new file mode 100644 index 0000000..fc5f047 --- /dev/null +++ b/nvim/.config/nvim/lua/plugins.lua @@ -0,0 +1,24 @@ +vim.cmd [[packadd packer.nvim]] + +return require('packer').startup(function(use) + -- Packer can manage itself + use 'wbthomason/packer.nvim' + + -- External dependencies management + use "williamboman/mason.nvim" + + -- Gruvbox theme + use "sainnhe/gruvbox-material" + + -- Directory tree + + use { + "nvim-neo-tree/neo-tree.nvim", + branch = "v2.x", + requires = { + "nvim-lua/plenary.nvim", + "kyazdani42/nvim-web-devicons", + "MunifTanjim/nui.nvim", + } + } +end) diff --git a/nvim/.config/nvim/plugin/packer_compiled.lua b/nvim/.config/nvim/plugin/packer_compiled.lua new file mode 100644 index 0000000..ce65ddf --- /dev/null +++ b/nvim/.config/nvim/plugin/packer_compiled.lua @@ -0,0 +1,117 @@ +-- 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/peter/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/peter/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/peter/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/peter/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/peter/.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 = { + ["gruvbox-material"] = { + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/gruvbox-material", + url = "https://github.com/sainnhe/gruvbox-material" + }, + ["mason.nvim"] = { + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/mason.nvim", + url = "https://github.com/williamboman/mason.nvim" + }, + ["neo-tree.nvim"] = { + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/neo-tree.nvim", + url = "https://github.com/nvim-neo-tree/neo-tree.nvim" + }, + ["nui.nvim"] = { + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/nui.nvim", + url = "https://github.com/MunifTanjim/nui.nvim" + }, + ["nvim-web-devicons"] = { + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/nvim-web-devicons", + url = "https://github.com/kyazdani42/nvim-web-devicons" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/plenary.nvim", + url = "https://github.com/nvim-lua/plenary.nvim" + } +} + +time([[Defining packer_plugins]], 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