Refine keymap descriptions for clarity and consistency

Updated keymap descriptions across various plugins to include
specific prefixes for better identification and organization.
This commit is contained in:
Ray Elliott 2025-12-12 01:00:25 +00:00
parent 99ea741fbb
commit f4f6260b20
9 changed files with 83 additions and 66 deletions

View File

@ -14,16 +14,16 @@ local map = vim.keymap.set
map('n', 'gd', function()
-- Built-in: jump to definition via tags or included files
vim.cmd("normal! gd")
end, { desc = 'Go to definition (built-in fallback)', silent = true })
end, { desc = 'Vim: Go to definition (built-in fallback)', silent = true })
map('n', 'gD', function()
-- Built-in: jump to declaration (global)
vim.cmd("normal! gD")
end, { desc = 'Go to declaration (built-in fallback)', silent = true })
end, { desc = 'Vim: Go to declaration (built-in fallback)', silent = true })
-- LSP-only keymaps (no useful fallback for these in non-LSP contexts)
map('n', 'gr', '<Nop>', { desc = 'References (requires LSP)', silent = true })
map('n', 'gI', '<Nop>', { desc = 'Implementation (requires LSP)', silent = true })
map('n', 'gr', '<Nop>', { desc = 'LSP: References (requires LSP)', silent = true })
map('n', 'gI', '<Nop>', { desc = 'LSP: Implementation (requires LSP)', silent = true })
-- K: Hover/Help with sensible fallback
map('n', 'K', function()
@ -32,20 +32,20 @@ map('n', 'K', function()
if vim.bo.keywordprg ~= '' then
vim.cmd("normal! K")
end
end, { desc = 'Hover/Help (LSP or keywordprg fallback)', silent = true })
end, { desc = 'Vim: Hover/Help (keywordprg fallback)', silent = true })
-- Diagnostic keymaps
map('n', '<leader>xx', vim.diagnostic.setloclist, { desc = 'Show buffer diagnostics in location list', silent = true })
map('n', '<leader>xX', vim.diagnostic.setqflist, { desc = 'Show all diagnostics in quickfix', silent = true })
map('n', '<leader>xx', vim.diagnostic.setloclist, { desc = 'Diagnostics: Buffer diagnostics (location list)', silent = true })
map('n', '<leader>xX', vim.diagnostic.setqflist, { desc = 'Diagnostics: All diagnostics (quickfix)', silent = true })
map('n', '<leader>xe', function()
vim.diagnostic.setloclist({ severity = vim.diagnostic.severity.ERROR })
end, { desc = 'Show buffer errors in location list', silent = true })
end, { desc = 'Diagnostics: Buffer errors (location list)', silent = true })
map('n', '<leader>xE', function()
vim.diagnostic.setqflist({ severity = vim.diagnostic.severity.ERROR })
end, { desc = 'Show all errors in quickfix', silent = true })
map('n', '[d', vim.diagnostic.goto_prev, { desc = 'Go to previous diagnostic', silent = true })
map('n', ']d', vim.diagnostic.goto_next, { desc = 'Go to next diagnostic', silent = true })
map('n', '<leader>xd', vim.diagnostic.open_float, { desc = 'Show diagnostic under cursor', silent = true })
end, { desc = 'Diagnostics: All errors (quickfix)', silent = true })
map('n', '[d', vim.diagnostic.goto_prev, { desc = 'Diagnostics: Previous diagnostic', silent = true })
map('n', ']d', vim.diagnostic.goto_next, { desc = 'Diagnostics: Next diagnostic', silent = true })
map('n', '<leader>xd', vim.diagnostic.open_float, { desc = 'Diagnostics: Show diagnostic under cursor', silent = true })
-- Debug: Show highlight group and color under cursor
map('n', '<leader>hi', function()
@ -180,4 +180,4 @@ map('n', '<leader>hi', function()
}
vim.api.nvim_open_win(buf, false, opts)
end, { desc = 'Show highlight group and color under cursor', silent = true })
end, { desc = 'Debug: Show highlight group and color under cursor', silent = true })

View File

@ -44,10 +44,18 @@ map('n', '<leader>te', function()
local current_file_dir = vim.fn.expand('%:p:h')
vim.cmd('tabnew')
vim.cmd('Explore ' .. vim.fn.fnameescape(current_file_dir))
end, { desc = 'Tab explore (current file dir)', silent = true })
end, { desc = 'Netrw: Tab explore (current file dir)', silent = true })
-- Open netrw in new tab at project root (cwd)
map('n', '<leader>tE', function()
vim.cmd('tabnew')
vim.cmd('Explore ' .. vim.fn.fnameescape(vim.fn.getcwd()))
end, { desc = 'Tab explore (project root)', silent = true })
end, { desc = 'Netrw: Tab explore (project root)', silent = true })
-- Enable line numbers in netrw buffers
vim.api.nvim_create_autocmd('FileType', {
pattern = 'netrw',
callback = function()
vim.opt_local.number = true
vim.opt_local.relativenumber = true
end,
})

View File

@ -30,28 +30,28 @@ return {
if vim.wo.diff then return ']c' end
vim.schedule(function() gs.next_hunk() end)
return '<Ignore>'
end, { expr = true, desc = 'Next hunk' })
end, { expr = true, desc = 'Gitsigns: Next hunk' })
map('n', '[h', function()
if vim.wo.diff then return '[c' end
vim.schedule(function() gs.prev_hunk() end)
return '<Ignore>'
end, { expr = true, desc = 'Previous hunk' })
end, { expr = true, desc = 'Gitsigns: Previous hunk' })
-- Hunk actions
map('n', '<leader>hs', gs.stage_hunk, { desc = 'Stage hunk' })
map('n', '<leader>hr', gs.reset_hunk, { desc = 'Reset hunk' })
map('v', '<leader>hs', function() gs.stage_hunk { vim.fn.line('.'), vim.fn.line('v') } end, { desc = 'Stage hunk' })
map('v', '<leader>hr', function() gs.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } end, { desc = 'Reset hunk' })
map('n', '<leader>hS', gs.stage_buffer, { desc = 'Stage buffer' })
map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'Undo 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>hd', gs.diffthis, { desc = 'Diff this' })
map('n', '<leader>hD', function() gs.diffthis('~') end, { desc = 'Diff this ~' })
map('n', '<leader>hs', gs.stage_hunk, { desc = 'Gitsigns: Stage hunk' })
map('n', '<leader>hr', gs.reset_hunk, { desc = 'Gitsigns: Reset hunk' })
map('v', '<leader>hs', function() gs.stage_hunk { vim.fn.line('.'), vim.fn.line('v') } end, { desc = 'Gitsigns: Stage hunk' })
map('v', '<leader>hr', function() gs.reset_hunk { vim.fn.line('.'), vim.fn.line('v') } end, { desc = 'Gitsigns: Reset hunk' })
map('n', '<leader>hS', gs.stage_buffer, { desc = 'Gitsigns: Stage buffer' })
map('n', '<leader>hu', gs.undo_stage_hunk, { desc = 'Gitsigns: Undo stage hunk' })
map('n', '<leader>hR', gs.reset_buffer, { desc = 'Gitsigns: Reset buffer' })
map('n', '<leader>hp', gs.preview_hunk, { desc = 'Gitsigns: Preview hunk' })
map('n', '<leader>hd', gs.diffthis, { desc = 'Gitsigns: Diff this' })
map('n', '<leader>hD', function() gs.diffthis('~') end, { desc = 'Gitsigns: Diff this ~' })
-- Text object
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'Select hunk' })
map({ 'o', 'x' }, 'ih', ':<C-U>Gitsigns select_hunk<CR>', { desc = 'Gitsigns: Select hunk' })
end,
},
}

View File

@ -104,16 +104,16 @@ return {
vim.g.format_on_save = not vim.g.format_on_save
local status = vim.g.format_on_save and "enabled" or "disabled"
vim.notify("Format on save " .. status, vim.log.levels.INFO)
end, { desc = "Toggle format on save", silent = true, noremap = true })
end, { desc = "Formatting: Toggle format on save", silent = true, noremap = true })
-- Manual format (buffer)
vim.keymap.set("n", "<leader>lf", function()
vim.lsp.buf.format({ async = false })
end, { desc = "Format buffer", silent = true, noremap = true })
end, { desc = "Formatting: Format buffer", silent = true, noremap = true })
-- Manual format (visual range)
vim.keymap.set("v", "<leader>lf", function()
vim.lsp.buf.format({ async = false })
end, { desc = "Format selection", silent = true, noremap = true })
end, { desc = "Formatting: Format selection", silent = true, noremap = true })
end,
}

View File

@ -4,12 +4,15 @@
return {
'stevearc/oil.nvim',
lazy = false,
-- set lazy loading
lazy = true,
keys = {
{ '<leader>fo', '<cmd>Oil<cr>', desc = 'Open Oil file browser' },
{ '<leader>fO', '<cmd>Oil --float<cr>', desc = 'Open Oil in floating window' },
{ '<leader>fo', '<cmd>Oil<cr>', desc = 'Oil: Open file browser' },
{ '<leader>fO', '<cmd>Oil --float<cr>', desc = 'Oil: Open in floating window' },
},
opts = {
-- Don't hijack netrw - allow both to coexist
default_file_explorer = false,
-- Columns shown in the oil buffer
columns = {
'icon',
@ -32,6 +35,8 @@ return {
list = false,
conceallevel = 3,
concealcursor = 'nvic',
number = true,
relativenumber = true,
},
-- Delete to trash instead of permanently deleting
delete_to_trash = false,

View File

@ -80,26 +80,30 @@ return {
end,
keys = {
-- Find files in current working directory
{ '<leader>ff', '<cmd>Telescope find_files<cr>', desc = 'Find files' },
{ '<leader>ff', '<cmd>Telescope find_files<cr>', desc = 'Telescope: Find files' },
-- Live grep (search text across project)
{ '<leader>fg', '<cmd>Telescope live_grep<cr>', desc = 'Live grep' },
{ '<leader>fg', '<cmd>Telescope live_grep<cr>', desc = 'Telescope: Live grep' },
-- Search in open buffers
{ '<leader>fb', '<cmd>Telescope buffers<cr>', desc = 'Find buffers' },
{ '<leader>fb', '<cmd>Telescope buffers<cr>', desc = 'Telescope: Find buffers' },
-- Search help tags
{ '<leader>fh', '<cmd>Telescope help_tags<cr>', desc = 'Find help' },
{ '<leader>fh', '<cmd>Telescope help_tags<cr>', desc = 'Telescope: Find help' },
-- Recent files
{ '<leader>fr', '<cmd>Telescope oldfiles<cr>', desc = 'Recent files' },
{ '<leader>fr', '<cmd>Telescope oldfiles<cr>', desc = 'Telescope: Recent files' },
-- Search current buffer
{ '<leader>/', '<cmd>Telescope current_buffer_fuzzy_find<cr>', desc = 'Search buffer' },
{ '<leader>/', '<cmd>Telescope current_buffer_fuzzy_find<cr>', desc = 'Telescope: Search buffer' },
-- Search keymaps
{ '<leader>fk', '<cmd>Telescope keymaps<cr>', desc = 'Telescope: Find keymaps' },
{ '<leader>?', '<cmd>Telescope keymaps<cr>', desc = 'Telescope: Find keymaps' },
-- LSP-related pickers (optional, for when LSP is active)
{ '<leader>fs', '<cmd>Telescope lsp_document_symbols<cr>', desc = 'Document symbols' },
{ '<leader>fS', '<cmd>Telescope lsp_dynamic_workspace_symbols<cr>', desc = 'Workspace symbols (dynamic)' },
{ '<leader>fs', '<cmd>Telescope lsp_document_symbols<cr>', desc = 'Telescope: Document symbols' },
{ '<leader>fS', '<cmd>Telescope lsp_dynamic_workspace_symbols<cr>', desc = 'Telescope: Workspace symbols' },
},
},
}

View File

@ -6,17 +6,17 @@ return {
},
event = { 'BufReadPost', 'BufNewFile' },
keys = {
{ 'zR', function() require('ufo').openAllFolds() end, desc = 'Open all folds' },
{ 'zM', function() require('ufo').closeAllFolds() end, desc = 'Close all folds' },
{ 'zr', function() require('ufo').openFoldsExceptKinds() end, desc = 'Open folds except kinds' },
{ 'zm', function() require('ufo').closeFoldsWith() end, desc = 'Close folds with' },
{ 'zR', function() require('ufo').openAllFolds() end, desc = 'UFO: Open all folds' },
{ 'zM', function() require('ufo').closeAllFolds() end, desc = 'UFO: Close all folds' },
{ 'zr', function() require('ufo').openFoldsExceptKinds() end, desc = 'UFO: Open folds except kinds' },
{ 'zm', function() require('ufo').closeFoldsWith() end, desc = 'UFO: Close folds with' },
{ 'K', function()
local winid = require('ufo').peekFoldedLinesUnderCursor()
if not winid then
-- Fall back to LSP hover if not on a fold
vim.lsp.buf.hover()
end
end, desc = 'Peek fold or LSP hover' },
end, desc = 'UFO: Peek fold or LSP hover' },
},
opts = {
provider_selector = function(bufnr, filetype, buftype)

View File

@ -3,7 +3,7 @@ return {
'mbbill/undotree',
cmd = 'UndotreeToggle', -- Lazy load on command
keys = {
{ '<leader>u', '<cmd>UndotreeToggle<cr>', desc = 'Toggle Undotree' },
{ '<leader>u', '<cmd>UndotreeToggle<cr>', desc = 'Undotree: Toggle undo tree' },
},
config = function()
-- Configure undotree

View File

@ -1,8 +1,9 @@
<?php
/**
* Test file for PHP LSP diagnostics
* Tests error, warning, info, and hint virtual text colors
*
*
* Note: Configure Intelephense to show different diagnostic levels:
* - diagnostics.undefinedSymbols = true (errors)
* - diagnostics.undefinedVariables = true (warnings)
@ -11,10 +12,10 @@
// Define some valid functions and variables first to avoid cascading errors
function validFunction(): void {
echo "This is valid\n";
echo "This is valid\n";
}
$definedVariable = "I exist";
$definedVariable = 'I exist';
// ERROR: Undefined function
someUndefinedFunction();
@ -23,26 +24,26 @@ someUndefinedFunction();
echo $completelyUndefined;
// WARNING/HINT: Unused variable (depends on Intelephense config)
$unused = "Never used anywhere";
$unused = 'Never used anywhere';
// Valid code to separate errors
validFunction();
// ERROR: Wrong number of arguments
function requiresTwoArgs(string $a, string $b): void {
echo "$a $b\n";
function requiresTwoArgs( string $a, string $b ): void {
echo "$a $b\n";
}
requiresTwoArgs("only one"); // Missing second argument
requiresTwoArgs( 'only one' ); // Missing second argument
// ERROR: Type mismatch
function expectsString(string $param): void {
echo $param;
function expectsString( string $param ): void {
echo $param;
}
expectsString(123); // Passing int to string parameter
expectsString( 123 ); // Passing int to string parameter
// WARNING: Variable might not be defined in all code paths
if (rand(0, 1)) {
$maybeUndefined = "sometimes defined";
if ( rand( 0, 1 ) ) {
$maybeUndefined = 'sometimes defined';
}
// Commenting out to reduce errors: echo $maybeUndefined;
@ -50,21 +51,20 @@ if (rand(0, 1)) {
echo $definedVariable . "\n";
// ERROR: Calling method on non-object
$notAnObject = "string";
$notAnObject = 'string';
$notAnObject->someMethod();
// ERROR: Invalid array access (multiple levels)
$emptyArray = [];
$emptyArray = array();
echo $emptyArray['key']['nested']['deep'];
// Valid function call
requiresTwoArgs("hello", "world");
requiresTwoArgs( 'hello', 'world' );
// HINT/WARNING: Unreachable code (some configs)
function hasDeadCode(): string {
return "done";
echo "This is unreachable"; // Dead code
return 'done';
echo 'This is unreachable'; // Dead code.
}
echo "Test complete!\n";