From ca271dd50cdf3b0e47de11dbb520cf7464845d8e Mon Sep 17 00:00:00 2001 From: Fernando Schauenburg Date: Tue, 4 Oct 2022 23:40:53 +0200 Subject: [PATCH] vim: move configs to after/plugin/*.lua -> less packer dependence --- config/nvim/after/plugin/indent-blankline.lua | 7 + config/nvim/after/plugin/nvim-tree.lua | 27 +++ .../nvim/after/plugin/rainbow_parentheses.lua | 5 + config/nvim/after/plugin/tabular.lua | 4 + config/nvim/after/plugin/telescope.lua | 96 +++++++++ .../after/plugin/vim-better-whitespace.lua | 6 + config/nvim/after/plugin/vim-fugitive.lua | 3 + config/nvim/after/plugin/vim-json.lua | 6 + config/nvim/after/plugin/virt-column.lua | 14 ++ config/nvim/init.lua | 1 + config/nvim/lua/fs/lualine.lua | 4 +- config/nvim/lua/fs/plugins.lua | 185 ++---------------- config/nvim/lua/fs/telescope.lua | 103 ---------- config/nvim/lua/fs/theme.lua | 3 + 14 files changed, 195 insertions(+), 269 deletions(-) create mode 100644 config/nvim/after/plugin/indent-blankline.lua create mode 100644 config/nvim/after/plugin/nvim-tree.lua create mode 100644 config/nvim/after/plugin/rainbow_parentheses.lua create mode 100644 config/nvim/after/plugin/tabular.lua create mode 100644 config/nvim/after/plugin/telescope.lua create mode 100644 config/nvim/after/plugin/vim-better-whitespace.lua create mode 100644 config/nvim/after/plugin/vim-fugitive.lua create mode 100644 config/nvim/after/plugin/vim-json.lua create mode 100644 config/nvim/after/plugin/virt-column.lua delete mode 100644 config/nvim/lua/fs/telescope.lua create mode 100644 config/nvim/lua/fs/theme.lua diff --git a/config/nvim/after/plugin/indent-blankline.lua b/config/nvim/after/plugin/indent-blankline.lua new file mode 100644 index 0000000..97aeffa --- /dev/null +++ b/config/nvim/after/plugin/indent-blankline.lua @@ -0,0 +1,7 @@ +require('indent_blankline').setup { + enabled = false, +} + +-- show/hide indent guides +vim.keymap.set('n', 'si', 'IndentBlanklineToggle') + diff --git a/config/nvim/after/plugin/nvim-tree.lua b/config/nvim/after/plugin/nvim-tree.lua new file mode 100644 index 0000000..dbe369d --- /dev/null +++ b/config/nvim/after/plugin/nvim-tree.lua @@ -0,0 +1,27 @@ +require('nvim-tree').setup { + git = { + ignore = false, -- don't hide files from .gitignore + }, + + view = { + width = 35, -- a little wider than the default 30 + }, + + filters = { + dotfiles = false, -- show files starting with a . + custom = { '.git' }, -- don't show .git directory + }, + + renderer = { + add_trailing = true, -- add trailing / to folders + group_empty = true, -- folders that contain only one folder are grouped + highlight_git = true, -- enable highlight based on git attributes + indent_markers = { + enable = true, -- show indent markers + }, + }, +} + +vim.keymap.set('n', '', 'NvimTreeToggle') +vim.keymap.set('n', 'n', 'NvimTreeFindFileToggle') + diff --git a/config/nvim/after/plugin/rainbow_parentheses.lua b/config/nvim/after/plugin/rainbow_parentheses.lua new file mode 100644 index 0000000..243ebc7 --- /dev/null +++ b/config/nvim/after/plugin/rainbow_parentheses.lua @@ -0,0 +1,5 @@ +vim.g['rainbow#pairs'] = { {'(',')'}, {'[',']'}, {'{','}'} } + +-- show/hide rainbow parens +vim.keymap.set('n', 'sp', 'RainbowParentheses!!') + diff --git a/config/nvim/after/plugin/tabular.lua b/config/nvim/after/plugin/tabular.lua new file mode 100644 index 0000000..dbd20be --- /dev/null +++ b/config/nvim/after/plugin/tabular.lua @@ -0,0 +1,4 @@ +vim.cmd [[ AddTabularPattern! first_comma /^[^,]*\zs,/ ]] +vim.cmd [[ AddTabularPattern! first_colon /^[^:]*\zs:/ ]] +vim.cmd [[ AddTabularPattern! first_equal /^[^=]*\zs=/ ]] + diff --git a/config/nvim/after/plugin/telescope.lua b/config/nvim/after/plugin/telescope.lua new file mode 100644 index 0000000..f72a225 --- /dev/null +++ b/config/nvim/after/plugin/telescope.lua @@ -0,0 +1,96 @@ +local actions = require 'telescope.actions' +local builtin = require 'telescope.builtin' + +local find_buffers = function() + builtin.buffers { prompt_title = ' ﬘ Find buffers ' } +end + +local find_commits = function() + builtin.git_commits { prompt_title = '  Find git commits ' } +end + +local find_dotfiles = function() + builtin.find_files { + prompt_title = '  Find dotfiles ', + cwd = '~/.dotfiles', + hidden = true, + } +end + +local find_files = function() + builtin.find_files { prompt_title = '  Find files ' } +end + +local find_grep = function() + builtin.live_grep { prompt_title = ' 🔍 Grep ' } +end + +local find_help = function() + builtin.help_tags { prompt_title = ' ﬤ Find help tags ' } +end + +local find_keymaps = function() + builtin.keymaps { prompt_title = '  Find keymaps ' } +end + +local find_manpages = function() + builtin.man_pages { + prompt_title = '  Find man pages ', + sections = { 'ALL' }, + } +end + +local find_options = function() + builtin.vim_options { + prompt_title = '  Find nvim options ', + layout_config = { + width = 0.75, + height = 0.8, + } + } +end + +require('telescope').setup { + defaults = { + prompt_prefix = '❯ ', + selection_caret = '➔ ', + + layout_strategy = 'flex', + layout_config = { + anchor = 'center', + width = 0.92, + height = 0.95, + + flex = { + flip_columns = 130, + }, + + horizontal = { + preview_width = 0.5, + preview_cutoff = 130, + }, + + vertical = { + preview_height = 0.5, + }, + }, + + mappings = { + i = { + [''] = actions.cycle_history_next, + [''] = actions.cycle_history_prev, + }, + }, + }, +} + +vim.keymap.set('n', 'fb', find_buffers) +vim.keymap.set('n', 'fc', find_commits) +vim.keymap.set('n', 'fd', find_dotfiles) +vim.keymap.set('n', 'ff', find_files) +vim.keymap.set('n', 'fg', find_grep) +vim.keymap.set('n', 'fh', find_help) +vim.keymap.set('n', 'fk', find_keymaps) +vim.keymap.set('n', 'fm', find_manpages) +vim.keymap.set('n', 'fo', find_options) + diff --git a/config/nvim/after/plugin/vim-better-whitespace.lua b/config/nvim/after/plugin/vim-better-whitespace.lua new file mode 100644 index 0000000..33ff6e6 --- /dev/null +++ b/config/nvim/after/plugin/vim-better-whitespace.lua @@ -0,0 +1,6 @@ +-- fix whitespace +vim.keymap.set('n', 'w', 'StripWhitespace') + +-- show/hide whitespace +vim.keymap.set('n', 'sw', 'ToggleWhitespace') + diff --git a/config/nvim/after/plugin/vim-fugitive.lua b/config/nvim/after/plugin/vim-fugitive.lua new file mode 100644 index 0000000..8675dbe --- /dev/null +++ b/config/nvim/after/plugin/vim-fugitive.lua @@ -0,0 +1,3 @@ +vim.keymap.set('n', 'gs', 'below Git') +vim.keymap.set('n', 'gb', 'Git blame') + diff --git a/config/nvim/after/plugin/vim-json.lua b/config/nvim/after/plugin/vim-json.lua new file mode 100644 index 0000000..37e72d2 --- /dev/null +++ b/config/nvim/after/plugin/vim-json.lua @@ -0,0 +1,6 @@ +-- Make numbers and booleans stand out. +vim.cmd [[ highlight link jsonBraces Text ]] +vim.cmd [[ highlight link jsonNumber Identifier ]] +vim.cmd [[ highlight link jsonBoolean Identifier ]] +vim.cmd [[ highlight link jsonNull Identifier ]] + diff --git a/config/nvim/after/plugin/virt-column.lua b/config/nvim/after/plugin/virt-column.lua new file mode 100644 index 0000000..047f01b --- /dev/null +++ b/config/nvim/after/plugin/virt-column.lua @@ -0,0 +1,14 @@ +require('virt-column').setup { + char = '│', +} + +local toggle_virtual_column = function() + if vim.o.colorcolumn == '' then + vim.o.colorcolumn = '+1' -- one after 'textwidth' + else + vim.o.colorcolumn = '' -- none + end +end + +vim.keymap.set('n', 'sc', toggle_virtual_column) + diff --git a/config/nvim/init.lua b/config/nvim/init.lua index b534d64..b9101c8 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -19,4 +19,5 @@ require 'fs.options' require 'fs.plugins' require 'fs.keymaps' require 'fs.autocmds' +require 'fs.theme' diff --git a/config/nvim/lua/fs/lualine.lua b/config/nvim/lua/fs/lualine.lua index ab4aec8..0173109 100644 --- a/config/nvim/lua/fs/lualine.lua +++ b/config/nvim/lua/fs/lualine.lua @@ -192,7 +192,7 @@ local sections = Table:new { lualine_z = {}, } -local config = function() +local setup = function() require('lualine').setup { options = { icons_enabled = true, @@ -213,4 +213,4 @@ local config = function() } end -return { config = config } +return { setup = setup } diff --git a/config/nvim/lua/fs/plugins.lua b/config/nvim/lua/fs/plugins.lua index 9775b48..646bd18 100644 --- a/config/nvim/lua/fs/plugins.lua +++ b/config/nvim/lua/fs/plugins.lua @@ -7,189 +7,46 @@ local packer = function() return require('packer') end +vim.g.better_whitespace_filetypes_blacklist = { + 'diff', + 'fugitive', + 'git', + 'gitcommit', + 'help', +} + +vim.g.vim_json_syntax_conceal = 0 -- Disable quote concealling. + return packer().startup(function(use) use 'wbthomason/packer.nvim' - use 'nvim-lua/plenary.nvim' -- Visuals ---------------------------------------------------------------- - - use { - 'tjdevries/colorbuddy.nvim', - config = function() require'fs.solarized'.setup() end, - } - + use 'tjdevries/colorbuddy.nvim' use 'kyazdani42/nvim-web-devicons' - - use { - 'nvim-lualine/lualine.nvim', - config = function() require'fs.lualine'.config() end, - } - - use { - 'lukas-reineke/virt-column.nvim', - - config = function() - require'virt-column'.setup { - char = '│' - } - - -- show/hide virtual colorcolumn - vim.keymap.set('n', 'sc', function() - if vim.o.colorcolumn == '' then - vim.o.colorcolumn = '+1' - else - vim.o.colorcolumn = '' - end - end) - end, - } - - use { - 'lukas-reineke/indent-blankline.nvim', - - config = function() - require'indent_blankline'.setup { - enabled = false - } - - -- show/hide indent guides - vim.keymap.set('n', 'si', ':IndentBlanklineToggle') - end, - } - - use { - 'junegunn/rainbow_parentheses.vim', - - config = function() - vim.g['rainbow#pairs'] = { {'(',')'}, {'[',']'}, {'{','}'} } - - -- show/hide rainbow parens - vim.keymap.set('n', 'sp', 'RainbowParentheses!!') - end, - } + use 'nvim-lualine/lualine.nvim' + use 'lukas-reineke/virt-column.nvim' + use 'lukas-reineke/indent-blankline.nvim' + use 'junegunn/rainbow_parentheses.vim' -- Navigation ------------------------------------------------------------- - - use { - 'nvim-telescope/telescope.nvim', - config = function() require'fs.telescope'.config() end, - } - - use { - 'kyazdani42/nvim-tree.lua', - - config = function() - require'nvim-tree'.setup { - git = { - ignore = false, -- don't hide files from .gitignore - }, - - view = { - width = 35, -- a little wider than the default 30 - }, - - filters = { - dotfiles = false, -- show files starting with a . - custom = { '.git' }, -- don't show .git directory - }, - - renderer = { - add_trailing = true, -- add trailing / to folders - group_empty = true, -- folders that contain only one folder are grouped - highlight_git = true, -- enable highlight based on git attributes - indent_markers = { - enable = true, -- show indent markers - }, - }, - } - - vim.keymap.set('n', '', 'NvimTreeToggle') - vim.keymap.set('n', 'n', 'NvimTreeFindFileToggle') - end, - } + use 'nvim-telescope/telescope.nvim' + use 'kyazdani42/nvim-tree.lua' -- Editing ---------------------------------------------------------------- - - use { - 'ntpeters/vim-better-whitespace', - - setup = function() - vim.g.better_whitespace_filetypes_blacklist = { - 'diff', - 'fugitive', - 'git', - 'gitcommit', - 'help', - } - end, - - config = function() - -- fix whitespace - vim.keymap.set('n', 'w', 'StripWhitespace') - - -- show/hide whitespace - vim.keymap.set('n', 'sw', 'ToggleWhitespace') - end, - } - - use { - 'godlygeek/tabular', - - setup = function() - -- This function is intentionally empty. If I don't have a setup() - -- function, somehow packer calls config() BEFORE the plugin is loaded - -- and therefore the command AddTabularPattern still doesn't exist and - -- config() throws errors on nvim startup. - end, - - config = function() - vim.cmd [[ AddTabularPattern! first_comma /^[^,]*\zs,/ ]] - vim.cmd [[ AddTabularPattern! first_colon /^[^:]*\zs:/ ]] - vim.cmd [[ AddTabularPattern! first_equal /^[^=]*\zs=/ ]] - end, - } - + use 'ntpeters/vim-better-whitespace' + use 'godlygeek/tabular' use 'tpope/vim-commentary' -- git -------------------------------------------------------------------- - - use { - 'tpope/vim-fugitive', - - config = function() - vim.keymap.set('n', 'gs', 'below Git') - vim.keymap.set('n', 'gb', 'Git blame') - end, - } + use 'tpope/vim-fugitive' -- Filetypes -------------------------------------------------------------- - - use { - 'elzr/vim-json', - - setup = function() - -- Disable quote concealling. - vim.g.vim_json_syntax_conceal = 0 - end, - - config = function() - -- Make numbers and booleans stand out. - vim.cmd [[ - highlight link jsonBraces Text - highlight link jsonNumber Identifier - highlight link jsonBoolean Identifier - highlight link jsonNull Identifier - ]] - end, - } - + use 'elzr/vim-json' use 'keith/swift.vim' - use 'chr4/nginx.vim' -- Misc ------------------------------------------------------------------- - use 'milisims/nvim-luaref' end) diff --git a/config/nvim/lua/fs/telescope.lua b/config/nvim/lua/fs/telescope.lua deleted file mode 100644 index c80af89..0000000 --- a/config/nvim/lua/fs/telescope.lua +++ /dev/null @@ -1,103 +0,0 @@ -local actions = require 'telescope.actions' -local builtin = require 'telescope.builtin' - -local M = {} - -M.find_buffers = function() - builtin.buffers { prompt_title = ' ﬘ Find buffers ' } -end - -M.find_commits = function() - builtin.git_commits { prompt_title = '  Find git commits ' } -end - -M.find_dotfiles = function() - builtin.find_files { - prompt_title = '  Find dotfiles ', - cwd = '~/.dotfiles', - hidden = true, - } -end - -M.find_files = function() - builtin.find_files { prompt_title = '  Find files ' } -end - -M.find_grep = function() - builtin.live_grep { prompt_title = ' 🔍 Grep ' } -end - -M.find_help = function() - builtin.help_tags { prompt_title = ' ﬤ Find help tags ' } -end - -M.find_keymaps = function() - builtin.keymaps { prompt_title = '  Find keymaps ' } -end - -M.find_manpages = function() - builtin.man_pages { - prompt_title = '  Find man pages ', - sections = { 'ALL' }, - } -end - -M.find_options = function() - builtin.vim_options { - prompt_title = '  Find nvim options ', - layout_config = { - width = 0.75, - height = 0.8, - } - } -end - -M.config = function() - require'telescope'.setup { - defaults = { - prompt_prefix = '❯ ', - selection_caret = '➔ ', - - layout_strategy = 'flex', - layout_config = { - anchor = 'center', - width = 0.92, - height = 0.95, - - flex = { - flip_columns = 130, - }, - - horizontal = { - preview_width = 0.5, - preview_cutoff = 130, - }, - - vertical = { - preview_height = 0.5, - }, - }, - - mappings = { - i = { - [''] = actions.cycle_history_next, - [''] = actions.cycle_history_prev, - }, - }, - }, - } - - local nmap = require 'fs.util'.nmap - nmap { 'fb', [[lua require'fs.telescope'.find_buffers()]] } - nmap { 'fc', [[lua require'fs.telescope'.find_commits()]] } - nmap { 'fd', [[lua require'fs.telescope'.find_dotfiles()]] } - nmap { 'ff', [[lua require'fs.telescope'.find_files()]] } - nmap { 'fg', [[lua require'fs.telescope'.find_grep()]] } - nmap { 'fh', [[lua require'fs.telescope'.find_help()]] } - nmap { 'fk', [[lua require'fs.telescope'.find_keymaps()]] } - nmap { 'fm', [[lua require'fs.telescope'.find_manpages()]] } - nmap { 'fo', [[lua require'fs.telescope'.find_options()]] } -end - -return M - diff --git a/config/nvim/lua/fs/theme.lua b/config/nvim/lua/fs/theme.lua new file mode 100644 index 0000000..eec766c --- /dev/null +++ b/config/nvim/lua/fs/theme.lua @@ -0,0 +1,3 @@ +R('fs.solarized').setup() +R('fs.lualine').setup() +