From e91b841e9044520c479a0e5d0b9396c8d97caa77 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 13:06:33 -0400 Subject: [PATCH 01/33] vimrc: add nofixeol --- vim/.vimrc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vim/.vimrc b/vim/.vimrc index 2c186fe..52f2ff7 100644 --- a/vim/.vimrc +++ b/vim/.vimrc @@ -6,3 +6,5 @@ set shiftwidth=4 softtabstop=4 expandtab " In these files, use 2 spaces autocmd FileType sh setlocal shiftwidth=2 softtabstop=2 + +set nofixeol From e3d10fa2b4d86a8dbbb3087a6d10d18be8f19c47 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 13:06:49 -0400 Subject: [PATCH 02/33] 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 From dd24be7b17d18cfd56f9d7e7e49f74d26ee89a11 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 13:22:25 -0400 Subject: [PATCH 03/33] neovim: Add tabline --- nvim/.config/nvim/ginit.vim | 8 ++++++++ nvim/.config/nvim/lua/plugins.lua | 8 ++++++++ nvim/.config/nvim/plugin/packer_compiled.lua | 10 ++++++++++ 3 files changed, 26 insertions(+) create mode 100644 nvim/.config/nvim/ginit.vim diff --git a/nvim/.config/nvim/ginit.vim b/nvim/.config/nvim/ginit.vim new file mode 100644 index 0000000..305266e --- /dev/null +++ b/nvim/.config/nvim/ginit.vim @@ -0,0 +1,8 @@ +" Mouse +set mouse=a + +" Set Editor Font +GuiFont! FiraCode Nerd Font Mono:h11 + +" Ligature +GuiRenderLigatures 1 diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index fc5f047..65cde73 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -21,4 +21,12 @@ return require('packer').startup(function(use) "MunifTanjim/nui.nvim", } } + + -- Tabs + use { + "nanozuki/tabby.nvim", + config = function() require("tabby").setup({ + tabline = require("tabby.presets").tab_with_top_win, + }) end, + } end) diff --git a/nvim/.config/nvim/plugin/packer_compiled.lua b/nvim/.config/nvim/plugin/packer_compiled.lua index ce65ddf..3d80b0d 100644 --- a/nvim/.config/nvim/plugin/packer_compiled.lua +++ b/nvim/.config/nvim/plugin/packer_compiled.lua @@ -103,10 +103,20 @@ _G.packer_plugins = { loaded = true, path = "/home/peter/.local/share/nvim/site/pack/packer/start/plenary.nvim", url = "https://github.com/nvim-lua/plenary.nvim" + }, + ["tabby.nvim"] = { + config = { "\27LJ\2\n3\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\ntabby\frequire\0" }, + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/tabby.nvim", + url = "https://github.com/nanozuki/tabby.nvim" } } time([[Defining packer_plugins]], false) +-- Config for: tabby.nvim +time([[Config for tabby.nvim]], true) +try_loadstring("\27LJ\2\n3\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\ntabby\frequire\0", "config", "tabby.nvim") +time([[Config for tabby.nvim]], false) if should_profile then save_profiles() end end) From 6d817ca1bfa8040ef2c76ba248391397e2e82660 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 13:51:01 -0400 Subject: [PATCH 04/33] Use bufferline for the tabline instead of tabby --- nvim/.config/nvim/.gitignore | 1 + nvim/.config/nvim/lua/plugins.lua | 16 +++++++++++++--- nvim/.config/nvim/plugin/packer_compiled.lua | 20 ++++++++++---------- 3 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 nvim/.config/nvim/.gitignore diff --git a/nvim/.config/nvim/.gitignore b/nvim/.config/nvim/.gitignore new file mode 100644 index 0000000..d7ad043 --- /dev/null +++ b/nvim/.config/nvim/.gitignore @@ -0,0 +1 @@ +plugin/ diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 65cde73..600eb6b 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -24,9 +24,19 @@ return require('packer').startup(function(use) -- Tabs use { - "nanozuki/tabby.nvim", - config = function() require("tabby").setup({ - tabline = require("tabby.presets").tab_with_top_win, + "akinsho/bufferline.nvim", tag = "v2.*", requires = "kyazdani42/nvim-web-devicons", + config = function() require("bufferline").setup({ + options = { + offsets = { + { + filetype = "neo-tree", + text = "Files", + highlight = "Directory", + text_align = "left", + } + }, + separator_style = "slant", + } }) end, } end) diff --git a/nvim/.config/nvim/plugin/packer_compiled.lua b/nvim/.config/nvim/plugin/packer_compiled.lua index 3d80b0d..12f225c 100644 --- a/nvim/.config/nvim/plugin/packer_compiled.lua +++ b/nvim/.config/nvim/plugin/packer_compiled.lua @@ -69,6 +69,12 @@ end time([[try_loadstring definition]], false) time([[Defining packer_plugins]], true) _G.packer_plugins = { + ["bufferline.nvim"] = { + config = { "\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\14highlight\14Directory\rfiletype\rneo-tree\ttext\nFiles\15text_align\tleft\nsetup\15bufferline\frequire\0" }, + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/bufferline.nvim", + url = "https://github.com/akinsho/bufferline.nvim" + }, ["gruvbox-material"] = { loaded = true, path = "/home/peter/.local/share/nvim/site/pack/packer/start/gruvbox-material", @@ -103,20 +109,14 @@ _G.packer_plugins = { loaded = true, path = "/home/peter/.local/share/nvim/site/pack/packer/start/plenary.nvim", url = "https://github.com/nvim-lua/plenary.nvim" - }, - ["tabby.nvim"] = { - config = { "\27LJ\2\n3\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\ntabby\frequire\0" }, - loaded = true, - path = "/home/peter/.local/share/nvim/site/pack/packer/start/tabby.nvim", - url = "https://github.com/nanozuki/tabby.nvim" } } time([[Defining packer_plugins]], false) --- Config for: tabby.nvim -time([[Config for tabby.nvim]], true) -try_loadstring("\27LJ\2\n3\0\0\3\0\3\0\0066\0\0\0'\2\1\0B\0\2\0029\0\2\0B\0\1\1K\0\1\0\nsetup\ntabby\frequire\0", "config", "tabby.nvim") -time([[Config for tabby.nvim]], false) +-- Config for: bufferline.nvim +time([[Config for bufferline.nvim]], true) +try_loadstring("\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\14highlight\14Directory\rfiletype\rneo-tree\ttext\nFiles\15text_align\tleft\nsetup\15bufferline\frequire\0", "config", "bufferline.nvim") +time([[Config for bufferline.nvim]], false) if should_profile then save_profiles() end end) From 4a48c7c83e90a855ed563f20705112c78500c01c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 13:56:30 -0400 Subject: [PATCH 05/33] ginit: use light Fira Code font --- nvim/.config/nvim/ginit.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvim/.config/nvim/ginit.vim b/nvim/.config/nvim/ginit.vim index 305266e..2feab05 100644 --- a/nvim/.config/nvim/ginit.vim +++ b/nvim/.config/nvim/ginit.vim @@ -2,7 +2,7 @@ set mouse=a " Set Editor Font -GuiFont! FiraCode Nerd Font Mono:h11 +GuiFont! FiraCode Nerd Font Mono:h11:l " Ligature GuiRenderLigatures 1 From ce8405840f9c3ada3cb1a39573c6b38338ff7a7e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 13:57:05 -0400 Subject: [PATCH 06/33] neovim: use font height 10.5 --- nvim/.config/nvim/ginit.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvim/.config/nvim/ginit.vim b/nvim/.config/nvim/ginit.vim index 2feab05..6f1bf80 100644 --- a/nvim/.config/nvim/ginit.vim +++ b/nvim/.config/nvim/ginit.vim @@ -2,7 +2,7 @@ set mouse=a " Set Editor Font -GuiFont! FiraCode Nerd Font Mono:h11:l +GuiFont! FiraCode Nerd Font Mono:h10.5:l " Ligature GuiRenderLigatures 1 From 28d1ed543a56e93e2095c457b5e50f0ab96b9827 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 14:08:01 -0400 Subject: [PATCH 07/33] neovim: only set line number for actual file buffers --- nvim/.config/nvim/init.vim | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index ed37cb7..8fac5af 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -18,7 +18,6 @@ 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 @@ -35,5 +34,14 @@ set autoindent " Syntax highlighting set syntax=on +" Show line numbers on non-toolbar buffers +fun! ShowNumberIfNecessary() + if &ft =~ 'neo-tree' + return + endif + setlocal nu +endfun +autocmd BufEnter * call ShowNumberIfNecessary() + " Startup commands autocmd UIEnter * Neotree From 4388ee491d79ff5cc63186b21fe47e378fdc9d0b Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 14:11:36 -0400 Subject: [PATCH 08/33] neovim: Increase default line space --- nvim/.config/nvim/ginit.vim | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nvim/.config/nvim/ginit.vim b/nvim/.config/nvim/ginit.vim index 6f1bf80..8b6f5a0 100644 --- a/nvim/.config/nvim/ginit.vim +++ b/nvim/.config/nvim/ginit.vim @@ -6,3 +6,6 @@ GuiFont! FiraCode Nerd Font Mono:h10.5:l " Ligature GuiRenderLigatures 1 + +" Increase default line space +GuiLinespace 2 From cefce76d7ab67b148dcfbc975aadba254d629dba Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 17:39:06 -0400 Subject: [PATCH 09/33] neovim: Add toggleterm --- nvim/.config/nvim/init.vim | 3 ++- nvim/.config/nvim/lua/plugins.lua | 14 ++++++++++++++ nvim/.config/nvim/plugin/packer_compiled.lua | 14 ++++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 8fac5af..2f44792 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -36,12 +36,13 @@ set syntax=on " Show line numbers on non-toolbar buffers fun! ShowNumberIfNecessary() - if &ft =~ 'neo-tree' + if &ft =~ 'neo-tree|toggleterm' return endif setlocal nu endfun autocmd BufEnter * call ShowNumberIfNecessary() +autocmd TermOpen term://* setlocal nonumber " Startup commands autocmd UIEnter * Neotree diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 600eb6b..4fc42b6 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -39,4 +39,18 @@ return require('packer').startup(function(use) } }) end, } + + -- Terminal + use { + "akinsho/toggleterm.nvim", tag = "v2.*", + config = function() require("toggleterm").setup({ + open_mapping = [[]], + persist_size = false, + shade_terminals = false, + hide_numbers = false, + winbar = { + enabled = false, + }, + }) end, + } end) diff --git a/nvim/.config/nvim/plugin/packer_compiled.lua b/nvim/.config/nvim/plugin/packer_compiled.lua index 12f225c..97860a8 100644 --- a/nvim/.config/nvim/plugin/packer_compiled.lua +++ b/nvim/.config/nvim/plugin/packer_compiled.lua @@ -70,7 +70,7 @@ time([[try_loadstring definition]], false) time([[Defining packer_plugins]], true) _G.packer_plugins = { ["bufferline.nvim"] = { - config = { "\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\14highlight\14Directory\rfiletype\rneo-tree\ttext\nFiles\15text_align\tleft\nsetup\15bufferline\frequire\0" }, + config = { "\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\rfiletype\rneo-tree\ttext\nFiles\15text_align\tleft\14highlight\14Directory\nsetup\15bufferline\frequire\0" }, loaded = true, path = "/home/peter/.local/share/nvim/site/pack/packer/start/bufferline.nvim", url = "https://github.com/akinsho/bufferline.nvim" @@ -109,13 +109,23 @@ _G.packer_plugins = { loaded = true, path = "/home/peter/.local/share/nvim/site/pack/packer/start/plenary.nvim", url = "https://github.com/nvim-lua/plenary.nvim" + }, + ["toggleterm.nvim"] = { + config = { "\27LJ\2\nš\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\vwinbar\1\0\1\fenabled\1\1\0\4\17hide_numbers\1\20shade_terminals\1\17persist_size\1\17open_mapping\n\nsetup\15toggleterm\frequire\0" }, + loaded = true, + path = "/home/peter/.local/share/nvim/site/pack/packer/start/toggleterm.nvim", + url = "https://github.com/akinsho/toggleterm.nvim" } } time([[Defining packer_plugins]], false) +-- Config for: toggleterm.nvim +time([[Config for toggleterm.nvim]], true) +try_loadstring("\27LJ\2\nš\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\vwinbar\1\0\1\fenabled\1\1\0\4\17hide_numbers\1\20shade_terminals\1\17persist_size\1\17open_mapping\n\nsetup\15toggleterm\frequire\0", "config", "toggleterm.nvim") +time([[Config for toggleterm.nvim]], false) -- Config for: bufferline.nvim time([[Config for bufferline.nvim]], true) -try_loadstring("\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\14highlight\14Directory\rfiletype\rneo-tree\ttext\nFiles\15text_align\tleft\nsetup\15bufferline\frequire\0", "config", "bufferline.nvim") +try_loadstring("\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\rfiletype\rneo-tree\ttext\nFiles\15text_align\tleft\14highlight\14Directory\nsetup\15bufferline\frequire\0", "config", "bufferline.nvim") time([[Config for bufferline.nvim]], false) if should_profile then save_profiles() end From ebcba425374e107ff93e1e6e35966257105e8f76 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 17:49:06 -0400 Subject: [PATCH 10/33] neovim: Add focus moving bindings for term and normal --- nvim/.config/nvim/init.vim | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 2f44792..418a31a 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -42,7 +42,32 @@ fun! ShowNumberIfNecessary() setlocal nu endfun autocmd BufEnter * call ShowNumberIfNecessary() -autocmd TermOpen term://* setlocal nonumber +autocmd TermOpen,TermEnter term://* setlocal nonumber + +" Terminal remapping +lua << EOF +function _G.set_terminal_keymaps() + local opts = {buffer = 0} + vim.keymap.set('t', '', [[]], opts) + vim.keymap.set('t', 'jk', [[]], opts) + vim.keymap.set('t', '', [[wincmd h]], opts) + vim.keymap.set('t', '', [[wincmd j]], opts) + vim.keymap.set('t', '', [[wincmd k]], opts) + vim.keymap.set('t', '', [[wincmd l]], opts) +end +EOF +autocmd TermOpen term://* lua set_terminal_keymaps() + +" Focus moving remaps +lua << EOF +function _G.set_focus_keymaps() + vim.keymap.set('n', '', [[wincmd h]], opts) + vim.keymap.set('n', '', [[wincmd j]], opts) + vim.keymap.set('n', '', [[wincmd k]], opts) + vim.keymap.set('n', '', [[wincmd l]], opts) +end +EOF +autocmd BufEnter * lua set_focus_keymaps() " Startup commands autocmd UIEnter * Neotree From 0b3168295c90d0c43e8bdb60d61c223c5b5e12c5 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 17:51:55 -0400 Subject: [PATCH 11/33] neovim: Fix neo-tree width --- nvim/.config/nvim/lua/plugins.lua | 11 +++++++++-- nvim/.config/nvim/plugin/packer_compiled.lua | 13 +++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 4fc42b6..d17616a 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -11,7 +11,6 @@ return require('packer').startup(function(use) use "sainnhe/gruvbox-material" -- Directory tree - use { "nvim-neo-tree/neo-tree.nvim", branch = "v2.x", @@ -19,7 +18,15 @@ return require('packer').startup(function(use) "nvim-lua/plenary.nvim", "kyazdani42/nvim-web-devicons", "MunifTanjim/nui.nvim", - } + }, + config = function() require("neo-tree").setup({ + default_component_configs = { + window = { + position = "left", + width = 64, + }, + }, + }) end, } -- Tabs diff --git a/nvim/.config/nvim/plugin/packer_compiled.lua b/nvim/.config/nvim/plugin/packer_compiled.lua index 97860a8..e58242b 100644 --- a/nvim/.config/nvim/plugin/packer_compiled.lua +++ b/nvim/.config/nvim/plugin/packer_compiled.lua @@ -70,7 +70,7 @@ time([[try_loadstring definition]], false) time([[Defining packer_plugins]], true) _G.packer_plugins = { ["bufferline.nvim"] = { - config = { "\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\rfiletype\rneo-tree\ttext\nFiles\15text_align\tleft\14highlight\14Directory\nsetup\15bufferline\frequire\0" }, + config = { "\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\15text_align\tleft\rfiletype\rneo-tree\14highlight\14Directory\ttext\nFiles\nsetup\15bufferline\frequire\0" }, loaded = true, path = "/home/peter/.local/share/nvim/site/pack/packer/start/bufferline.nvim", url = "https://github.com/akinsho/bufferline.nvim" @@ -86,6 +86,7 @@ _G.packer_plugins = { url = "https://github.com/williamboman/mason.nvim" }, ["neo-tree.nvim"] = { + config = { "\27LJ\2\nŠ\1\0\0\5\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0005\4\3\0=\4\5\3=\3\a\2B\0\2\1K\0\1\0\30default_component_configs\1\0\0\vwindow\1\0\0\1\0\2\nwidth\3(\rposition\tleft\nsetup\rneo-tree\frequire\0" }, 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" @@ -111,7 +112,7 @@ _G.packer_plugins = { url = "https://github.com/nvim-lua/plenary.nvim" }, ["toggleterm.nvim"] = { - config = { "\27LJ\2\nš\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\vwinbar\1\0\1\fenabled\1\1\0\4\17hide_numbers\1\20shade_terminals\1\17persist_size\1\17open_mapping\n\nsetup\15toggleterm\frequire\0" }, + config = { "\27LJ\2\nš\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\vwinbar\1\0\1\fenabled\1\1\0\4\20shade_terminals\1\17persist_size\1\17open_mapping\n\17hide_numbers\1\nsetup\15toggleterm\frequire\0" }, loaded = true, path = "/home/peter/.local/share/nvim/site/pack/packer/start/toggleterm.nvim", url = "https://github.com/akinsho/toggleterm.nvim" @@ -121,11 +122,15 @@ _G.packer_plugins = { time([[Defining packer_plugins]], false) -- Config for: toggleterm.nvim time([[Config for toggleterm.nvim]], true) -try_loadstring("\27LJ\2\nš\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\vwinbar\1\0\1\fenabled\1\1\0\4\17hide_numbers\1\20shade_terminals\1\17persist_size\1\17open_mapping\n\nsetup\15toggleterm\frequire\0", "config", "toggleterm.nvim") +try_loadstring("\27LJ\2\nš\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\vwinbar\1\0\1\fenabled\1\1\0\4\20shade_terminals\1\17persist_size\1\17open_mapping\n\17hide_numbers\1\nsetup\15toggleterm\frequire\0", "config", "toggleterm.nvim") time([[Config for toggleterm.nvim]], false) +-- Config for: neo-tree.nvim +time([[Config for neo-tree.nvim]], true) +try_loadstring("\27LJ\2\nŠ\1\0\0\5\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0005\4\3\0=\4\5\3=\3\a\2B\0\2\1K\0\1\0\30default_component_configs\1\0\0\vwindow\1\0\0\1\0\2\nwidth\3(\rposition\tleft\nsetup\rneo-tree\frequire\0", "config", "neo-tree.nvim") +time([[Config for neo-tree.nvim]], false) -- Config for: bufferline.nvim time([[Config for bufferline.nvim]], true) -try_loadstring("\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\rfiletype\rneo-tree\ttext\nFiles\15text_align\tleft\14highlight\14Directory\nsetup\15bufferline\frequire\0", "config", "bufferline.nvim") +try_loadstring("\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\15text_align\tleft\rfiletype\rneo-tree\14highlight\14Directory\ttext\nFiles\nsetup\15bufferline\frequire\0", "config", "bufferline.nvim") time([[Config for bufferline.nvim]], false) if should_profile then save_profiles() end From c7630d48f8a32d3b418c8642ee8f05221d77e4fa Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 18:06:45 -0400 Subject: [PATCH 12/33] neovim: Use a sane bufdel impl --- nvim/.config/nvim/lua/plugins.lua | 5 + nvim/.config/nvim/plugin/packer_compiled.lua | 142 ------------------- 2 files changed, 5 insertions(+), 142 deletions(-) delete mode 100644 nvim/.config/nvim/plugin/packer_compiled.lua diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index d17616a..8337cbb 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -10,6 +10,9 @@ return require('packer').startup(function(use) -- Gruvbox theme use "sainnhe/gruvbox-material" + -- A way saner buffer closing implementation + use "ojroques/nvim-bufdel" + -- Directory tree use { "nvim-neo-tree/neo-tree.nvim", @@ -34,6 +37,8 @@ return require('packer').startup(function(use) "akinsho/bufferline.nvim", tag = "v2.*", requires = "kyazdani42/nvim-web-devicons", config = function() require("bufferline").setup({ options = { + close_command = "BufDel %d", + right_mouse_command = "BufDel %d", offsets = { { filetype = "neo-tree", diff --git a/nvim/.config/nvim/plugin/packer_compiled.lua b/nvim/.config/nvim/plugin/packer_compiled.lua deleted file mode 100644 index e58242b..0000000 --- a/nvim/.config/nvim/plugin/packer_compiled.lua +++ /dev/null @@ -1,142 +0,0 @@ --- 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 = { - ["bufferline.nvim"] = { - config = { "\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\15text_align\tleft\rfiletype\rneo-tree\14highlight\14Directory\ttext\nFiles\nsetup\15bufferline\frequire\0" }, - loaded = true, - path = "/home/peter/.local/share/nvim/site/pack/packer/start/bufferline.nvim", - url = "https://github.com/akinsho/bufferline.nvim" - }, - ["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"] = { - config = { "\27LJ\2\nŠ\1\0\0\5\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0005\4\3\0=\4\5\3=\3\a\2B\0\2\1K\0\1\0\30default_component_configs\1\0\0\vwindow\1\0\0\1\0\2\nwidth\3(\rposition\tleft\nsetup\rneo-tree\frequire\0" }, - 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" - }, - ["toggleterm.nvim"] = { - config = { "\27LJ\2\nš\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\vwinbar\1\0\1\fenabled\1\1\0\4\20shade_terminals\1\17persist_size\1\17open_mapping\n\17hide_numbers\1\nsetup\15toggleterm\frequire\0" }, - loaded = true, - path = "/home/peter/.local/share/nvim/site/pack/packer/start/toggleterm.nvim", - url = "https://github.com/akinsho/toggleterm.nvim" - } -} - -time([[Defining packer_plugins]], false) --- Config for: toggleterm.nvim -time([[Config for toggleterm.nvim]], true) -try_loadstring("\27LJ\2\nš\1\0\0\4\0\6\0\t6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\3\0005\3\4\0=\3\5\2B\0\2\1K\0\1\0\vwinbar\1\0\1\fenabled\1\1\0\4\20shade_terminals\1\17persist_size\1\17open_mapping\n\17hide_numbers\1\nsetup\15toggleterm\frequire\0", "config", "toggleterm.nvim") -time([[Config for toggleterm.nvim]], false) --- Config for: neo-tree.nvim -time([[Config for neo-tree.nvim]], true) -try_loadstring("\27LJ\2\nŠ\1\0\0\5\0\b\0\v6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0005\4\3\0=\4\5\3=\3\a\2B\0\2\1K\0\1\0\30default_component_configs\1\0\0\vwindow\1\0\0\1\0\2\nwidth\3(\rposition\tleft\nsetup\rneo-tree\frequire\0", "config", "neo-tree.nvim") -time([[Config for neo-tree.nvim]], false) --- Config for: bufferline.nvim -time([[Config for bufferline.nvim]], true) -try_loadstring("\27LJ\2\nÄ\1\0\0\6\0\b\0\r6\0\0\0'\2\1\0B\0\2\0029\0\2\0005\2\6\0005\3\4\0004\4\3\0005\5\3\0>\5\1\4=\4\5\3=\3\a\2B\0\2\1K\0\1\0\foptions\1\0\0\foffsets\1\0\1\20separator_style\nslant\1\0\4\15text_align\tleft\rfiletype\rneo-tree\14highlight\14Directory\ttext\nFiles\nsetup\15bufferline\frequire\0", "config", "bufferline.nvim") -time([[Config for bufferline.nvim]], 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 From 3f710f51de52624d68d873419e949cc678c39dbe Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 20:05:42 -0400 Subject: [PATCH 13/33] neovim: Configure status line --- nvim/.config/nvim/lua/plugins.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 8337cbb..9255f71 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -52,6 +52,19 @@ return require('packer').startup(function(use) }) end, } + -- Status line + use { + "nvim-lualine/lualine.nvim", requires = { 'kyazdani42/nvim-web-devicons', opt = true }, + config = function() require("lualine").setup({ + options = { + theme = "gruvbox", + disabled_filetypes = { + statusline = { "neo-tree" }, + }, + }, + }) end, + } + -- Terminal use { "akinsho/toggleterm.nvim", tag = "v2.*", From c2b952b9ce06db91d34cb8d817578aa115544636 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 20:16:54 -0400 Subject: [PATCH 14/33] neovim: Use hard contrast for gruvbox --- nvim/.config/nvim/init.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 418a31a..c149697 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -10,7 +10,7 @@ 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' +let g:gruvbox_material_background = 'hard' " For better performance let g:gruvbox_material_better_performance = 1 colorscheme gruvbox-material From 82abed7e258b92be171080eebe20af71859f689d Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 20:28:01 -0400 Subject: [PATCH 15/33] neovim: Switch to the regular gruvbox theme --- nvim/.config/nvim/init.vim | 8 +------- nvim/.config/nvim/lua/plugins.lua | 9 ++++++++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index c149697..892e99a 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -7,13 +7,7 @@ if has('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 = 'hard' -" For better performance -let g:gruvbox_material_better_performance = 1 -colorscheme gruvbox-material +colorscheme gruvbox " Miscellaneous boilerplate set nocompatible " Disable vi compatibility diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 9255f71..1912faf 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -8,7 +8,14 @@ return require('packer').startup(function(use) use "williamboman/mason.nvim" -- Gruvbox theme - use "sainnhe/gruvbox-material" + use { + "ellisonleao/gruvbox.nvim", + config = function() require("gruvbox").setup({ + bold = false, + italic = true, + strikethrough = true, + }) end, + } -- A way saner buffer closing implementation use "ojroques/nvim-bufdel" From b128903bfb42c76438407225910dfc5694d86b4a Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 20:41:07 -0400 Subject: [PATCH 16/33] neovim: Tweak gruvbox theme --- nvim/.config/nvim/init.vim | 3 ++- nvim/.config/nvim/lua/plugins.lua | 16 +++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 892e99a..b062cd5 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -1,12 +1,13 @@ " Packer plugins lua require('plugins') -" Gruvbox Theme +" Gruvbox Theme (colorscheme applied from plugins.lua) if has('termguicolors') set termguicolors endif " For dark version. set background=dark +" We need to apply this here too to make sure the startup components work colorscheme gruvbox " Miscellaneous boilerplate diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 1912faf..9ec87a5 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -10,11 +10,17 @@ return require('packer').startup(function(use) -- Gruvbox theme use { "ellisonleao/gruvbox.nvim", - config = function() require("gruvbox").setup({ - bold = false, - italic = true, - strikethrough = true, - }) end, + config = function() + require("gruvbox").setup({ + bold = false, + italic = true, + strikethrough = true, + overrides = { + Directory = { link = "GruvboxFg2" }, + }, + }) + vim.cmd("colorscheme gruvbox") + end, } -- A way saner buffer closing implementation From bf4ca036acd7e027724de3f70b6d1f0ae7e1ba50 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sun, 7 Aug 2022 22:59:34 -0400 Subject: [PATCH 17/33] neovim: Configure LSP for Rust --- nvim/.config/nvim/init.vim | 1 + nvim/.config/nvim/lua/mylsp.lua | 81 +++++++++++++++++++++++++++++++ nvim/.config/nvim/lua/plugins.lua | 10 +++- 3 files changed, 90 insertions(+), 2 deletions(-) create mode 100644 nvim/.config/nvim/lua/mylsp.lua diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index b062cd5..91aef1d 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -1,5 +1,6 @@ " Packer plugins lua require('plugins') +lua require('mylsp') " Gruvbox Theme (colorscheme applied from plugins.lua) if has('termguicolors') diff --git a/nvim/.config/nvim/lua/mylsp.lua b/nvim/.config/nvim/lua/mylsp.lua new file mode 100644 index 0000000..d60bef6 --- /dev/null +++ b/nvim/.config/nvim/lua/mylsp.lua @@ -0,0 +1,81 @@ +-- Custom LSP configuration +-- This cannot be done in the config function from Packer +-- because it somehow does not work well with make_client_capabilities() +require("mason-lspconfig").setup({ + ensure_installed = { "rust_analyzer" } +}) + +local opts = { noremap=true, silent=true } +vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) +vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) + +local cmp = require 'cmp' +cmp.setup({ + mapping = { + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }, + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + else + fallback() + end + end, { 'i', 's' }), + [''] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + else + fallback() + end + end, { 'i', 's' }), + }, + sources = { + { name = 'nvim_lsp' }, + }, +}) + +-- Rewrite LSP capabilities (to enable completion) +local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + +-- Use an on_attach function to only map the following keys +-- after the language server attaches to the current buffer +local on_attach = function(client, bufnr) + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local bufopts = { noremap=true, silent=true, buffer=bufnr } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) + vim.keymap.set('n', 'wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) + vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) + vim.keymap.set('n', 'f', vim.lsp.buf.formatting, bufopts) +end + +require('lspconfig')['rust_analyzer'].setup({ + on_attach = on_attach, + settings = { + ['rust_analyzer'] = { + cargo = { + autoreload = true, + buildScripts = { enable = true }, + }, + }, + }, + capabilities = capabilities, +}) diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 9ec87a5..4d0ec50 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -4,8 +4,14 @@ return require('packer').startup(function(use) -- Packer can manage itself use 'wbthomason/packer.nvim' - -- External dependencies management - use "williamboman/mason.nvim" + -- LSP stuff + use { + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + "neovim/nvim-lspconfig", + "hrsh7th/nvim-cmp", + "hrsh7th/cmp-nvim-lsp", + } -- Gruvbox theme use { From ca122389bd9b6a1886c0d8e5494d3a4cc932b063 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 09:46:53 -0400 Subject: [PATCH 18/33] neovim: Remove line spacing This breaks powerline fonts --- nvim/.config/nvim/ginit.vim | 3 --- 1 file changed, 3 deletions(-) diff --git a/nvim/.config/nvim/ginit.vim b/nvim/.config/nvim/ginit.vim index 8b6f5a0..6f1bf80 100644 --- a/nvim/.config/nvim/ginit.vim +++ b/nvim/.config/nvim/ginit.vim @@ -6,6 +6,3 @@ GuiFont! FiraCode Nerd Font Mono:h10.5:l " Ligature GuiRenderLigatures 1 - -" Increase default line space -GuiLinespace 2 From ad5f634ba5d8ba9dfd7afb5decfd6a61ad82f791 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 09:47:40 -0400 Subject: [PATCH 19/33] neovim: Increase line length to 128 --- nvim/.config/nvim/init.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 91aef1d..18f543d 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -14,7 +14,7 @@ colorscheme gruvbox " Miscellaneous boilerplate set nocompatible " Disable vi compatibility set ignorecase -set cc=80 " 80 characters +set cc=128 " 128 characters set noswapfile set backupdir=~/.cache/nvim set cursorline " Highlight current line From 34d4f6f109bd0f0e821f59e5bb448478aa6da67d Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 09:48:32 -0400 Subject: [PATCH 20/33] neovim: Stop it from "fixing" end of line --- nvim/.config/nvim/init.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 18f543d..a521cc7 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -19,6 +19,7 @@ set noswapfile set backupdir=~/.cache/nvim set cursorline " Highlight current line set mouse=a " Mouse +set nofixendofline " Default indentation set softtabstop=4 From 9f75d943b3adb87a74dca3bc9a5a08567d11ef49 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 15:18:04 -0400 Subject: [PATCH 21/33] neovim: Re-toggle the neo-tree sidebar when terminal is open --- nvim/.config/nvim/lua/plugins.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 4d0ec50..8c9d1e2 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -95,6 +95,14 @@ return require('packer').startup(function(use) winbar = { enabled = false, }, + on_open = function() + -- Toggle the neo-tree file view such that it is + -- always full height; This is a dirty workaround + local manager = require('neo-tree.sources.manager') + if manager.close('filesystem') then + manager.show('filesystem') + end + end, }) end, } end) From ebb90199fcfa68fd5690da2be6029ca9f5e1368c Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 15:19:57 -0400 Subject: [PATCH 22/33] neovim: Fix neo-tree window width config --- nvim/.config/nvim/lua/plugins.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 8c9d1e2..424989e 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -42,11 +42,9 @@ return require('packer').startup(function(use) "MunifTanjim/nui.nvim", }, config = function() require("neo-tree").setup({ - default_component_configs = { - window = { - position = "left", - width = 64, - }, + window = { + position = "left", + width = 36, }, }) end, } From 3758670e5b7963c70da22301dbbeb59552cf9c04 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 15:25:03 -0400 Subject: [PATCH 23/33] neovim: Start Neotree in the config function ...so that our config is actually applied when we start --- nvim/.config/nvim/init.vim | 3 --- nvim/.config/nvim/lua/plugins.lua | 15 +++++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index a521cc7..3fb65cb 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -65,6 +65,3 @@ function _G.set_focus_keymaps() end EOF autocmd BufEnter * lua set_focus_keymaps() - -" Startup commands -autocmd UIEnter * Neotree diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 424989e..fcdd689 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -41,12 +41,15 @@ return require('packer').startup(function(use) "kyazdani42/nvim-web-devicons", "MunifTanjim/nui.nvim", }, - config = function() require("neo-tree").setup({ - window = { - position = "left", - width = 36, - }, - }) end, + config = function() + require("neo-tree").setup({ + window = { + position = "left", + width = 36, + }, + }) + require("neo-tree.sources.manager").show("filesystem") + end, } -- Tabs From a662702be3d911a110111365cd00db85ec139213 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 17:22:59 -0400 Subject: [PATCH 24/33] neovim: Remove focus remaps These can be done by prefixing with Ctrl+W --- nvim/.config/nvim/init.vim | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 3fb65cb..73e1060 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -54,14 +54,3 @@ function _G.set_terminal_keymaps() end EOF autocmd TermOpen term://* lua set_terminal_keymaps() - -" Focus moving remaps -lua << EOF -function _G.set_focus_keymaps() - vim.keymap.set('n', '', [[wincmd h]], opts) - vim.keymap.set('n', '', [[wincmd j]], opts) - vim.keymap.set('n', '', [[wincmd k]], opts) - vim.keymap.set('n', '', [[wincmd l]], opts) -end -EOF -autocmd BufEnter * lua set_focus_keymaps() From d94b3b6aec303f8f1dcd39f59ca8f6f1360ad412 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 18:42:56 -0400 Subject: [PATCH 25/33] neovim: Configure Minimap The Minimap plugin has to be activated on window resize, otherwise neovim-qt will cause issues during its initial resizing --- nvim/.config/nvim/init.vim | 22 ++++++++++++++++++++-- nvim/.config/nvim/lua/plugins.lua | 3 +++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 73e1060..3b8401b 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -31,15 +31,33 @@ set autoindent " Syntax highlighting set syntax=on +let g:special_filetype_pattern = 'neo-tree\|toggleterm\|minimap' + " Show line numbers on non-toolbar buffers fun! ShowNumberIfNecessary() - if &ft =~ 'neo-tree|toggleterm' + if &ft =~ g:special_filetype_pattern return endif setlocal nu endfun autocmd BufEnter * call ShowNumberIfNecessary() -autocmd TermOpen,TermEnter term://* setlocal nonumber + +" Minimap +fun! ResizeMinimap() + if &ft =~ g:special_filetype_pattern + return + endif + if index(g:minimap_block_filetypes, &ft) >= 0 + return + endif + if index(g:minimap_block_buftypes, &bt) >= 0 + return + endif + MinimapClose + Minimap +endfun +let g:minimap_width = 10 +autocmd VimResized * call ResizeMinimap() " Terminal remapping lua << EOF diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index fcdd689..b6f878c 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -32,6 +32,9 @@ return require('packer').startup(function(use) -- A way saner buffer closing implementation use "ojroques/nvim-bufdel" + -- Minimap + use "wfxr/minimap.vim" + -- Directory tree use { "nvim-neo-tree/neo-tree.nvim", From 51ac294e33d9cd908240c625a562ab710e1bfd8f Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 19:16:07 -0400 Subject: [PATCH 26/33] neovim: Colorize git diff --- nvim/.config/nvim/init.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 3b8401b..a4aefe5 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -56,6 +56,7 @@ fun! ResizeMinimap() MinimapClose Minimap endfun +let g:minimap_git_colors = 1 let g:minimap_width = 10 autocmd VimResized * call ResizeMinimap() From da298002ff4442c64a885ab3ba63c3c258314edb Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 20:53:10 -0400 Subject: [PATCH 27/33] neovim: Reject focus in Minimap --- nvim/.config/nvim/init.vim | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index a4aefe5..0614d41 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -57,9 +57,26 @@ fun! ResizeMinimap() Minimap endfun let g:minimap_git_colors = 1 -let g:minimap_width = 10 +let g:minimap_width = 16 autocmd VimResized * call ResizeMinimap() +" Prevent Minimap from being focused +lua << EOF +function _G.reject_minimap_focus() + local mmwinnr = vim.fn.bufwinnr("-MINIMAP-") + + if mmwinnr == -1 then + return + end + + if vim.fn.winnr() == mmwinnr then + -- Go to the other window. + vim.api.nvim_command("wincmd t") + end +end +EOF +autocmd WinEnter * lua reject_minimap_focus() + " Terminal remapping lua << EOF function _G.set_terminal_keymaps() From 031b4ab737438d8c8ba099310d10ec03bab8b620 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 21:51:05 -0400 Subject: [PATCH 28/33] neovim: Move lsp initialization to after/plugin --- nvim/.config/nvim/.gitignore | 1 + nvim/.config/nvim/{lua/mylsp.lua => after/plugin/lsp.lua} | 3 +++ nvim/.config/nvim/init.vim | 1 - 3 files changed, 4 insertions(+), 1 deletion(-) rename nvim/.config/nvim/{lua/mylsp.lua => after/plugin/lsp.lua} (97%) diff --git a/nvim/.config/nvim/.gitignore b/nvim/.config/nvim/.gitignore index d7ad043..00ef99c 100644 --- a/nvim/.config/nvim/.gitignore +++ b/nvim/.config/nvim/.gitignore @@ -1 +1,2 @@ plugin/ +!after/plugin/ diff --git a/nvim/.config/nvim/lua/mylsp.lua b/nvim/.config/nvim/after/plugin/lsp.lua similarity index 97% rename from nvim/.config/nvim/lua/mylsp.lua rename to nvim/.config/nvim/after/plugin/lsp.lua index d60bef6..80c660e 100644 --- a/nvim/.config/nvim/lua/mylsp.lua +++ b/nvim/.config/nvim/after/plugin/lsp.lua @@ -75,6 +75,9 @@ require('lspconfig')['rust_analyzer'].setup({ autoreload = true, buildScripts = { enable = true }, }, + procMacro = { + enable = true, + }, }, }, capabilities = capabilities, diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 0614d41..372ce41 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -1,6 +1,5 @@ " Packer plugins lua require('plugins') -lua require('mylsp') " Gruvbox Theme (colorscheme applied from plugins.lua) if has('termguicolors') From a898b5e555323233a7f0f0ee77344c21176b0117 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 22:20:23 -0400 Subject: [PATCH 29/33] neovim: Reduce LSP log level --- nvim/.config/nvim/after/plugin/lsp.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nvim/.config/nvim/after/plugin/lsp.lua b/nvim/.config/nvim/after/plugin/lsp.lua index 80c660e..13463f0 100644 --- a/nvim/.config/nvim/after/plugin/lsp.lua +++ b/nvim/.config/nvim/after/plugin/lsp.lua @@ -82,3 +82,8 @@ require('lspconfig')['rust_analyzer'].setup({ }, capabilities = capabilities, }) + +-- TODO: Set this to OFF when neovim supports it (0.8 release probably) +-- rust_analyzer spits out spurious errors with build.rs outputs +-- likely due to a race condition between the VFS initialization and the diagnostics +vim.lsp.set_log_level("error") From cf88166128dc8e2dd356938b9cfbe3d33768acdf Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 22:35:50 -0400 Subject: [PATCH 30/33] neovim: Use system clipboard --- nvim/.config/nvim/init.vim | 1 + 1 file changed, 1 insertion(+) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 372ce41..0a27ec2 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -19,6 +19,7 @@ set backupdir=~/.cache/nvim set cursorline " Highlight current line set mouse=a " Mouse set nofixendofline +set clipboard+=unnamedplus " System clipboard " Default indentation set softtabstop=4 From c268319adbb718f6ad311bbb3f6b17beb81fd97e Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Mon, 8 Aug 2022 22:39:27 -0400 Subject: [PATCH 31/33] neovim: Add indentation guide --- nvim/.config/nvim/lua/plugins.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index b6f878c..530533f 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -35,6 +35,9 @@ return require('packer').startup(function(use) -- Minimap use "wfxr/minimap.vim" + -- Indentation guide + use "lukas-reineke/indent-blankline.nvim" + -- Directory tree use { "nvim-neo-tree/neo-tree.nvim", From 93936d00aed94114876a75d21141a75dbc72638a Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Fri, 12 Aug 2022 11:00:34 -0400 Subject: [PATCH 32/33] neovim: Add auto-indentation plugin --- nvim/.config/nvim/lua/plugins.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 530533f..2c96eb8 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -38,6 +38,14 @@ return require('packer').startup(function(use) -- Indentation guide use "lukas-reineke/indent-blankline.nvim" + -- Indentation autodetection + use { + "nmac427/guess-indent.nvim", + config = function() + require("guess-indent").setup() + end + } + -- Directory tree use { "nvim-neo-tree/neo-tree.nvim", From 9e5306707872672787ed653469a7792dd16f3c6d Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Sat, 13 Aug 2022 21:59:10 -0400 Subject: [PATCH 33/33] neovin: Remove minimap and use a simplistic scrollbar ...with LSP integration, of course --- nvim/.config/nvim/init.vim | 35 ------------------------------- nvim/.config/nvim/lua/plugins.lua | 11 +++++++--- 2 files changed, 8 insertions(+), 38 deletions(-) diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 0a27ec2..afa0aaa 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -42,41 +42,6 @@ fun! ShowNumberIfNecessary() endfun autocmd BufEnter * call ShowNumberIfNecessary() -" Minimap -fun! ResizeMinimap() - if &ft =~ g:special_filetype_pattern - return - endif - if index(g:minimap_block_filetypes, &ft) >= 0 - return - endif - if index(g:minimap_block_buftypes, &bt) >= 0 - return - endif - MinimapClose - Minimap -endfun -let g:minimap_git_colors = 1 -let g:minimap_width = 16 -autocmd VimResized * call ResizeMinimap() - -" Prevent Minimap from being focused -lua << EOF -function _G.reject_minimap_focus() - local mmwinnr = vim.fn.bufwinnr("-MINIMAP-") - - if mmwinnr == -1 then - return - end - - if vim.fn.winnr() == mmwinnr then - -- Go to the other window. - vim.api.nvim_command("wincmd t") - end -end -EOF -autocmd WinEnter * lua reject_minimap_focus() - " Terminal remapping lua << EOF function _G.set_terminal_keymaps() diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 2c96eb8..42040f1 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -32,9 +32,6 @@ return require('packer').startup(function(use) -- A way saner buffer closing implementation use "ojroques/nvim-bufdel" - -- Minimap - use "wfxr/minimap.vim" - -- Indentation guide use "lukas-reineke/indent-blankline.nvim" @@ -46,6 +43,14 @@ return require('packer').startup(function(use) end } + -- Scrollbar + use { + "petertriho/nvim-scrollbar", + config = function() + require("scrollbar").setup() + end, + } + -- Directory tree use { "nvim-neo-tree/neo-tree.nvim",