feat(mappings): add plugin mapping descriptions

This commit is contained in:
Matthew Leong 2023-01-09 17:35:24 -08:00
parent 5966aa4882
commit e16fce2f4f
7 changed files with 109 additions and 62 deletions

View file

@ -12,7 +12,7 @@ function M.init(client, bufnr)
buf_map('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<cr>', { desc = 'Go to declaration' })
buf_map('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<cr>', { desc = 'Go to implementation' })
buf_map('n', 'gt', '<cmd>lua vim.lsp.buf.type_definition()<cr>', { desc = 'Go to type definition' })
buf_map('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>', { desc = 'Find references' })
buf_map('n', 'gr', '<cmd>lua vim.lsp.buf.references()<cr>', { desc = 'Go to reference' })
-- diagnostics
buf_map('n', '[g', '<cmd>lua vim.diagnostic.goto_prev()<cr>', { desc = 'Next diagnostic' })

View file

@ -1,10 +1,11 @@
local map = require('cosmic.utils').map
-- session
map('n', '<leader>sl', '<cmd>silent RestoreSession<cr>')
map('n', '<leader>ss', '<cmd>SaveSession<cr>')
map('n', '<leader>sl', '<cmd>silent RestoreSession<cr>', { desc = 'Restore session' })
map('n', '<leader>ss', '<cmd>SaveSession<cr>', { desc = 'Save session' })
map(
'n',
'<leader>si',
'<cmd>lua require("cosmic.utils.logger"):log("Session name: " .. require("auto-session-library").current_session_name())<cr>'
'<cmd>lua require("cosmic.utils.logger"):log("Session name: " .. require("auto-session-library").current_session_name())<cr>',
{ desc = 'Print session' }
)

View file

@ -14,51 +14,9 @@ return {
topdelete = { hl = 'GitSignsDelete', text = '', numhl = 'GitSignsDeleteNr', linehl = 'GitSignsDeleteLn' },
changedelete = { hl = 'GitSignsChange', text = '~', numhl = 'GitSignsChangeNr', linehl = 'GitSignsChangeLn' },
},
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
keymaps = {
-- Default keymap options
noremap = true,
['n ]c'] = { expr = true, "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'" },
['n [c'] = { expr = true, "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'" },
['n <leader>hs'] = '<cmd>Gitsigns stage_hunk<CR>',
['v <leader>hs'] = ':Gitsigns stage_hunk<CR>',
['n <leader>hu'] = '<cmd>Gitsigns undo_stage_hunk<CR>',
['n <leader>hr'] = '<cmd>Gitsigns reset_hunk<CR>',
['v <leader>hr'] = ':Gitsigns reset_hunk<CR>',
['n <leader>hR'] = '<cmd>Gitsigns reset_buffer<CR>',
['n <leader>hp'] = '<cmd>Gitsigns preview_hunk<CR>',
['n <leader>hb'] = '<cmd>lua require"gitsigns".blame_line{full=true}<CR>',
['n <leader>hS'] = '<cmd>Gitsigns stage_buffer<CR>',
['n <leader>hU'] = '<cmd>Gitsigns reset_buffer_index<CR>',
-- Text objects
['o ih'] = ':<C-U>Gitsigns select_hunk<CR>',
['x ih'] = ':<C-U>Gitsigns select_hunk<CR>',
},
watch_gitdir = {
interval = 1000,
follow_files = true,
},
attach_to_untracked = true,
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
current_line_blame_opts = {
virt_text = true,
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
delay = 1000,
ignore_whitespace = false,
},
current_line_blame_formatter_opts = {
relative_time = false,
},
sign_priority = 6,
update_debounce = 100,
status_formatter = nil, -- Use default
max_file_length = 40000,
preview_config = {
-- Options passed to nvim_open_win
border = user_config.border,
@ -70,6 +28,59 @@ return {
yadm = {
enable = false,
},
on_attach = function(bufnr)
local gs = package.loaded.gitsigns
local map = u.create_buf_map(bufnr)
-- Navigation
map('n', ']c', function()
if vim.wo.diff then
return ']c'
end
vim.schedule(function()
gs.next_hunk()
end)
return '<Ignore>'
end, {
expr = true,
desc = 'Next git hunk',
})
map('n', '[c', function()
if vim.wo.diff then
return '[c'
end
vim.schedule(function()
gs.prev_hunk()
end)
return '<Ignore>'
end, {
expr = true,
desc = 'Prev git hunk',
})
-- Actions
map({ 'n', 'v' }, '<leader>hs', ':Gitsigns stage_hunk<CR>', { desc = 'Stage hunk' })
map({ 'n', 'v' }, '<leader>hr', ':Gitsigns reset_hunk<CR>', { desc = 'Reset hunk' })
map('n', '<leader>hS', gs.stage_buffer, { desc = 'Stage buffer' })
map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'Under stage hunk' })
map('n', '<leader>hR', gs.reset_buffer, { desc = 'Reset buffer' })
map('n', '<leader>hp', gs.preview_hunk, { desc = 'Preview hunk' })
map('n', '<leader>hb', function()
gs.blame_line({ full = true })
end, {
desc = 'Blame line preview',
})
map('n', '<leader>hd', gs.diffthis, { desc = '' })
map('n', '<leader>hD', function()
gs.diffthis('~')
end, { desc = '' })
map('n', '<leader>htb', gs.toggle_current_line_blame, { desc = 'Toggle blame (virtual text)' })
map('n', '<leader>htd', gs.toggle_deleted, { desc = 'Toggle deleted' })
-- Text object
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'Select hunk' })
end,
}, user_config.plugins.gitsigns or {}))
end,
enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'gitsigns'),

View file

@ -1,4 +1,4 @@
local map = require('cosmic.utils').map
map('n', '<C-n>', ':NvimTreeToggle<CR>')
map('n', '<leader>r', ':NvimTreeRefresh<CR>')
map('n', '<C-n>', ':NvimTreeToggle<CR>', { desc = 'Toggle Tree' })
map('n', '<leader>r', ':NvimTreeRefresh<CR>', { desc = 'Refresh Tree' })

View file

@ -11,15 +11,20 @@ end
M.init = function()
-- navigation
map('n', '<leader>ff', '<cmd>lua require("cosmic.plugins.telescope.mappings").project_files()<cr>')
map('n', '<leader>fp', ':Telescope find_files<cr>')
map('n', '<leader>fk', ':Telescope buffers<cr>')
map('n', '<leader>fs', ':Telescope live_grep<cr>')
map('n', '<leader>fw', ':Telescope grep_string<cr>')
map(
'n',
'<leader>ff',
'<cmd>lua require("cosmic.plugins.telescope.mappings").project_files()<cr>',
{ desc = 'Find git files' }
)
map('n', '<leader>fp', ':Telescope find_files<cr>', { desc = 'Find file' })
map('n', '<leader>fk', ':Telescope buffers<cr>', { desc = 'Find buffer' })
map('n', '<leader>fs', ':Telescope live_grep<cr>', { desc = 'Live grep' })
map('n', '<leader>fw', ':Telescope grep_string<cr>', { desc = 'Grep string' })
-- git navigation
map('n', '<leader>ggc', ':Telescope git_commits<cr>')
map('n', '<leader>ggs', ':Telescope git_status<cr>')
map('n', '<leader>ggc', ':Telescope git_commits<cr>', { desc = 'Git commits' })
map('n', '<leader>ggs', ':Telescope git_status<cr>', { desc = 'Git status' })
end
return M

View file

@ -1,8 +1,8 @@
local map = require('cosmic.utils').map
map('n', '<C-l>', ':FloatermToggle<CR>')
map('t', '<C-l>', [[<C-\><C-n>]])
map('t', '<C-w>l', [[<C-\><C-n>:FloatermNext<CR>]])
map('t', '<C-w>h', [[<C-\><C-n>:FloatermPrev<CR>]])
map('t', '<C-w>n', [[<C-\><C-n>:FloatermNew<CR>]])
map('t', '<C-w>c', [[<C-\><C-n>:FloatermKill<CR>]])
map('n', '<C-l>', ':FloatermToggle<CR>', { desc = 'Toggle Floaterm' })
map('t', '<C-l>', [[<C-\><C-n>]], { desc = 'Close Floaterm' })
map('t', '<C-w>l', [[<C-\><C-n>:FloatermNext<CR>]], { desc = 'Next terminal' })
map('t', '<C-w>h', [[<C-\><C-n>:FloatermPrev<CR>]], { desc = 'Prev terminal' })
map('t', '<C-w>n', [[<C-\><C-n>:FloatermNew<CR>]], { desc = 'New terminal' })
map('t', '<C-w>c', [[<C-\><C-n>:FloatermKill<CR>]], { desc = 'Kill current terminal' })

View file

@ -3,11 +3,41 @@ return {
{ -- color scheme
'folke/which-key.nvim',
config = function()
require('which-key').setup({
local wk = require('which-key')
wk.setup({
-- your configuration comes here
-- or leave it empty to use the default settings
-- refer to the configuration section below
})
wk.register({
['<leader>'] = {
b = {
name = '+buffer',
},
c = {
name = '+quickfix',
},
f = {
name = '+file',
},
h = {
name = '+gitsigns',
t = {
name = '+toggle',
},
},
g = {
name = '+goto',
},
s = {
name = '+session',
},
t = {
name = '+tab',
},
},
})
end,
event = 'VeryLazy',
enabled = not vim.tbl_contains(user_config.disable_builtin_plugins, 'which-key'),