commit dd36edfe11ad068dff594cff5d696c1c757f74ed
parent 961bf3e9371698cdf0cc1c3b8bc29fd330464fdd
Author: Tomas Nemec <nemi@skaut.cz>
Date: Thu, 14 Apr 2022 13:13:27 +0200
udpate
Diffstat:
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'