neovim

Personal neovim configuration files
git clone git://gtms.dev:neovim
Log | Files | Refs

commit dd36edfe11ad068dff594cff5d696c1c757f74ed
parent 961bf3e9371698cdf0cc1c3b8bc29fd330464fdd
Author: Tomas Nemec <nemi@skaut.cz>
Date:   Thu, 14 Apr 2022 13:13:27 +0200

udpate

Diffstat:
Mafter/plugin/beacon.lua | 11++++++++---
Mafter/plugin/cmp.lua | 23++++++++++++++++++++---
Mafter/plugin/leap.lua | 7+++++++
Mafter/plugin/luasnip.lua | 33++++++++-------------------------
Mafter/plugin/telescope.lua | 5+++++
Mcolors/tms.lua | 248++++++++++++++++++++++++++++---------------------------------------------------
Alua/tms/colors.lua | 97+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mlua/tms/plugins.lua | 2+-
8 files changed, 234 insertions(+), 192 deletions(-)

diff --git a/after/plugin/beacon.lua b/after/plugin/beacon.lua @@ -1,4 +1,9 @@ -if not vim.g.beacon_loaded then return end +if not pcall(require, 'beacon') then return end -vim.keymap.set('n', '*', '*:Beacon<cr>') -vim.keymap.set('n', '#', '#:Beacon<cr>') +require('tms.colors').update(function(t) + +end) +local Group = require('colorbuddy.group').Group +local colors = require('colorbuddy.color').colors +local groups = require('colorbuddy.group').groups +Group.new('Beacon', colors.none, groups.Normal.fg) diff --git a/after/plugin/cmp.lua b/after/plugin/cmp.lua @@ -4,20 +4,37 @@ local cmp = require('cmp') require('cmp_dictionary').setup({ dic = {} }) -- cmp.register_source('exe', require('tms.p.cmp.exe_source').new()) +local doOrOpen = function(fn, t) + return function(_) + if cmp.visible() then + fn(t) + else + cmp.complete() + end + end +end + cmp.setup({ + preselect = cmp.PreselectMode.Item, window = { completion = cmp.config.window.bordered(), documentation = cmp.config.window.bordered() }, snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) end }, mapping = { - ['<c-space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }), ['<c-e>'] = cmp.mapping({ i = cmp.mapping.abort(), c = cmp.mapping.close() }), - ['<cr>'] = cmp.mapping.confirm({ select = true }), ['<c-y>'] = cmp.mapping.confirm({ select = true }), - ['<c-o>'] = cmp.mapping.confirm({ select = true }), ['<c-f>'] = cmp.mapping(cmp.mapping.scroll_docs(4), { 'i', 'c' }), ['<c-d>'] = cmp.mapping(cmp.mapping.scroll_docs(-4), { 'i', 'c' }), + ['<c-space>'] = cmp.mapping { i = doOrOpen(cmp.confirm, { select = true }) }, + ['<c-p>'] = cmp.mapping({ i = doOrOpen(cmp.select_prev_item, { behavior = cmp.SelectBehavior.Select }) }), + ['<c-n>'] = cmp.mapping({ i = doOrOpen(cmp.select_next_item, { behavior = cmp.SelectBehavior.Select }) }), }, sources = cmp.config.sources( { { name = 'nvim_lsp' }, { name = 'nvim_lua' }, { name = 'luasnip' }, { name = 'path' } }, { { name = 'buffer' }, { name = 'spell' }, { name = 'calc' }, { name = 'treesitter' }, { name = 'dictionary' } }), experimental = { ghost_text = true }, }) + +cmp.setup.cmdline('/', { mapping = cmp.mapping.preset.cmdline(), sources = { { name = 'buffer' } } }) +cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ { name = 'path' } }, { { name = 'cmdline' } }), +}) diff --git a/after/plugin/leap.lua b/after/plugin/leap.lua @@ -2,3 +2,10 @@ if not pcall(require, 'leap') then return end require('leap').set_default_keymaps() vim.keymap.set('n', 'gw', '<Plug>(leap-cross-window)') + +require('tms.colors').update(function(t) + t.Group.link('LeapBackdrop', t.groups.Comment) + t.Group.new('LeapMatch', t.groups.Normal, nil, t.styles.underline) + t.Group.new('LeapLabelPrimary', t.groups.Normal, t.groups.Normal, t.styles.reverse) + t.Group.link('LeapLabelSecondary', t.groups.Comment) +end) diff --git a/after/plugin/luasnip.lua b/after/plugin/luasnip.lua @@ -6,22 +6,13 @@ local types = require('luasnip.util.types') ls.config.set_config({ history = true, updateevents = 'TextChanged,TextChangedI', - ext_opts = { - [types.choiceNode] = { - active = { virt_text = { { '<- choice', 'Comment' } } }, - }, - }, + ext_opts = { [types.choiceNode] = { active = { virt_text = { { '<- choice', 'Comment' } } } } }, }) local opts = { silent = true } -vim.keymap.set({ 'i', 's' }, '<c-l>', function() - if ls.expand_or_jumpable() then ls.expand_or_jump() end -end, opts) -vim.keymap.set({ 'i', 's' }, '<c-h>', - function() if ls.jumpable(-1) then ls.jump(-1) end end, opts) -vim.keymap.set({ 'i' }, '<c-e>', function() - if ls.choice_active() then ls.change_choice(1) end -end, opts) +vim.keymap.set({ 'i', 's' }, '<c-l>', function() if ls.expand_or_jumpable() then ls.expand_or_jump() end end, opts) +vim.keymap.set({ 'i', 's' }, '<c-h>', function() if ls.jumpable(-1) then ls.jump(-1) end end, opts) +vim.keymap.set({ 'i' }, '<c-e>', function() if ls.choice_active() then ls.change_choice(1) end end, opts) vim.keymap.set({ 'i' }, '<c-u>', require('luasnip.extras.select_choice'), opts) local s = ls.snippet @@ -47,9 +38,7 @@ local shell = function(command) return res[1] end end -local cmt = function() - return require('luasnip.util.util').buffer_comment_chars()[1] -end +local cmt = function() return require('luasnip.util.util').buffer_comment_chars()[1] end ls.cleanup() @@ -57,18 +46,12 @@ ls.add_snippets('all', { s('bang', t('#!/usr/bin/env ')), s('date', p(os.date, '%d.%m.%Y')), s('time', p(os.date, '%H:%M:%S')), - s('todo', { - f(cmt), - t(' TODO('), - f(shell('id -un')), - t(') '), - p(os.date, '%d.%m.%y'), - t(': '), - }), + s('todo', { f(cmt), t(' TODO('), f(shell('id -un')), t(') '), p(os.date, '%d.%m.%y'), t(': ') }), }) ls.add_snippets('lua', { - s('f', fmt('function() {} end', { i(1) })), + s('f', fmt('function({}) {} end', { i(1), i(2) })), + s('F', fmt('function() {} end', { i(1) })), s('r', fmt('require(\'{}\')', { i(1) })), s('l', fmt('local {} = {}', { i(1), i(2) })), s('lr', fmt('local {} = require(\'{}\')', { i(1), rep(1) })), diff --git a/after/plugin/telescope.lua b/after/plugin/telescope.lua @@ -61,3 +61,8 @@ map('n', '<space>wo', 'git_worktrees', opts) map('n', '<space>wi', 'create_git_worktree', opts) map('n', '<space>n', 'edit_neovim', opts) + +require('tms.colors').update(function(t) + t.Group.new('TelescopeSelection', nil, t.dimm(t.groups.Normal.bg, 0.05)) + t.Group.new('TelescopeMatching', nil, nil, t.styles.underline + t.styles.bold) +end) diff --git a/colors/tms.lua b/colors/tms.lua @@ -1,161 +1,89 @@ -local Color = require('colorbuddy.color').Color -local colors = require('colorbuddy.color').colors -local Group = require('colorbuddy.group').Group -local groups = require('colorbuddy.group').groups -local styles = require('colorbuddy.style').styles -local c = {} -if vim.fn.empty('/home/tms/.cache/wal') > 0 then - -- gruvbox - c.background = '#1d2021' - c.foreground = '#d5c4a1' - c.cursor = '#d5c4a1' - c.color0 = '#1d2021' - c.color1 = '#fb4934' - c.color2 = '#b8bb26' - c.color3 = '#fabd2f' - c.color4 = '#83a598' - c.color5 = '#d3869b' - c.color6 = '#8ec07c' - c.color7 = '#d5c4a1' - c.color8 = '#665c54' - c.color9 = '#fb4934' - c.color10 = '#b8bb26' - c.color11 = '#fabd2f' - c.color12 = '#83a598' - c.color13 = '#d3869b' - c.color14 = '#8ec07c' - c.color15 = '#fbf1c7' -else - c = dofile('/home/tms/.cache/wal/colors.lua') -end --- Special -Color.new('backg', c.background) -Color.new('foreg', c.foreground) -Color.new('cursor', c.cursor) +local colorscheme = require('tms.colors') +local scheme = colorscheme.load_colorscheme() +colorscheme.setup_colors(scheme) -local is_dark = false -if (colors.foreg.L > colors.backg.L) then is_dark = true end -local dimm = function(color, amount) - if is_dark then - return color:light(amount) - else - return color:dark(amount) - end -end - --- colors -Color.new('black', c.color0) -Color.new('red', c.color1) -Color.new('green', c.color2) -Color.new('yellow', c.color3) -Color.new('blue', c.color4) -Color.new('magenta', c.color5) -Color.new('cyan', c.color6) -Color.new('white', c.color7) - -Color.new('c0', c.color0) -Color.new('c1', c.color1) -Color.new('c2', c.color2) -Color.new('c3', c.color3) -Color.new('c4', c.color4) -Color.new('c5', c.color5) -Color.new('c6', c.color6) -Color.new('c7', c.color7) -Color.new('c8', c.color8) -Color.new('c9', c.color9) -Color.new('c10', c.color10) -Color.new('c11', c.color11) -Color.new('c12', c.color12) -Color.new('c13', c.color13) -Color.new('c14', c.color14) -Color.new('c15', c.color15) - -Group.new('Normal', colors.foreg, colors.backg) -local N = groups.Normal -Group.new('NonText', colors.c0, colors.none) -Group.new('Comment', colors.c8, colors.none) -Group.new('Conceal', colors.none, colors.none) -Group.new('Constant', colors.c3, colors.none) -Group.new('Error', colors.c7, colors.c1) -Group.new('Identifier', colors.c1, colors.none, styles.bold) -Group.new('Ignore', colors.c0, colors.c8) -Group.new('PreProc', colors.c3, colors.none) -Group.new('Special', colors.c6, colors.none) -Group.new('Statement', colors.c1, colors.none) -Group.new('String', colors.c2, colors.none) -Group.new('Number', colors.c3, colors.none) -Group.new('Todo', colors.c0, colors.c2) -Group.new('Type', colors.c3, colors.none) -Group.new('Underlined', colors.c1, colors.none, styles.underline) -Group.new('StatusLine', colors.c0, colors.c7) -Group.new('StatusLineNC', colors.c0, colors.c8) -Group.new('TabLine', colors.c8, colors.none) -Group.new('TabLineFill', colors.c8, colors.none) -Group.new('TabLineSel', colors.c0, colors.c4) -Group.new('TermCursorNC', colors.c0, colors.c3) -Group.new('VertSplit', colors.c0, colors.c8) -Group.new('Title', colors.c4, colors.none, styles.bold) -Group.new('CursorLine', colors.none, dimm(N.bg, 0.03)) -Group.new('LineNr', colors.c8, colors.none) -Group.new('CursorLineNr', colors.c8, colors.none) -Group.new('helpLeadBlank', colors.c7, colors.none) -Group.new('helpNormal', colors.c7, colors.none) -Group.new('Visual', colors.c0, colors.c1) -Group.new('VisualNOS', colors.c1, colors.none) -Group.new('Pmenu', colors.c7, dimm(N.bg, 0.01)) -Group.new('PmenuSbar', colors.c7, colors.c6) -Group.new('PmenuSel', colors.c0, colors.c4) -Group.new('PmenuThumb', colors.c8, colors.c8) -Group.new('FoldColumn', colors.c7, colors.none) -Group.new('Folded', colors.c8, colors.none) -Group.new('WildMenu', colors.c0, colors.c2) -Group.new('SpecialKey', colors.c8, colors.none) -Group.new('DiffAdd', colors.c2, colors.none) -Group.new('DiffChange', colors.c8, colors.none) -Group.new('DiffDelete', colors.c1, colors.none) -Group.new('DiffText', colors.c4, colors.none) -Group.new('IncSearch', colors.c0, colors.c3) -Group.new('Search', colors.c0, colors.c3) -Group.new('Directory', colors.c4, colors.none) -Group.new('MatchParen', colors.c8, colors.c1) -Group.new('ColorColumn', colors.c0, colors.c4) -Group.new('signColumn', colors.c4, colors.none) -Group.new('ErrorMsg', colors.c8, colors.none) -Group.new('ModeMsg', colors.c2, colors.none) -Group.new('MoreMsg', colors.c2, colors.none) -Group.new('Question', colors.c4, colors.none) -Group.new('WarningMsg', colors.c0, colors.c1) -Group.new('Structure', colors.c5, colors.none) -Group.new('CursorColumn', colors.c7, colors.c8) -Group.new('ModeMsg', colors.c7, colors.none) -Group.new('SpellBad', colors.c1, colors.none, styles.underline) -Group.new('SpellCap', colors.c4, colors.none, styles.underline) -Group.new('SpellLocal', colors.c5, colors.none, styles.underline) -Group.new('SpellRare', colors.c6, colors.none, styles.underline) -Group.new('Boolean', colors.c5, colors.none) -Group.new('Character', colors.c1, colors.none) -Group.new('Conditional', colors.c5, colors.none) -Group.new('Define', colors.c5, colors.none) -Group.new('Delimiter', colors.c5, colors.none) -Group.new('NormalFloat', colors.none, colors.none) -Group.new('Float', colors.c5, colors.none) -Group.new('FloatBorder', N, colors.none) -Group.new('Include', colors.c4, colors.none) -Group.new('Keyword', colors.c5, colors.none) -Group.new('Label', colors.c3, colors.none) -Group.new('Operator', colors.c7, colors.none) -Group.new('Repeat', colors.c3, colors.none) -Group.new('SpecialChar', colors.c5, colors.none) -Group.new('Tag', colors.c3, colors.none) -Group.new('Typedef', colors.c3, colors.none) -Group.new('WinSeparator', nil, colors.none) - --- Telescope -Group.new('TelescopeSelection', nil, dimm(N.bg, 0.05)) -Group.new('TelescopeMatching', nil, nil, styles.underline + styles.bold) - --- leap -Group.link('LeapBackdrop', groups.Comment) --- Group.new('LeapMatch', colors.c5, nil, styles.underline) -Group.new('LeapLabelPrimary', N, N, styles.reverse) -Group.link('LeapLabelSecondary', groups.Comment) +colorscheme.update(function(t) + local Group = t.Group + local groups = t.groups + local colors = t.colors + local styles = t.styles + local dimm = t.dimm + Group.new('Normal', colors.foreg, colors.backg) + Group.new('NonText', colors.c0, colors.none) + Group.new('Comment', colors.c8, colors.none) + Group.new('Conceal', colors.none, colors.none) + Group.new('Constant', colors.c3, colors.none) + Group.new('Error', colors.c7, colors.c1) + Group.new('Identifier', colors.c1, colors.none, styles.bold) + Group.new('Ignore', colors.c0, colors.c8) + Group.new('PreProc', colors.c3, colors.none) + Group.new('Special', colors.c6, colors.none) + Group.new('Statement', colors.c1, colors.none) + Group.new('String', colors.c2, colors.none) + Group.new('Number', colors.c3, colors.none) + Group.new('Todo', colors.c0, colors.c2) + Group.new('Type', colors.c3, colors.none) + Group.new('Underlined', colors.c1, colors.none, styles.underline) + Group.new('StatusLine', colors.c0, colors.c7) + Group.new('StatusLineNC', colors.c0, colors.c8) + Group.new('TabLine', colors.c8, colors.none) + Group.new('TabLineFill', colors.c8, colors.none) + Group.new('TabLineSel', colors.c0, colors.c4) + Group.new('TermCursorNC', colors.c0, colors.c3) + Group.new('VertSplit', colors.c0, colors.c8) + Group.new('Title', colors.c4, colors.none, styles.bold) + Group.new('CursorLine', colors.none, dimm(groups.Normal.bg, 0.03)) + Group.new('LineNr', colors.c8, colors.none) + Group.new('CursorLineNr', colors.c8, colors.none) + Group.new('helpLeadBlank', colors.c7, colors.none) + Group.new('helpNormal', colors.c7, colors.none) + Group.new('Visual', colors.c0, colors.c1) + Group.new('VisualNOS', colors.c1, colors.none) + Group.new('Pmenu', colors.c7, dimm(groups.Normal.bg, 0.01)) + Group.new('PmenuSbar', colors.c7, colors.c6) + Group.new('PmenuSel', colors.c0, colors.c4) + Group.new('PmenuThumb', colors.c8, colors.c8) + Group.new('FoldColumn', colors.c7, colors.none) + Group.new('Folded', colors.c8, colors.none) + Group.new('WildMenu', colors.c0, colors.c2) + Group.new('SpecialKey', colors.c8, colors.none) + Group.new('DiffAdd', colors.c2, colors.none) + Group.new('DiffChange', colors.c8, colors.none) + Group.new('DiffDelete', colors.c1, colors.none) + Group.new('DiffText', colors.c4, colors.none) + Group.new('IncSearch', colors.c0, colors.c3) + Group.new('Search', colors.c0, colors.c3) + Group.new('Directory', colors.c4, colors.none) + Group.new('MatchParen', colors.c8, colors.c1) + Group.new('ColorColumn', colors.c0, colors.c4) + Group.new('signColumn', colors.c4, colors.none) + Group.new('ErrorMsg', colors.c8, colors.none) + Group.new('ModeMsg', colors.c2, colors.none) + Group.new('MoreMsg', colors.c2, colors.none) + Group.new('Question', colors.c4, colors.none) + Group.new('WarningMsg', colors.c0, colors.c1) + Group.new('Structure', colors.c5, colors.none) + Group.new('CursorColumn', colors.c7, colors.c8) + Group.new('ModeMsg', colors.c7, colors.none) + Group.new('SpellBad', colors.c1, colors.none, styles.underline) + Group.new('SpellCap', colors.c4, colors.none, styles.underline) + Group.new('SpellLocal', colors.c5, colors.none, styles.underline) + Group.new('SpellRare', colors.c6, colors.none, styles.underline) + Group.new('Boolean', colors.c5, colors.none) + Group.new('Character', colors.c1, colors.none) + Group.new('Conditional', colors.c5, colors.none) + Group.new('Define', colors.c5, colors.none) + Group.new('Delimiter', colors.c5, colors.none) + Group.new('NormalFloat', colors.none, colors.none) + Group.new('Float', colors.c5, colors.none) + Group.new('FloatBorder', groups.Normal, colors.none) + Group.new('Include', colors.c4, colors.none) + Group.new('Keyword', colors.c5, colors.none) + Group.new('Label', colors.c3, colors.none) + Group.new('Operator', colors.c7, colors.none) + Group.new('Repeat', colors.c3, colors.none) + Group.new('SpecialChar', colors.c5, colors.none) + Group.new('Tag', colors.c3, colors.none) + Group.new('Typedef', colors.c3, colors.none) + Group.new('WinSeparator', nil, colors.none) +end) diff --git a/lua/tms/colors.lua b/lua/tms/colors.lua @@ -0,0 +1,97 @@ +local M = {} + +M.load_colorscheme = function() + local colors = {} + + if vim.fn.empty('/home/tms/.cache/wal') > 0 then + -- gruvbox + colors = { + background = '#1d2021', + foreground = '#d5c4a1', + cursor = '#d5c4a1', + color0 = '#1d2021', + color1 = '#fb4934', + color2 = '#b8bb26', + color3 = '#fabd2f', + color4 = '#83a598', + color5 = '#d3869b', + color6 = '#8ec07c', + color7 = '#d5c4a1', + color8 = '#665c54', + color9 = '#fb4934', + color10 = '#b8bb26', + color11 = '#fabd2f', + color12 = '#83a598', + color13 = '#d3869b', + color14 = '#8ec07c', + color15 = '#fbf1c7', + } + else + colors = dofile('/home/tms/.cache/wal/colors.lua') + end + + return colors +end + +M.setup_colors = function(colors) + local Color = require('colorbuddy.color').Color + + -- Special + Color.new('backg', colors.background) + Color.new('foreg', colors.foreground) + Color.new('cursor', colors.cursor) + + -- colors + Color.new('black', colors.color0) + Color.new('red', colors.color1) + Color.new('green', colors.color2) + Color.new('yellow', colors.color3) + Color.new('blue', colors.color4) + Color.new('magenta', colors.color5) + Color.new('cyan', colors.color6) + Color.new('white', colors.color7) + + Color.new('c0', colors.color0) + Color.new('c1', colors.color1) + Color.new('c2', colors.color2) + Color.new('c3', colors.color3) + Color.new('c4', colors.color4) + Color.new('c5', colors.color5) + Color.new('c6', colors.color6) + Color.new('c7', colors.color7) + Color.new('c8', colors.color8) + Color.new('c9', colors.color9) + Color.new('c10', colors.color10) + Color.new('c11', colors.color11) + Color.new('c12', colors.color12) + Color.new('c13', colors.color13) + Color.new('c14', colors.color14) + Color.new('c15', colors.color15) +end + +M.is_dark = function(colors) return colors.foreg.L > colors.backg.L end + +M.dimm = function(color, amount, is_dark) + if is_dark then + return color:light(amount) + else + return color:dark(amount) + end +end + +M.update = function(fn) + local colors = require('colorbuddy.color').colors + local is_dark = M.is_dark(colors) + local cb = { + Color = require('colorbuddy.color').Color, + colors = colors, + Group = require('colorbuddy.group').Group, + groups = require('colorbuddy.group').groups, + styles = require('colorbuddy.style').styles, + dimm = function(color, amount) return M.dimm(color, amount, is_dark) end, + is_dark = is_dark, + } + fn(cb) +end + +return M diff --git a/lua/tms/plugins.lua b/lua/tms/plugins.lua @@ -35,7 +35,7 @@ return packer.startup({ use 'mbbill/undotree' use 'camspiers/animate.vim' use 'norcalli/nvim-colorizer.lua' - use 'danilamihailov/beacon.nvim' + use 'rainbowhxch/beacon.nvim' use 'Yggdroot/hiPairs' use 'jandamm/cryoline.nvim' use 'karb94/neoscroll.nvim'