mirror of
https://git.disroot.org/FollieHiyuki/dotfiles.git
synced 2024-11-28 10:18:25 -05:00
neovim: add indent-blankline, use which-key for mappings
Also add more nord highlight groups
This commit is contained in:
parent
e03162b21a
commit
52b9be4bee
@ -1,18 +1,13 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
local function hi(group, guifg, guibg, attr, guisp)
|
local function hi(group, guifg, guibg, attr, guisp)
|
||||||
if guifg ~= '' then
|
local fg = guifg ~= '' and 'guifg=' .. guifg or 'guifg=NONE'
|
||||||
vim.cmd('hi ' .. group .. ' guifg=' .. guifg)
|
local bg = guibg ~= '' and 'guibg=' .. guibg or 'guibg=NONE'
|
||||||
end
|
local style = attr ~= '' and 'gui=' .. attr or 'gui=NONE'
|
||||||
if guibg ~= '' then
|
local sp = guisp ~= '' and 'guisp=' .. guisp or ''
|
||||||
vim.cmd('hi ' .. group .. ' guibg=' .. guibg)
|
|
||||||
end
|
local hl = 'hi ' .. group .. ' ' .. fg .. ' ' .. bg .. ' ' .. style .. ' ' .. sp
|
||||||
if attr ~= '' then
|
vim.cmd(hl)
|
||||||
vim.cmd('hi ' .. group .. ' gui=' .. attr)
|
|
||||||
end
|
|
||||||
if guisp ~= '' then
|
|
||||||
vim.cmd('hi ' .. group .. ' guisp=' .. guisp)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
M.colors = {
|
M.colors = {
|
||||||
@ -33,8 +28,7 @@ M.colors = {
|
|||||||
yellow = '#EBCB8B',
|
yellow = '#EBCB8B',
|
||||||
green = '#A3BE8C',
|
green = '#A3BE8C',
|
||||||
purple = '#B48EAD',
|
purple = '#B48EAD',
|
||||||
highlight = '#7B88A1',
|
highlight = '#7B88A1'
|
||||||
none = 'NONE'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local c = M.colors
|
local c = M.colors
|
||||||
@ -57,14 +51,14 @@ function M.highlight()
|
|||||||
-- Editor
|
-- Editor
|
||||||
hi('ColorColumn', '' , c.grey1, '', '')
|
hi('ColorColumn', '' , c.grey1, '', '')
|
||||||
hi('Cursor' , c.black , c.fg , '', '')
|
hi('Cursor' , c.black , c.fg , '', '')
|
||||||
hi('CursorLine' , c.grey1 , '' , 'NONE', '')
|
hi('CursorLine' , c.grey1 , '' , '', '')
|
||||||
hi('Error' , c.fg , c.red , '', '')
|
hi('Error' , c.fg , c.red , '', '')
|
||||||
hi('iCursor' , c.black , c.fg , '', '')
|
hi('iCursor' , c.black , c.fg , '', '')
|
||||||
hi('LineNr' , c.grey3 , c.none , '', '')
|
hi('LineNr' , c.grey3 , '' , '', '')
|
||||||
hi('MatchParen' , c.cyan , c.grey3, '', '')
|
hi('MatchParen' , c.cyan , c.grey3, '', '')
|
||||||
hi('NonText' , c.grey2 , '' , '', '')
|
hi('NonText' , c.grey2 , '' , '', '')
|
||||||
hi('Normal' , c.fg , c.black, '', '')
|
hi('Normal' , c.fg , c.black, '', '')
|
||||||
hi('Pmenu' , c.fg , c.grey2, 'NONE', '')
|
hi('Pmenu' , c.fg , c.grey2, '', '')
|
||||||
hi('PmenuSbar' , c.fg , c.grey2, '', '')
|
hi('PmenuSbar' , c.fg , c.grey2, '', '')
|
||||||
hi('PmenuSel' , c.cyan , c.grey3, '', '')
|
hi('PmenuSel' , c.cyan , c.grey3, '', '')
|
||||||
hi('PmenuThumb' , c.cyan , c.grey3, '', '')
|
hi('PmenuThumb' , c.cyan , c.grey3, '', '')
|
||||||
@ -82,11 +76,11 @@ function M.highlight()
|
|||||||
hi('TermCursorNC' , '' , c.grey2, '', '')
|
hi('TermCursorNC' , '' , c.grey2, '', '')
|
||||||
|
|
||||||
-- Gutter
|
-- Gutter
|
||||||
hi('CursorColumn', c.grey1, '' , '' , '')
|
hi('CursorColumn', c.grey1, '' , '', '')
|
||||||
hi('CursorLineNr', c.fg , '' , 'NONE', '')
|
hi('CursorLineNr', c.fg , '' , '', '')
|
||||||
hi('Folded' , c.grey3, c.grey1, 'bold', '')
|
hi('Folded' , c.grey3, c.grey1, '', '')
|
||||||
hi('FoldColumn' , c.grey3, c.black, '' , '')
|
hi('FoldColumn' , c.grey3, c.black, '', '')
|
||||||
hi('SignColumn' , c.grey1, c.black, '' , '')
|
hi('SignColumn' , c.grey1, c.black, '', '')
|
||||||
|
|
||||||
-- Navigation
|
-- Navigation
|
||||||
hi('Directory', c.cyan, '', '', '')
|
hi('Directory', c.cyan, '', '', '')
|
||||||
@ -101,23 +95,23 @@ function M.highlight()
|
|||||||
hi('WildMenu' , c.cyan , c.grey1 , '', '')
|
hi('WildMenu' , c.cyan , c.grey1 , '', '')
|
||||||
|
|
||||||
-- Statusline
|
-- Statusline
|
||||||
hi('StatusLine' , c.cyan, c.grey3, 'NONE', '')
|
hi('StatusLine' , c.cyan, c.grey3, '', '')
|
||||||
hi('StatusLineNC' , c.fg , c.grey3, 'NONE', '')
|
hi('StatusLineNC' , c.fg , c.grey3, '', '')
|
||||||
hi('StatusLineTerm' , c.cyan, c.grey3, 'NONE', '')
|
hi('StatusLineTerm' , c.cyan, c.grey3, '', '')
|
||||||
hi('StatusLineTermNC', c.fg , c.grey3, 'NONE', '')
|
hi('StatusLineTermNC', c.fg , c.grey3, '', '')
|
||||||
|
|
||||||
-- Search
|
-- Search
|
||||||
hi('IncSearch', c.white2, c.dark_blue, 'underline', '')
|
hi('IncSearch', c.white2, c.dark_blue, 'underline', '')
|
||||||
hi('Search' , c.grey1 , c.cyan , 'NONE' , '')
|
hi('Search' , c.grey1 , c.cyan , '' , '')
|
||||||
|
|
||||||
-- Tabline
|
-- Tabline
|
||||||
hi('TabLine' , c.fg , c.grey1, 'NONE', '')
|
hi('TabLine' , c.fg , c.grey1, '', '')
|
||||||
hi('TabLineFill', c.fg , c.grey1, 'NONE', '')
|
hi('TabLineFill', c.fg , c.grey1, '', '')
|
||||||
hi('TabLineSel' , c.cyan, c.grey3, 'NONE', '')
|
hi('TabLineSel' , c.cyan, c.grey3, '', '')
|
||||||
|
|
||||||
-- Window
|
-- Window
|
||||||
hi('Title', c.fg, '', 'NONE', '')
|
hi('Title', c.fg, '', '', '')
|
||||||
hi('VertSplit', c.grey2, c.black, 'NONE', '')
|
hi('VertSplit', c.grey2, c.black, '', '')
|
||||||
|
|
||||||
--------------------------
|
--------------------------
|
||||||
-- Language base groups --
|
-- Language base groups --
|
||||||
@ -133,13 +127,13 @@ function M.highlight()
|
|||||||
hi('Exception', c.blue, '', '', '')
|
hi('Exception', c.blue, '', '', '')
|
||||||
hi('Float', c.purple, '', '', '')
|
hi('Float', c.purple, '', '', '')
|
||||||
hi('Function', c.cyan, '', '', '')
|
hi('Function', c.cyan, '', '', '')
|
||||||
hi('Identifier', c.fg, '', 'NONE', '')
|
hi('Identifier', c.fg, '', '', '')
|
||||||
hi('Include', c.blue, '', '', '')
|
hi('Include', c.blue, '', '', '')
|
||||||
hi('Keyword', c.blue, '', '', '')
|
hi('Keyword', c.blue, '', '', '')
|
||||||
hi('Label', c.blue, '', '', '')
|
hi('Label', c.blue, '', '', '')
|
||||||
hi('Number', c.purple, '', '', '')
|
hi('Number', c.purple, '', '', '')
|
||||||
hi('Operator', c.blue, '', 'NONE', '')
|
hi('Operator', c.blue, '', '', '')
|
||||||
hi('PreProc', c.blue, '', 'NONE', '')
|
hi('PreProc', c.blue, '', '', '')
|
||||||
hi('Repeat', c.blue, '', '', '')
|
hi('Repeat', c.blue, '', '', '')
|
||||||
hi('Special', c.fg, '', '', '')
|
hi('Special', c.fg, '', '', '')
|
||||||
hi('SpecialChar', c.yellow, '', '', '')
|
hi('SpecialChar', c.yellow, '', '', '')
|
||||||
@ -149,8 +143,8 @@ function M.highlight()
|
|||||||
hi('String', c.green, '', '', '')
|
hi('String', c.green, '', '', '')
|
||||||
hi('Structure', c.blue, '', '', '')
|
hi('Structure', c.blue, '', '', '')
|
||||||
hi('Tag', c.fg, '', '', '')
|
hi('Tag', c.fg, '', '', '')
|
||||||
hi('Todo', c.yellow, c.none, '', '')
|
hi('Todo', c.yellow, '', '', '')
|
||||||
hi('Type', c.blue, '', 'NONE', '')
|
hi('Type', c.blue, '', '', '')
|
||||||
hi('Typedef', c.blue, '', '', '')
|
hi('Typedef', c.blue, '', '', '')
|
||||||
vim.cmd('hi! link Macro Define')
|
vim.cmd('hi! link Macro Define')
|
||||||
vim.cmd('hi! link PreCondit PreProc')
|
vim.cmd('hi! link PreCondit PreProc')
|
||||||
@ -189,6 +183,15 @@ function M.highlight()
|
|||||||
hi('DiffChange', c.yellow, c.grey1, '', '')
|
hi('DiffChange', c.yellow, c.grey1, '', '')
|
||||||
hi('DiffDelete', c.red , c.grey1, '', '')
|
hi('DiffDelete', c.red , c.grey1, '', '')
|
||||||
hi('DiffText' , c.blue , c.grey1, '', '')
|
hi('DiffText' , c.blue , c.grey1, '', '')
|
||||||
|
-- Legacy diff groups for some plugins
|
||||||
|
hi('diffOldFile', c.dark_blue, c.grey1, '', '')
|
||||||
|
hi('diffNewFile', c.blue, c.grey1, '', '')
|
||||||
|
hi('diffFile', c.cyan, c.grey1, '', '')
|
||||||
|
hi('diffLine', c.purple, c.grey1, '', '')
|
||||||
|
hi('diffIndexLine', c.fg, c.grey1, '', '')
|
||||||
|
vim.cmd('hi! link diffAdded DiffAdd')
|
||||||
|
vim.cmd('hi! link diffRemoved DiffDelete')
|
||||||
|
vim.cmd('hi! link diffChanged DiffChange')
|
||||||
|
|
||||||
---------------------
|
---------------------
|
||||||
-- Plugins' groups --
|
-- Plugins' groups --
|
||||||
@ -198,12 +201,41 @@ function M.highlight()
|
|||||||
hi('GitSignsChangeNr', c.yellow, '', '', '')
|
hi('GitSignsChangeNr', c.yellow, '', '', '')
|
||||||
hi('GitSignsDeleteNr', c.red , '', '', '')
|
hi('GitSignsDeleteNr', c.red , '', '', '')
|
||||||
|
|
||||||
|
-- BufferLine
|
||||||
|
hi('BufferLineIndicatorSelected', c.black, '', '', '')
|
||||||
|
hi('BufferLineFill', c.black, '', '', '')
|
||||||
|
|
||||||
-- Dashboard
|
-- Dashboard
|
||||||
hi('DashboardHeader' , c.cyan , '', 'bold' , '')
|
hi('DashboardHeader' , c.cyan , '', 'bold' , '')
|
||||||
hi('DashboardCenter' , c.blue , '', 'bold' , '')
|
hi('DashboardCenter' , c.blue , '', 'bold' , '')
|
||||||
hi('DashboardShortcut', c.grey_bright, '', 'bold,italic', '')
|
hi('DashboardShortcut', c.grey_bright, '', 'bold,italic', '')
|
||||||
hi('DashboardFooter' , c.green , '', 'bold' , '')
|
hi('DashboardFooter' , c.green , '', 'bold' , '')
|
||||||
|
|
||||||
|
-- NvimTree
|
||||||
|
hi('NvimTreeRootFolder' , c.teal , '', 'bold', '')
|
||||||
|
hi('NvimTreeGitDirty' , c.yellow , '', '', '')
|
||||||
|
hi('NvimTreeGitNew' , c.green , '', '', '')
|
||||||
|
hi('NvimTreeImageFile' , c.purple , '', '', '')
|
||||||
|
hi('NvimTreeExecFile' , c.green , '', '', '')
|
||||||
|
hi('NvimTreeSpecialFile' , c.dark_blue, '', 'underline', '')
|
||||||
|
hi('NvimTreeFolderName' , c.blue , '', '', '')
|
||||||
|
hi('NvimTreeEmptyFolderName', c.grey3 , '', '', '')
|
||||||
|
hi('NvimTreeFolderIcon' , c.fg , '', '', '')
|
||||||
|
hi('NvimTreeIndentMarker' , c.grey3 , '', '', '')
|
||||||
|
hi('NvimTreeNormal' , c.fg , c.black, '', '')
|
||||||
|
|
||||||
|
-- WhichKey
|
||||||
|
hi('WhichKey' , c.green , '', 'bold', '')
|
||||||
|
hi('WhichKeyGroup' , c.cyan , '', '' , '')
|
||||||
|
hi('WhichKeyDesc' , c.blue , '', '' , '')
|
||||||
|
hi('WhichKeySeperator', c.grey3 , '', '' , '')
|
||||||
|
hi('WhichKeyFloating' , c.fg , '', '' , '')
|
||||||
|
hi('WhichKeyFloat' , c.grey_bright, '', '' , '')
|
||||||
|
|
||||||
|
-- Indent Blankline
|
||||||
|
hi('IndentBlanklineChar', c.grey1, '', '', '')
|
||||||
|
hi('IndentBlanklineContextChar', c.grey1, '', '', '')
|
||||||
|
|
||||||
-- ts-rainbow
|
-- ts-rainbow
|
||||||
hi('rainbowcol1', c.red, '', 'bold', '')
|
hi('rainbowcol1', c.red, '', 'bold', '')
|
||||||
hi('rainbowcol2', c.orange, '', 'bold', '')
|
hi('rainbowcol2', c.orange, '', 'bold', '')
|
||||||
@ -212,6 +244,39 @@ function M.highlight()
|
|||||||
hi('rainbowcol5', c.cyan, '', 'bold', '')
|
hi('rainbowcol5', c.cyan, '', 'bold', '')
|
||||||
hi('rainbowcol6', c.blue, '', 'bold', '')
|
hi('rainbowcol6', c.blue, '', 'bold', '')
|
||||||
hi('rainbowcol7', c.purple, '', 'bold', '')
|
hi('rainbowcol7', c.purple, '', 'bold', '')
|
||||||
|
|
||||||
|
-- Treesitter
|
||||||
|
hi('TSAnnotation' , c.orange, '', '', '')
|
||||||
|
hi('TSCharacter' , c.fg , '', '', '')
|
||||||
|
hi('TSConstructor' , c.blue , '', '', '')
|
||||||
|
hi('TSConstant' , c.fg , '', '', '')
|
||||||
|
hi('TSFloat' , c.purple, '', '', '')
|
||||||
|
hi('TSNumber' , c.purple, '', '', '')
|
||||||
|
hi('TSString' , c.green , '', '', '')
|
||||||
|
hi('TSAttribute' , c.purple, '', '', '')
|
||||||
|
hi('TSBoolean' , c.blue , '', '', '')
|
||||||
|
hi('TSConstBuiltin', c.teal , '', '', '')
|
||||||
|
hi('TSConstMacro' , c.teal , '', '', '')
|
||||||
|
hi('TSError' , c.fg , c.red, '', '')
|
||||||
|
hi('TSException' , c.red , '', 'underline', '')
|
||||||
|
hi('TSField' , c.fg , '', '', '')
|
||||||
|
hi('TSFuncMacro' , c.cyan , '', '', '')
|
||||||
|
hi('TSInclude' , c.teal , '', '', '')
|
||||||
|
hi('TSLabel' , c.blue , '', '', '')
|
||||||
|
hi('TSNamespace' , c.teal , '', '', '')
|
||||||
|
hi('TSOperator' , c.blue , '', '', '')
|
||||||
|
hi('TSParameter' , c.dark_blue, '', '', '')
|
||||||
|
hi('TSParameterReference', c.dark_blue, '', '', '')
|
||||||
|
hi('TSProperty' , c.fg , '', '', '')
|
||||||
|
hi('TSPunctDelimiter', c.white2, '', '', '')
|
||||||
|
hi('TSPunctBracket', c.white2, '', '', '')
|
||||||
|
hi('TSPunctSpecial', c.white2 , '', '', '')
|
||||||
|
hi('TSStringRegex' , c.teal, '', '', '')
|
||||||
|
hi('TSStringEscape', c.grey2, '', '', '')
|
||||||
|
hi('TSSymbol' , c.purple, '', '', '')
|
||||||
|
hi('TSType' , c.blue , '', '', '')
|
||||||
|
hi('TSTypeBuiltin' , c.blue, '', '', '')
|
||||||
|
hi('TSTag' , c.teal, '', '', '')
|
||||||
end
|
end
|
||||||
|
|
||||||
return M
|
return M
|
||||||
|
@ -1,18 +1,13 @@
|
|||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
local function hi(group, guifg, guibg, attr, guisp)
|
local function hi(group, guifg, guibg, attr, guisp)
|
||||||
if guifg ~= '' then
|
local fg = guifg ~= '' and 'guifg=' .. guifg or 'guifg=NONE'
|
||||||
vim.cmd('hi ' .. group .. ' guifg=' .. guifg)
|
local bg = guibg ~= '' and 'guibg=' .. guibg or 'guibg=NONE'
|
||||||
end
|
local style = attr ~= '' and 'gui=' .. attr or 'gui=NONE'
|
||||||
if guibg ~= '' then
|
local sp = guisp ~= '' and 'guisp=' .. guisp or ''
|
||||||
vim.cmd('hi ' .. group .. ' guibg=' .. guibg)
|
|
||||||
end
|
local hl = 'hi ' .. group .. ' ' .. fg .. ' ' .. bg .. ' ' .. style .. ' ' .. sp
|
||||||
if attr ~= '' then
|
vim.cmd(hl)
|
||||||
vim.cmd('hi ' .. group .. ' gui=' .. attr)
|
|
||||||
end
|
|
||||||
if guisp ~= '' then
|
|
||||||
vim.cmd('hi ' .. group .. ' guisp=' .. guisp)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
M.colors = {
|
M.colors = {
|
||||||
@ -34,8 +29,7 @@ M.colors = {
|
|||||||
yellow = '#E5C07B',
|
yellow = '#E5C07B',
|
||||||
green = '#98C379',
|
green = '#98C379',
|
||||||
purple = '#C678DD',
|
purple = '#C678DD',
|
||||||
highlight = '#9CA0A4',
|
highlight = '#9CA0A4'
|
||||||
none = 'NONE'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local c = M.colors
|
local c = M.colors
|
||||||
|
@ -22,8 +22,11 @@ end
|
|||||||
|
|
||||||
function M.load_autocmds()
|
function M.load_autocmds()
|
||||||
local definitions = {
|
local definitions = {
|
||||||
packer = {
|
plugins = {
|
||||||
{"BufWritePost", "*.lua", "lua require('events').packer_compile()"}
|
-- Re-compile packer on config changed
|
||||||
|
{"BufWritePost", "*.lua", "lua require('events').packer_compile()"},
|
||||||
|
-- Blankline is lazy-load
|
||||||
|
{"CursorMoved", [[* IndentBlanklineRefresh]]}
|
||||||
},
|
},
|
||||||
|
|
||||||
-- Edit binary files in hex with xxd (:%!xxd and :%!xxd -r)
|
-- Edit binary files in hex with xxd (:%!xxd and :%!xxd -r)
|
||||||
|
@ -1,74 +1,72 @@
|
|||||||
local function map(mode, lhs, rhs, opts)
|
local api = vim.api
|
||||||
local options = {noremap = true, silent = true}
|
local wk = require('which-key')
|
||||||
if opts then
|
|
||||||
options = vim.tbl_extend('force', options, opts)
|
|
||||||
end
|
|
||||||
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
|
||||||
end
|
|
||||||
|
|
||||||
local opt = {}
|
|
||||||
|
|
||||||
--------------------
|
--------------------
|
||||||
-- Basic bindings --
|
-- Basic bindings --
|
||||||
--------------------
|
--------------------
|
||||||
-- No one likes Esc
|
-- No one likes Esc
|
||||||
map('i', 'jk', [[<Esc>]], opt)
|
api.nvim_set_keymap('i', 'jk', [[<Esc>]], {noremap = true, silent = true})
|
||||||
|
|
||||||
-- Better Y
|
-- Escape to normal mode in terminal buffer
|
||||||
map('n', 'Y', [[y$]], opt)
|
api.nvim_set_keymap('t', '<Esc>', '<C-\\><C-n>', {noremap = true, silent = true})
|
||||||
|
|
||||||
-- Continuous indent
|
-- Continuous indent
|
||||||
map('v', '<', '<gv', opt)
|
api.nvim_set_keymap('v', '<', '<gv', {noremap = true, silent = true})
|
||||||
map('v', '>', '>gv', opt)
|
api.nvim_set_keymap('v', '>', '>gv', {noremap = true, silent = true})
|
||||||
|
|
||||||
-- Escape mode in terminal buffer
|
-- Normal mode
|
||||||
map('t', '<Esc>', '<C-\\><C-n>', opt)
|
|
||||||
|
|
||||||
-- Copy the whole buffer
|
|
||||||
map('n', '<C-a>', [[ <Cmd> %y+<CR>]], opt)
|
|
||||||
-- 'Legacy' save file
|
|
||||||
-- map('n', '<C-s>', ':w <CR>', opt)
|
|
||||||
-- Close buffer
|
|
||||||
map('n', '<C-x>', ':bd!<CR>', opt)
|
|
||||||
|
|
||||||
-- Remove trailing whitespace
|
|
||||||
map('n', '<A-w>', ':%s/\\s\\+$//e<CR>', opt)
|
|
||||||
|
|
||||||
-- Resize buffer
|
|
||||||
map('n', '<A-j>', ':resize -2<CR>', opt)
|
|
||||||
map('n', '<A-k>', ':resize +2<CR>', opt)
|
|
||||||
map('n', '<A-h>', ':vertical resize -2<CR>', opt)
|
|
||||||
map('n', '<A-l>', ':vertical resize +2<CR>', opt)
|
|
||||||
|
|
||||||
-- Switch between tabs and spaces
|
|
||||||
function toggleIndentStyle()
|
|
||||||
if vim.o.expandtab == true then
|
|
||||||
vim.cmd('set noexpandtab nosmarttab softtabstop& shiftwidth&')
|
|
||||||
vim.cmd('echomsg "Switched to indent with tabs"')
|
|
||||||
else
|
|
||||||
vim.opt.expandtab = true
|
|
||||||
vim.opt.smarttab = true
|
|
||||||
vim.opt.softtabstop = 4
|
|
||||||
vim.opt.shiftwidth = 4
|
|
||||||
vim.cmd('echomsg "Switched to indent with 4 spaces"')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
map('n', '<A-t>', ':lua toggleIndentStyle()<CR>', opt)
|
|
||||||
|
|
||||||
-- Move between tabs
|
|
||||||
map('n', '<TAB>', [[<Cmd>BufferLineCycleNext<CR>]], opt)
|
|
||||||
map('n', '<S-TAB>', [[<Cmd>BufferLineCyclePrev<CR>]], opt)
|
|
||||||
|
|
||||||
-- NvimTree
|
|
||||||
map('n', '<C-n>', ':NvimTreeToggle<CR>', opt)
|
|
||||||
|
|
||||||
---------------
|
|
||||||
-- Which-key --
|
|
||||||
---------------
|
|
||||||
local wk = require('which-key')
|
|
||||||
|
|
||||||
-- Don't need to show bufferline numbers
|
|
||||||
wk.register({
|
wk.register({
|
||||||
|
-- Better Y
|
||||||
|
Y = {'y$', 'Yank to eol'},
|
||||||
|
|
||||||
|
-- Copy the whole buffer
|
||||||
|
['<C-a>'] = {'<Cmd>%y+<CR>', 'Copy whole buffer'},
|
||||||
|
|
||||||
|
-- 'Legacy' save buffer
|
||||||
|
-- ['<C-s>'] = {':w<CR>', 'Write buffer'},
|
||||||
|
|
||||||
|
-- Close buffer
|
||||||
|
['<C-x>'] = {':bd!<CR>', 'Close buffer'},
|
||||||
|
|
||||||
|
-- Remove trailing whitespace
|
||||||
|
['<A-w>'] = {':%s/\\s\\+$//e<CR>', 'Remove trailing'},
|
||||||
|
|
||||||
|
-- Resize buffer
|
||||||
|
['<A-j>'] = {':resize -2<CR>', 'Resize vertical -2'},
|
||||||
|
['<A-k>'] = {':resize +2<CR>', 'Resize vertical +2'},
|
||||||
|
['<A-h>'] = {':vertical resize -2<CR>', 'Resize horizontal -2'},
|
||||||
|
['<A-l>'] = {':vertical resize +2<CR>', 'Resize horizontal +2'},
|
||||||
|
|
||||||
|
-- Switch between tabs and spaces
|
||||||
|
['<A-t>'] = {
|
||||||
|
function()
|
||||||
|
if vim.o.expandtab == true then
|
||||||
|
vim.cmd('set noexpandtab nosmarttab softtabstop& shiftwidth&')
|
||||||
|
vim.cmd('echomsg "Switched to indent with tabs"')
|
||||||
|
else
|
||||||
|
vim.opt.expandtab = true
|
||||||
|
vim.opt.smarttab = true
|
||||||
|
vim.opt.softtabstop = 4
|
||||||
|
vim.opt.shiftwidth = 4
|
||||||
|
vim.cmd('echomsg "Switched to indent with 4 spaces"')
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
'Switch indent style'
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Naming common keys
|
||||||
|
['['] = {name = 'Block motions (previous)'},
|
||||||
|
[']'] = {name = 'Block motions (next)'},
|
||||||
|
g = {name = 'Goto motions'},
|
||||||
|
z = {name = 'Misc utils'}
|
||||||
|
})
|
||||||
|
|
||||||
|
-------------
|
||||||
|
-- Plugins --
|
||||||
|
-------------
|
||||||
|
-- Normal mode
|
||||||
|
wk.register({
|
||||||
|
-- Don't need to show bufferline numbers
|
||||||
['<leader>1'] = 'which_key_ignore',
|
['<leader>1'] = 'which_key_ignore',
|
||||||
['<leader>2'] = 'which_key_ignore',
|
['<leader>2'] = 'which_key_ignore',
|
||||||
['<leader>3'] = 'which_key_ignore',
|
['<leader>3'] = 'which_key_ignore',
|
||||||
@ -77,7 +75,51 @@ wk.register({
|
|||||||
['<leader>6'] = 'which_key_ignore',
|
['<leader>6'] = 'which_key_ignore',
|
||||||
['<leader>7'] = 'which_key_ignore',
|
['<leader>7'] = 'which_key_ignore',
|
||||||
['<leader>8'] = 'which_key_ignore',
|
['<leader>8'] = 'which_key_ignore',
|
||||||
['<leader>9'] = 'which_key_ignore'
|
['<leader>9'] = 'which_key_ignore',
|
||||||
|
|
||||||
|
-- Move between tabs
|
||||||
|
['<TAB>'] = {'<Cmd>BufferLineCycleNext<CR>', 'Next buffer'},
|
||||||
|
['<S-TAB>'] = {'<Cmd>BufferLineCyclePrev<CR>', 'Previous buffer'},
|
||||||
|
|
||||||
|
-- NvimTree
|
||||||
|
['<C-n>'] = {':NvimTreeToggle<CR>', 'NvimTree'},
|
||||||
|
|
||||||
|
-- ToggleTerm
|
||||||
|
['<C-\\>'] = 'Toggle terminal',
|
||||||
})
|
})
|
||||||
|
|
||||||
-- ToggleTerm
|
-- With leader key (normal mode)
|
||||||
|
wk.register({
|
||||||
|
-- GitSigns
|
||||||
|
g = {
|
||||||
|
name = 'Git',
|
||||||
|
b = 'Blame current line',
|
||||||
|
i = 'Preview hunk',
|
||||||
|
n = 'Next hunk',
|
||||||
|
p = 'Previous hunk',
|
||||||
|
r = 'Reset hunk',
|
||||||
|
R = 'Reset all hunks in buffer',
|
||||||
|
s = 'Stage hunk',
|
||||||
|
u = 'Undo hunk'
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Telescope
|
||||||
|
f = {
|
||||||
|
name = 'Telescope'
|
||||||
|
},
|
||||||
|
|
||||||
|
b = {
|
||||||
|
name = 'Buffer',
|
||||||
|
n = {':DashboardNewFile<CR>', 'New file'}
|
||||||
|
}
|
||||||
|
}, {prefix = '<leader>'})
|
||||||
|
|
||||||
|
-- With leader key (visual mode)
|
||||||
|
wk.register({
|
||||||
|
-- GitSigns
|
||||||
|
g = {
|
||||||
|
name = 'Git',
|
||||||
|
r = 'Reset hunk',
|
||||||
|
s = 'Stage hunk'
|
||||||
|
}
|
||||||
|
}, {mode = 'v', prefix = '<leader>'})
|
||||||
|
45
home/.config/nvim/lua/modules/blankline.lua
Normal file
45
home/.config/nvim/lua/modules/blankline.lua
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
local function blankline_options()
|
||||||
|
vim.g.indent_blankline_char = '│'
|
||||||
|
vim.g.indent_blankline_show_first_indent_level = true
|
||||||
|
vim.g.indent_blankline_filetype_exclude = {
|
||||||
|
'startify',
|
||||||
|
'dashboard',
|
||||||
|
'dotooagenda',
|
||||||
|
'log',
|
||||||
|
'fugitive',
|
||||||
|
'gitcommit',
|
||||||
|
'packer',
|
||||||
|
'vimwiki',
|
||||||
|
'markdown',
|
||||||
|
'json',
|
||||||
|
'txt',
|
||||||
|
'vista',
|
||||||
|
'help',
|
||||||
|
'todoist',
|
||||||
|
'NvimTree',
|
||||||
|
'peekaboo',
|
||||||
|
'git',
|
||||||
|
'TelescopePrompt',
|
||||||
|
'undotree',
|
||||||
|
'flutterToolsOutline',
|
||||||
|
'' -- for all buffers without a file type
|
||||||
|
}
|
||||||
|
vim.g.indent_blankline_buftype_exclude = {'terminal', 'nofile'}
|
||||||
|
vim.g.indent_blankline_show_trailing_blankline_indent = false
|
||||||
|
vim.g.indent_blankline_show_current_context = true
|
||||||
|
vim.g.indent_blankline_context_patterns = {
|
||||||
|
'class',
|
||||||
|
'function',
|
||||||
|
'method',
|
||||||
|
'block',
|
||||||
|
'list_literal',
|
||||||
|
'selector',
|
||||||
|
'^if',
|
||||||
|
'^table',
|
||||||
|
'if_statement',
|
||||||
|
'while',
|
||||||
|
'for'
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
blankline_options()
|
@ -1,4 +1,4 @@
|
|||||||
return require('colorizer').setup(
|
return require('colorizer').setup {
|
||||||
{'*'},
|
{'*'},
|
||||||
{
|
{
|
||||||
RGB = true, -- #RGB hex codes
|
RGB = true, -- #RGB hex codes
|
||||||
@ -11,4 +11,4 @@ return require('colorizer').setup(
|
|||||||
css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn
|
css_fn = true, -- Enable all CSS *functions*: rgb_fn, hsl_fn
|
||||||
mode = 'background' -- Set the display mode.
|
mode = 'background' -- Set the display mode.
|
||||||
}
|
}
|
||||||
)
|
}
|
||||||
|
@ -10,8 +10,7 @@ local function dashboard_options()
|
|||||||
b = {description = {' Recents SPC f o'}, command = 'Telescope oldfiles'},
|
b = {description = {' Recents SPC f o'}, command = 'Telescope oldfiles'},
|
||||||
c = {description = {' Find Word SPC f w'}, command = 'Telescope live_grep'},
|
c = {description = {' Find Word SPC f w'}, command = 'Telescope live_grep'},
|
||||||
d = {description = {'洛 New File SPC b n'}, command = 'DashboardNewFile'},
|
d = {description = {'洛 New File SPC b n'}, command = 'DashboardNewFile'},
|
||||||
e = {description = {' Bookmarks SPC f m'}, command = 'Telescope marks'},
|
e = {description = {' Bookmarks SPC f m'}, command = 'Telescope marks'}
|
||||||
f = {description = {' Load Last Session SPC s l'}, command = 'SessionLoad'}
|
|
||||||
}
|
}
|
||||||
vim.g.dashboard_custom_header = {
|
vim.g.dashboard_custom_header = {
|
||||||
" ",
|
" ",
|
||||||
|
@ -12,8 +12,8 @@ return require('gitsigns').setup {
|
|||||||
noremap = true,
|
noremap = true,
|
||||||
buffer = true,
|
buffer = true,
|
||||||
|
|
||||||
['n ]c'] = { expr = true, '&diff ? \']c\' : \'<cmd>lua require"gitsigns.actions".next_hunk()<CR>\''},
|
['n <leader>gn'] = {expr = true, '&diff ? \'<leader>gn\' : \'<cmd>lua require"gitsigns.actions".next_hunk()<CR>\''},
|
||||||
['n [c'] = { expr = true, '&diff ? \'[c\' : \'<cmd>lua require"gitsigns.actions".prev_hunk()<CR>\''},
|
['n <leader>gp'] = {expr = true, '&diff ? \'<leader>gp\' : \'<cmd>lua require"gitsigns.actions".prev_hunk()<CR>\''},
|
||||||
|
|
||||||
['n <leader>gs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>',
|
['n <leader>gs'] = '<cmd>lua require"gitsigns".stage_hunk()<CR>',
|
||||||
['v <leader>gs'] = '<cmd>lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>',
|
['v <leader>gs'] = '<cmd>lua require"gitsigns".stage_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>',
|
||||||
@ -21,7 +21,7 @@ return require('gitsigns').setup {
|
|||||||
['n <leader>gr'] = '<cmd>lua require"gitsigns".reset_hunk()<CR>',
|
['n <leader>gr'] = '<cmd>lua require"gitsigns".reset_hunk()<CR>',
|
||||||
['v <leader>gr'] = '<cmd>lua require"gitsigns".reset_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>',
|
['v <leader>gr'] = '<cmd>lua require"gitsigns".reset_hunk({vim.fn.line("."), vim.fn.line("v")})<CR>',
|
||||||
['n <leader>gR'] = '<cmd>lua require"gitsigns".reset_buffer()<CR>',
|
['n <leader>gR'] = '<cmd>lua require"gitsigns".reset_buffer()<CR>',
|
||||||
['n <leader>gp'] = '<cmd>lua require"gitsigns".preview_hunk()<CR>',
|
['n <leader>gi'] = '<cmd>lua require"gitsigns".preview_hunk()<CR>',
|
||||||
['n <leader>gb'] = '<cmd>lua require"gitsigns".blame_line(true)<CR>'
|
['n <leader>gb'] = '<cmd>lua require"gitsigns".blame_line(true)<CR>'
|
||||||
},
|
},
|
||||||
watch_index = {
|
watch_index = {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
local function tree_options()
|
local function tree_options()
|
||||||
vim.g.nvim_tree_width = 35
|
vim.g.nvim_tree_width = 35
|
||||||
vim.g.nvim_tree_ignore = { '.git', '.hg', '.svn', 'node_modules' }
|
vim.g.nvim_tree_ignore = {'.git', '.hg', '.svn', 'node_modules'}
|
||||||
vim.g.nvim_tree_auto_open = 1
|
vim.g.nvim_tree_auto_open = 1
|
||||||
vim.g.nvim_tree_auto_close = 1
|
vim.g.nvim_tree_auto_close = 1
|
||||||
vim.g.nvim_tree_auto_ignore_ft = { 'dashboard' }
|
vim.g.nvim_tree_auto_ignore_ft = {'dashboard'}
|
||||||
vim.g.nvim_tree_follow = 1
|
vim.g.nvim_tree_follow = 1
|
||||||
vim.g.nvim_tree_indent_markers = 1
|
vim.g.nvim_tree_indent_markers = 1
|
||||||
vim.g.nvim_tree_git_hl = 1
|
vim.g.nvim_tree_git_hl = 1
|
||||||
|
@ -1,20 +1,14 @@
|
|||||||
local M = {}
|
return require('toggleterm').setup {
|
||||||
|
open_mapping = [[<c-\>]],
|
||||||
M.config = function()
|
shade_terminals = false,
|
||||||
require('toggleterm').setup {
|
float_opts = {
|
||||||
open_mapping = [[<c-\>]],
|
border = 'curved',
|
||||||
shade_terminals = false,
|
width = 80,
|
||||||
float_opts = {
|
height = 80,
|
||||||
border = 'curved',
|
winblend = 3,
|
||||||
width = 80,
|
highlights = {
|
||||||
height = 80,
|
border = 'Normal',
|
||||||
winblend = 3,
|
background = 'Normal'
|
||||||
highlights = {
|
|
||||||
border = 'Normal',
|
|
||||||
background = 'Normal'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
end
|
}
|
||||||
|
|
||||||
return M
|
|
||||||
|
16
home/.config/nvim/lua/modules/whichkey.lua
Normal file
16
home/.config/nvim/lua/modules/whichkey.lua
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
return require('which-key').setup {
|
||||||
|
plugins = {
|
||||||
|
spelling = {
|
||||||
|
enabled = true,
|
||||||
|
suggestions = 30
|
||||||
|
}
|
||||||
|
},
|
||||||
|
icons = {
|
||||||
|
breadcrumb = "»",
|
||||||
|
separator = "ﰲ",
|
||||||
|
group = "+"
|
||||||
|
},
|
||||||
|
layout = {
|
||||||
|
align = 'center'
|
||||||
|
}
|
||||||
|
}
|
@ -6,7 +6,7 @@ local function load_options()
|
|||||||
vim.cmd('set iskeyword+=-')
|
vim.cmd('set iskeyword+=-')
|
||||||
|
|
||||||
-- General settings
|
-- General settings
|
||||||
opt.mouse = 'a'
|
opt.mouse = 'nv'
|
||||||
opt.errorbells = false
|
opt.errorbells = false
|
||||||
opt.visualbell = false
|
opt.visualbell = false
|
||||||
opt.hidden = true
|
opt.hidden = true
|
||||||
|
@ -43,14 +43,16 @@ return packer.startup(
|
|||||||
}
|
}
|
||||||
use {
|
use {
|
||||||
'folke/which-key.nvim',
|
'folke/which-key.nvim',
|
||||||
require('which-key').setup()
|
config = function()
|
||||||
|
require('modules.whichkey')
|
||||||
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Utils
|
-- Utils
|
||||||
use {
|
use {
|
||||||
'akinsho/nvim-toggleterm.lua',
|
'akinsho/nvim-toggleterm.lua',
|
||||||
config = function()
|
config = function()
|
||||||
require('modules.terminal').config()
|
require('modules.terminal')
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,6 +74,12 @@ return packer.startup(
|
|||||||
vim.cmd('ColorizerReloadAllBuffers')
|
vim.cmd('ColorizerReloadAllBuffers')
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
use {
|
||||||
|
'lukas-reineke/indent-blankline.nvim',
|
||||||
|
config = function()
|
||||||
|
require('modules.blankline')
|
||||||
|
end
|
||||||
|
}
|
||||||
use {
|
use {
|
||||||
'nvim-treesitter/nvim-treesitter',
|
'nvim-treesitter/nvim-treesitter',
|
||||||
run = ':TSUpdate',
|
run = ':TSUpdate',
|
||||||
|
@ -304,7 +304,6 @@ disabled = false
|
|||||||
python_binary = "python3"
|
python_binary = "python3"
|
||||||
pyenv_version_name = false
|
pyenv_version_name = false
|
||||||
pyenv_prefix = "pyenv"
|
pyenv_prefix = "pyenv"
|
||||||
scan_for_pyfiles = true
|
|
||||||
symbol = " "
|
symbol = " "
|
||||||
style = "yellow bold"
|
style = "yellow bold"
|
||||||
format = "via [${symbol}${pyenv_prefix}${version}( \\($virtualenv\\))]($style) "
|
format = "via [${symbol}${pyenv_prefix}${version}( \\($virtualenv\\))]($style) "
|
||||||
|
Loading…
Reference in New Issue
Block a user