From 001d800afd73f8a87728b5a714b7f238d12ca0e8 Mon Sep 17 00:00:00 2001 From: Fernando Schauenburg Date: Tue, 8 Feb 2022 19:56:32 +0100 Subject: [PATCH] vim: better control over plugin configurations --- config/nvim/after/plugin/ctrlp.lua | 4 -- .../nvim/after/plugin/rainbow_parentheses.lua | 7 --- config/nvim/after/plugin/srec.lua | 10 ---- config/nvim/after/plugin/vim-fugitive.lua | 6 --- config/nvim/after/plugin/vim-json.lua | 11 ----- config/nvim/after/plugin/vim-markdown.lua | 15 ------ .../after/plugin/vim-trailing-whitespace.lua | 5 -- config/nvim/lua/fs/config/ctrlp.lua | 8 ++++ .../plugin => lua/fs/config}/lualine.lua | 11 ++--- .../plugin => lua/fs/config}/nvim-tree.lua | 47 ++++++++++--------- .../lua/fs/config/rainbow_parentheses.lua | 11 +++++ config/nvim/lua/fs/config/srec.lua | 14 ++++++ config/nvim/lua/fs/config/vim-fugitive.lua | 9 ++++ config/nvim/lua/fs/config/vim-json.lua | 17 +++++++ config/nvim/lua/fs/config/vim-markdown.lua | 22 +++++++++ .../lua/fs/config/vim-trailing-whitespace.lua | 9 ++++ config/nvim/lua/fs/plugins.lua | 47 +++++++++++++++---- 17 files changed, 158 insertions(+), 95 deletions(-) delete mode 100644 config/nvim/after/plugin/ctrlp.lua delete mode 100644 config/nvim/after/plugin/rainbow_parentheses.lua delete mode 100644 config/nvim/after/plugin/srec.lua delete mode 100644 config/nvim/after/plugin/vim-fugitive.lua delete mode 100644 config/nvim/after/plugin/vim-json.lua delete mode 100644 config/nvim/after/plugin/vim-markdown.lua delete mode 100644 config/nvim/after/plugin/vim-trailing-whitespace.lua create mode 100644 config/nvim/lua/fs/config/ctrlp.lua rename config/nvim/{after/plugin => lua/fs/config}/lualine.lua (95%) rename config/nvim/{after/plugin => lua/fs/config}/nvim-tree.lua (62%) create mode 100644 config/nvim/lua/fs/config/rainbow_parentheses.lua create mode 100644 config/nvim/lua/fs/config/srec.lua create mode 100644 config/nvim/lua/fs/config/vim-fugitive.lua create mode 100644 config/nvim/lua/fs/config/vim-json.lua create mode 100644 config/nvim/lua/fs/config/vim-markdown.lua create mode 100644 config/nvim/lua/fs/config/vim-trailing-whitespace.lua diff --git a/config/nvim/after/plugin/ctrlp.lua b/config/nvim/after/plugin/ctrlp.lua deleted file mode 100644 index 74277d2..0000000 --- a/config/nvim/after/plugin/ctrlp.lua +++ /dev/null @@ -1,4 +0,0 @@ -vim.g.ctrlp_match_window = 'bottom,order:ttb' -vim.g.ctrlp_switch_buffer = 0 -- open files in new buffer -vim.g.ctrlp_show_hidden = 1 -- show hidden files - diff --git a/config/nvim/after/plugin/rainbow_parentheses.lua b/config/nvim/after/plugin/rainbow_parentheses.lua deleted file mode 100644 index 0c570b4..0000000 --- a/config/nvim/after/plugin/rainbow_parentheses.lua +++ /dev/null @@ -1,7 +0,0 @@ -vim.g['rainbow#pairs'] = { {'(',')'}, {'[',']'}, {'{','}'} } - -local nmap = require'fs.keymap'.nmap - --- toggle rainbow parens -nmap { 'p', 'RainbowParentheses!!' } - diff --git a/config/nvim/after/plugin/srec.lua b/config/nvim/after/plugin/srec.lua deleted file mode 100644 index 507f984..0000000 --- a/config/nvim/after/plugin/srec.lua +++ /dev/null @@ -1,10 +0,0 @@ -vim.cmd([[ - highlight link srecStart Comment - highlight link srecType Comment - highlight link srecLength WarningMsg - highlight link srec16BitAddress Constant - highlight link srec24BitAddress Constant - highlight link srec32BitAddress Constant - highlight link srecChecksum Type -]]) - diff --git a/config/nvim/after/plugin/vim-fugitive.lua b/config/nvim/after/plugin/vim-fugitive.lua deleted file mode 100644 index cd31eb4..0000000 --- a/config/nvim/after/plugin/vim-fugitive.lua +++ /dev/null @@ -1,6 +0,0 @@ -local nmap = require'fs.keymap'.nmap - --- use fugitive -nmap { 'gg', 'G' } -nmap { 'g', 'G ' } - diff --git a/config/nvim/after/plugin/vim-json.lua b/config/nvim/after/plugin/vim-json.lua deleted file mode 100644 index d61a1c1..0000000 --- a/config/nvim/after/plugin/vim-json.lua +++ /dev/null @@ -1,11 +0,0 @@ --- Disable quote concealling. -vim.g.vim_json_syntax_conceal = 0 - --- Make numbers and booleans stand out. -vim.cmd([[ - highlight link jsonBraces Text - highlight link jsonNumber Identifier - highlight link jsonBoolean Identifier - highlight link jsonNull Identifier -]]) - diff --git a/config/nvim/after/plugin/vim-markdown.lua b/config/nvim/after/plugin/vim-markdown.lua deleted file mode 100644 index ae96693..0000000 --- a/config/nvim/after/plugin/vim-markdown.lua +++ /dev/null @@ -1,15 +0,0 @@ --- Disable concealling on italic, bold, etc. -vim.g.vim_markdown_conceal = 0 - --- Disable concealling on code blocks. -vim.g.vim_markdown_conceal_code_blocks = 0 - --- Automatic insertion of bullets is buggy. so disable it. -vim.g.vim_markdown_auto_insert_bullets = 0 -vim.g.vim_markdown_new_list_item_indent = 0 - -local nmap = require'fs.keymap'.buffer_nmap -nmap { '+', '.,.HeaderIncrease' } -nmap { '=', '.,.HeaderIncrease' } -nmap { '-', '.,.HeaderDecrease' } - diff --git a/config/nvim/after/plugin/vim-trailing-whitespace.lua b/config/nvim/after/plugin/vim-trailing-whitespace.lua deleted file mode 100644 index 3c9f216..0000000 --- a/config/nvim/after/plugin/vim-trailing-whitespace.lua +++ /dev/null @@ -1,5 +0,0 @@ -local nmap = require'fs.keymap'.nmap - --- fix whitespace -nmap { 'w', 'FixWhitespace' } - diff --git a/config/nvim/lua/fs/config/ctrlp.lua b/config/nvim/lua/fs/config/ctrlp.lua new file mode 100644 index 0000000..b78d2f1 --- /dev/null +++ b/config/nvim/lua/fs/config/ctrlp.lua @@ -0,0 +1,8 @@ +local setup = function() + vim.g.ctrlp_match_window = 'bottom,order:ttb' + vim.g.ctrlp_switch_buffer = 0 -- open files in new buffer + vim.g.ctrlp_show_hidden = 1 -- show hidden files +end + +return { setup = setup } + diff --git a/config/nvim/after/plugin/lualine.lua b/config/nvim/lua/fs/config/lualine.lua similarity index 95% rename from config/nvim/after/plugin/lualine.lua rename to config/nvim/lua/fs/config/lualine.lua index 68b129a..16e41cd 100644 --- a/config/nvim/after/plugin/lualine.lua +++ b/config/nvim/lua/fs/config/lualine.lua @@ -12,7 +12,7 @@ local Table = { local colors = require'fs.colors'.colors() -local function theme() +local theme = (function() local active = { a = Table:new { fg = colors.base03, bg = colors.base1 }, b = Table:new { fg = colors.base03, bg = colors.base00 }, @@ -46,7 +46,7 @@ local function theme() c = inactive.c, }, } -end +end)() local parts = { paste = { @@ -92,13 +92,13 @@ local sections = Table:new { lualine_z = { parts.progress }, } -local function setup() +local config = function() require('lualine').setup { options = { icons_enabled = true, component_separators = { left = '', right = '' }, section_separators = { left = '', right = '' }, - theme = theme(), + theme = theme, }, sections = sections:override { @@ -111,5 +111,4 @@ local function setup() } end -setup() - +return { config = config } diff --git a/config/nvim/after/plugin/nvim-tree.lua b/config/nvim/lua/fs/config/nvim-tree.lua similarity index 62% rename from config/nvim/after/plugin/nvim-tree.lua rename to config/nvim/lua/fs/config/nvim-tree.lua index e61f9a9..9ee7d0e 100644 --- a/config/nvim/after/plugin/nvim-tree.lua +++ b/config/nvim/lua/fs/config/nvim-tree.lua @@ -1,7 +1,5 @@ local nmap = require'fs.keymap'.nmap - -nmap { '', 'NvimTreeToggle' } -nmap { 'n', 'NvimTreeFindFileToggle' } +local colors = require'fs.colors'.colors() -- helper to set vim.g options that will be moved to setup() later local function set_globals(tbl) @@ -11,7 +9,15 @@ local function set_globals(tbl) end end -set_globals { +local function highlight(group, color) + if vim.opt.termguicolors:get() then + vim.cmd(vim.fn.printf('highlight %s guifg=%s', group, color)) + else + vim.cmd(vim.fn.printf('highlight %s ctermfg=%d', group, color)) + end +end + +local global_opts ={ add_trailing = 1, -- add trailing / to folders group_empty = 1, -- folders that contain only one folder are grouped indent_markers = 1, -- show indent markers @@ -23,9 +29,8 @@ set_globals { }, } -require'nvim-tree'.setup { +local nvim_tree_config = { auto_close = true, -- close vim if tree is the last window - update_cwd = true, -- refresh tree on DirChanged git = { ignore = false, -- don't hide files from .gitignore @@ -41,23 +46,21 @@ require'nvim-tree'.setup { }, } +local config = function() + require'nvim-tree'.setup(nvim_tree_config) -local function highlight(group, color) - if vim.opt.termguicolors:get() then - vim.cmd(vim.fn.printf('highlight %s guifg=%s', group, color)) - else - vim.cmd(vim.fn.printf('highlight %s ctermfg=%d', group, color)) - end + highlight('NvimTreeSpecialFile' , colors.base2 ) + highlight('NvimTreeIndentMarker' , colors.base01 ) + highlight('NvimTreeGitStaged' , colors.green ) + highlight('NvimTreeGitRenamed' , colors.yellow ) + highlight('NvimTreeGitNew' , colors.yellow ) + highlight('NvimTreeGitDirty' , colors.yellow ) + highlight('NvimTreeGitDeleted' , colors.orange ) + highlight('NvimTreeGitMerge' , colors.red ) + + nmap { '', 'NvimTreeToggle' } + nmap { 'n', 'NvimTreeFindFileToggle' } end -local C = require'fs.colors'.colors() - -highlight('NvimTreeSpecialFile' , C.base2 ) -highlight('NvimTreeIndentMarker' , C.base01 ) -highlight('NvimTreeGitStaged' , C.green ) -highlight('NvimTreeGitRenamed' , C.yellow ) -highlight('NvimTreeGitNew' , C.yellow ) -highlight('NvimTreeGitDirty' , C.yellow ) -highlight('NvimTreeGitDeleted' , C.orange ) -highlight('NvimTreeGitMerge' , C.red ) +return { config = config } diff --git a/config/nvim/lua/fs/config/rainbow_parentheses.lua b/config/nvim/lua/fs/config/rainbow_parentheses.lua new file mode 100644 index 0000000..7c37b21 --- /dev/null +++ b/config/nvim/lua/fs/config/rainbow_parentheses.lua @@ -0,0 +1,11 @@ +local nmap = require'fs.keymap'.nmap + +local config = function() + vim.g['rainbow#pairs'] = { {'(',')'}, {'[',']'}, {'{','}'} } + + -- toggle rainbow parens + nmap { 'p', 'RainbowParentheses!!' } +end + +return { config = config } + diff --git a/config/nvim/lua/fs/config/srec.lua b/config/nvim/lua/fs/config/srec.lua new file mode 100644 index 0000000..7d991e6 --- /dev/null +++ b/config/nvim/lua/fs/config/srec.lua @@ -0,0 +1,14 @@ +local config = function() + vim.cmd[[ + highlight link srecStart Comment + highlight link srecType Comment + highlight link srecLength WarningMsg + highlight link srec16BitAddress Constant + highlight link srec24BitAddress Constant + highlight link srec32BitAddress Constant + highlight link srecChecksum Type + ]] +end + +return { config = config } + diff --git a/config/nvim/lua/fs/config/vim-fugitive.lua b/config/nvim/lua/fs/config/vim-fugitive.lua new file mode 100644 index 0000000..f3e80b3 --- /dev/null +++ b/config/nvim/lua/fs/config/vim-fugitive.lua @@ -0,0 +1,9 @@ +local nmap = require'fs.keymap'.nmap + +local config = function() + nmap { 'gg', 'G' } + nmap { 'g', 'G ' } +end + +return { config = config } + diff --git a/config/nvim/lua/fs/config/vim-json.lua b/config/nvim/lua/fs/config/vim-json.lua new file mode 100644 index 0000000..1d89a37 --- /dev/null +++ b/config/nvim/lua/fs/config/vim-json.lua @@ -0,0 +1,17 @@ +local setup = function() + -- Disable quote concealling. + vim.g.vim_json_syntax_conceal = 0 +end + +local 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 + +return { setup = setup, config = config } + diff --git a/config/nvim/lua/fs/config/vim-markdown.lua b/config/nvim/lua/fs/config/vim-markdown.lua new file mode 100644 index 0000000..3860d22 --- /dev/null +++ b/config/nvim/lua/fs/config/vim-markdown.lua @@ -0,0 +1,22 @@ +local nmap = require'fs.keymap'.buffer_nmap + +local setup = function() + -- Disable concealling on italic, bold, etc. + vim.g.vim_markdown_conceal = 0 + + -- Disable concealling on code blocks. + vim.g.vim_markdown_conceal_code_blocks = 0 + + -- Automatic insertion of bullets is buggy. so disable it. + vim.g.vim_markdown_auto_insert_bullets = 0 + vim.g.vim_markdown_new_list_item_indent = 0 +end + +local config = function() + nmap { '+', '.,.HeaderIncrease' } + nmap { '=', '.,.HeaderIncrease' } + nmap { '-', '.,.HeaderDecrease' } +end + +return { setup = setup, config = config } + diff --git a/config/nvim/lua/fs/config/vim-trailing-whitespace.lua b/config/nvim/lua/fs/config/vim-trailing-whitespace.lua new file mode 100644 index 0000000..88ddc08 --- /dev/null +++ b/config/nvim/lua/fs/config/vim-trailing-whitespace.lua @@ -0,0 +1,9 @@ +local nmap = require'fs.keymap'.nmap + +local config = function() + -- fix whitespace + nmap { 'w', 'FixWhitespace' } +end + +return { config = config } + diff --git a/config/nvim/lua/fs/plugins.lua b/config/nvim/lua/fs/plugins.lua index c1b1946..6a56392 100644 --- a/config/nvim/lua/fs/plugins.lua +++ b/config/nvim/lua/fs/plugins.lua @@ -4,27 +4,56 @@ local plugins = function(use) -- Visuals ---------------------------------------------------------------- use 'altercation/vim-colors-solarized' use 'kyazdani42/nvim-web-devicons' - use 'nvim-lualine/lualine.nvim' + use { + 'nvim-lualine/lualine.nvim', + config = [[require'fs.config.lualine'.config()]] + } -- Navigation ------------------------------------------------------------- - use 'kyazdani42/nvim-tree.lua' - use 'junegunn/rainbow_parentheses.vim' - use 'ctrlpvim/ctrlp.vim' + use { + 'kyazdani42/nvim-tree.lua', + config = [[require'fs.config.nvim-tree'.config()]], + } + use { + 'junegunn/rainbow_parentheses.vim', + config = [[require'fs.config.rainbow_parentheses'.config()]], + } + use { + 'ctrlpvim/ctrlp.vim', + setup = [[require'fs.config.ctrlp'.setup()]], + } -- Editing ---------------------------------------------------------------- - use 'bronson/vim-trailing-whitespace' + use { + 'bronson/vim-trailing-whitespace', + config = [[require'fs.config.vim-trailing-whitespace'.config()]], + } use 'godlygeek/tabular' use 'tpope/vim-commentary' -- git -------------------------------------------------------------------- - use 'tpope/vim-fugitive' + use { + 'tpope/vim-fugitive', + config = [[require'fs.config.vim-fugitive'.config()]], + } -- Filetypes -------------------------------------------------------------- - use 'elzr/vim-json' - use 'plasticboy/vim-markdown' + use { + 'elzr/vim-json', + setup = [[require'fs.config.vim-json'.setup()]], + config = [[require'fs.config.vim-json'.config()]], + } + use { + 'plasticboy/vim-markdown', + setup = [[require'fs.config.vim-markdown'.setup()]], + config = [[require'fs.config.vim-markdown'.config()]], + } use 'keith/swift.vim' use 'chr4/nginx.vim' - use 'vim-scripts/srec.vim' + use { + 'vim-scripts/srec.vim', + config = [[require'fs.config.srec'.config()]], + } vim.cmd([[ silent! colorscheme solarized