From aab02f48a6e17b41fd4230f85e468b7cba62e375 Mon Sep 17 00:00:00 2001 From: Luca Bilke <bilke@tralios.de> Date: Wed, 21 Sep 2022 19:32:42 +0200 Subject: [PATCH] start work on nvim config (moving away from lunarvim) --- .config/nvim/init.lua | 4 + .config/nvim/lua/autocmds.lua | 53 +++++++ .config/nvim/lua/keybinds.lua | 1 + .config/nvim/lua/options.lua | 10 ++ .config/nvim/lua/plugins.lua | 56 +++++++ .config/nvim/plugin/packer_compiled.lua | 195 ++++++++++++++++++++++++ 6 files changed, 319 insertions(+) create mode 100644 .config/nvim/init.lua create mode 100644 .config/nvim/lua/autocmds.lua create mode 100644 .config/nvim/lua/keybinds.lua create mode 100644 .config/nvim/lua/options.lua create mode 100644 .config/nvim/lua/plugins.lua create mode 100644 .config/nvim/plugin/packer_compiled.lua diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 00000000..ce7bddd6 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,4 @@ +require('plugins') +require('options') +require('keybinds') +require('autocmds') diff --git a/.config/nvim/lua/autocmds.lua b/.config/nvim/lua/autocmds.lua new file mode 100644 index 00000000..7a38bfec --- /dev/null +++ b/.config/nvim/lua/autocmds.lua @@ -0,0 +1,53 @@ +vim.api.nvim_create_autocmd({ "BufEnter", "FocusGained", "InsertLeave", "WinEnter" }, { + pattern = "*", + command="if &nu && mode() != \"i\" | set rnu | endif" +}) + +vim.api.nvim_create_autocmd({ "BufLeave", "FocusLost", "InsertEnter", "WinLeave" }, { + pattern = "*", + command="if &nu | set nornu | endif" +}) + +vim.api.nvim_create_autocmd("FileType", { + pattern = "zsh", + callback = function() + require("nvim-treesitter.highlight").attach(0, "bash") + end +}) + +vim.api.nvim_create_autocmd("ColorScheme", { + pattern = "*", + command = "hi FloatermBorder guibg=none" +}) + +vim.api.nvim_create_autocmd("BufWritePost", { + pattern = { "bm-files", "bm-dirs" }, + command = "!shortcuts" +}) + +vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, { + pattern = { "Xresources", "Xdefaults", "xresources", "xdefaults" }, + command = "set filetype=xdefaults" +}) + +vim.api.nvim_create_autocmd("BufWritePost", { + pattern = { "Xresources", "Xdefaults", "xresources", "xdefaults" }, + command = "!xrdb %" +}) + +vim.api.nvim_create_autocmd("BufWritePost", { + pattern = "~/.local/src/dwmblocks/config.h", + command = "!cd ~/.local/src/dwmblocks/; sudo make install && { killall -q dwmblocks;setsid -f dwmblocks }" +}) + +vim.api.nvim_create_autocmd({ "BufDelete", "VimLeave" }, { + pattern = "*.tex", + command = "!texclear \"%:p\"" +}) + +vim.cmd([[ + augroup packer_user_config + autocmd! + autocmd BufWritePost plugins.lua source <afile> | PackerCompile + augroup end +]]) diff --git a/.config/nvim/lua/keybinds.lua b/.config/nvim/lua/keybinds.lua new file mode 100644 index 00000000..affdca4e --- /dev/null +++ b/.config/nvim/lua/keybinds.lua @@ -0,0 +1 @@ +vim.g.mapleader = "space" diff --git a/.config/nvim/lua/options.lua b/.config/nvim/lua/options.lua new file mode 100644 index 00000000..f1f5af20 --- /dev/null +++ b/.config/nvim/lua/options.lua @@ -0,0 +1,10 @@ +vim.opt.undodir = vim.fn.stdpath "cache" .. "/undo" +vim.opt.undofile = true +vim.opt.titlestring = " %t" +vim.opt.termguicolors = true +vim.opt.timeoutlen = 500 +vim.opt.foldmethod = "expr" +vim.opt.foldlevelstart = 99 +vim.opt.foldexpr = "nvim_treesitter#foldexpr()" + +vim.g.tokyonight_style = "night" diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua new file mode 100644 index 00000000..042ce828 --- /dev/null +++ b/.config/nvim/lua/plugins.lua @@ -0,0 +1,56 @@ +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 'williamboman/mason.nvim' + use { 'williamboman/mason-lspconfig.nvim', + requires = 'neovim/nvim-lspconfig' + } + + use 'fladson/vim-kitty' + use 'folke/lua-dev.nvim' + use 'tpope/vim-surround' + use 'tpope/vim-repeat' + use 'folke/tokyonight.nvim' + use 'vimwiki/vimwiki' + use { 'nvim-treesitter/nvim-treesitter', + run = ':TSUpdate' + } + use { 'felipec/vim-sanegx', + event = 'BufRead', + } + use { 'ptzz/lf.vim', + requires = 'voldikss/vim-floaterm', + } + use { 'sindrets/diffview.nvim', + requires = 'nvim-lua/plenary.nvim', + event = 'BufRead' + } + use { 'norcalli/nvim-colorizer.lua', + config = function() + require('colorizer').setup({ '*' }, { + RGB = true, -- #RGB hex codes + RRGGBB = true, -- #RRGGBB hex codes + RRGGBBAA = true, -- #RRGGBBAA hex codes + rgb_fn = true, -- CSS rgb() and rgba() functions + hsl_fn = true, -- CSS hsl() and hsla() functions + css = true, -- Enable all CSS features: rgb_fn, hsl_fn, names, RGB, RRGGBB + css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn + }) + end, + } + if packer_bootstrap then + require('packer').sync() + end +end) diff --git a/.config/nvim/plugin/packer_compiled.lua b/.config/nvim/plugin/packer_compiled.lua new file mode 100644 index 00000000..4b6dae8e --- /dev/null +++ b/.config/nvim/plugin/packer_compiled.lua @@ -0,0 +1,195 @@ +-- 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/luca/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?.lua;/home/luca/.cache/nvim/packer_hererocks/2.1.0-beta3/share/lua/5.1/?/init.lua;/home/luca/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?.lua;/home/luca/.cache/nvim/packer_hererocks/2.1.0-beta3/lib/luarocks/rocks-5.1/?/init.lua" +local install_cpath_pattern = "/home/luca/.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 = { + ["diffview.nvim"] = { + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/luca/.local/share/nvim/site/pack/packer/opt/diffview.nvim", + url = "https://github.com/sindrets/diffview.nvim" + }, + ["lf.vim"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/lf.vim", + url = "https://github.com/ptzz/lf.vim" + }, + ["lua-dev.nvim"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/lua-dev.nvim", + url = "https://github.com/folke/lua-dev.nvim" + }, + ["mason-lspconfig.nvim"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/mason-lspconfig.nvim", + url = "https://github.com/williamboman/mason-lspconfig.nvim" + }, + ["mason.nvim"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/mason.nvim", + url = "https://github.com/williamboman/mason.nvim" + }, + ["nvim-colorizer.lua"] = { + config = { "\27LJ\2\n|\0\0\4\0\5\0\b6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0B\0\3\1K\0\1\0\1\0\a\bRGB\2\vcss_fn\2\bcss\2\vhsl_fn\2\vrgb_fn\2\rRRGGBBAA\2\vRRGGBB\2\1\2\0\0\6*\nsetup\14colorizer\frequire\0" }, + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/nvim-colorizer.lua", + url = "https://github.com/norcalli/nvim-colorizer.lua" + }, + ["nvim-lspconfig"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/nvim-lspconfig", + url = "https://github.com/neovim/nvim-lspconfig" + }, + ["nvim-treesitter"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/nvim-treesitter", + url = "https://github.com/nvim-treesitter/nvim-treesitter" + }, + ["packer.nvim"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/packer.nvim", + url = "https://github.com/wbthomason/packer.nvim" + }, + ["plenary.nvim"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/plenary.nvim", + url = "https://github.com/nvim-lua/plenary.nvim" + }, + ["tokyonight.nvim"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/tokyonight.nvim", + url = "https://github.com/folke/tokyonight.nvim" + }, + ["vim-floaterm"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/vim-floaterm", + url = "https://github.com/voldikss/vim-floaterm" + }, + ["vim-kitty"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/vim-kitty", + url = "https://github.com/fladson/vim-kitty" + }, + ["vim-repeat"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/vim-repeat", + url = "https://github.com/tpope/vim-repeat" + }, + ["vim-sanegx"] = { + loaded = false, + needs_bufread = false, + only_cond = false, + path = "/home/luca/.local/share/nvim/site/pack/packer/opt/vim-sanegx", + url = "https://github.com/felipec/vim-sanegx" + }, + ["vim-surround"] = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/vim-surround", + url = "https://github.com/tpope/vim-surround" + }, + vimwiki = { + loaded = true, + path = "/home/luca/.local/share/nvim/site/pack/packer/start/vimwiki", + url = "https://github.com/vimwiki/vimwiki" + } +} + +time([[Defining packer_plugins]], false) +-- Config for: nvim-colorizer.lua +time([[Config for nvim-colorizer.lua]], true) +try_loadstring("\27LJ\2\n|\0\0\4\0\5\0\b6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0B\0\3\1K\0\1\0\1\0\a\bRGB\2\vcss_fn\2\bcss\2\vhsl_fn\2\vrgb_fn\2\rRRGGBBAA\2\vRRGGBB\2\1\2\0\0\6*\nsetup\14colorizer\frequire\0", "config", "nvim-colorizer.lua") +time([[Config for nvim-colorizer.lua]], false) +vim.cmd [[augroup packer_load_aucmds]] +vim.cmd [[au!]] + -- Event lazy-loads +time([[Defining lazy-load event autocommands]], true) +vim.cmd [[au BufRead * ++once lua require("packer.load")({'diffview.nvim', 'vim-sanegx'}, { event = "BufRead *" }, _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