diff --git a/README.md b/README.md index 4822533..9a99b69 100644 --- a/README.md +++ b/README.md @@ -293,6 +293,7 @@ instead. | `:NuwikiBacklinks` | `:VimwikiBacklinks` (`:VWB`) | Show all references to the current page | | `:NuwikiNextLink` / `:NuwikiPrevLink` | `:VimwikiNextLink` / `:VimwikiPrevLink` | Jump to the next / previous wikilink | | `:NuwikiBaddLink` | `:VimwikiBaddLink` | Add the link target under the cursor to the buffer list | +| `:NuwikiNormalizeLink` | `:VimwikiNormalizeLink` | Wrap the word / visual selection under the cursor as a wikilink | | — | `:VimwikiSearch {pat}` (`:VWS`) | `:lvimgrep` `{pat}` across every page | **Diary** @@ -300,6 +301,7 @@ instead. | Nuwiki | Vimwiki | Action | |---|---|---| | `:NuwikiMakeDiaryNote` (`:NuwikiDiaryToday`) | `:VimwikiMakeDiaryNote` | Open today's entry (or this week / month / year, per `diary_frequency`) | +| `:NuwikiTabMakeDiaryNote` | `:VimwikiTabMakeDiaryNote` | Open today's entry in a new tab | | `:NuwikiMakeYesterdayDiaryNote` (`:NuwikiDiaryYesterday`) | `:VimwikiMakeYesterdayDiaryNote` | Step the diary back one period | | `:NuwikiMakeTomorrowDiaryNote` (`:NuwikiDiaryTomorrow`) | `:VimwikiMakeTomorrowDiaryNote` | Step the diary forward one period | | `:NuwikiDiaryIndex` | `:VimwikiDiaryIndex` | Open the diary index page | @@ -310,8 +312,8 @@ instead. | Nuwiki | Vimwiki | Action | |---|---|---| -| `:NuwikiRenameFile` | `:VimwikiRenameFile` | Rename the current page, rewriting incoming links | -| `:NuwikiDeleteFile` | `:VimwikiDeleteFile` | Delete the current page | +| `:NuwikiRenameFile` | `:VimwikiRenameFile` (`:VimwikiRenameLink`) | Rename the current page, rewriting incoming links | +| `:NuwikiDeleteFile` | `:VimwikiDeleteFile` (`:VimwikiDeleteLink`) | Delete the current page | **Lists, tasks & tables** @@ -320,10 +322,19 @@ instead. | `:NuwikiNextTask` | `:VimwikiNextTask` | Jump to the next unfinished task | | `:NuwikiToggleListItem` | `:VimwikiToggleListItem` | Toggle the checkbox under the cursor | | `:NuwikiToggleRejected` | `:VimwikiToggleRejectedListItem` | Toggle the rejected marker `[-]` | +| `:NuwikiListToggle` | `:VimwikiListToggle` | Toggle a checkbox on the current item (adds `[ ]` if none) | +| `:NuwikiIncrementListItem` / `:NuwikiDecrementListItem` | `:VimwikiIncrementListItem` / `:VimwikiDecrementListItem` | Cycle the list marker to the next / previous symbol | +| `:NuwikiChangeSymbol {sym}` | `:VimwikiChangeSymbolTo {sym}` (`:VimwikiListChangeSymbolI`) | Set the current item's marker to `{sym}` | +| `:NuwikiChangeSymbolInList {sym}` | `:VimwikiChangeSymbolInListTo {sym}` | Set every item in the list to `{sym}` | | `:NuwikiRemoveDone` | `:VimwikiRemoveDone` | Remove every completed item from the current list | +| `:NuwikiRemoveCheckbox` | `:VimwikiRemoveSingleCB` | Strip the checkbox from the current list item | +| `:NuwikiRemoveCheckboxInList` | `:VimwikiRemoveCBInList` | Strip the checkbox from every item in the current list | | `:NuwikiListChangeLvl {increase\|decrease}` | `:VimwikiListChangeLvl {increase\|decrease}` | Indent / dedent the current list item | +| `:NuwikiRenumberList` | `:VimwikiRenumberList` | Renumber the current ordered list | +| `:NuwikiRenumberAllLists` | `:VimwikiRenumberAllLists` | Renumber every ordered list in the buffer | | `:NuwikiTable {cols} [rows]` | `:VimwikiTable {cols} [rows]` | Insert a table at the cursor | | `:NuwikiTableMoveColumnLeft` / `:NuwikiTableMoveColumnRight` | `:VimwikiTableMoveColumnLeft` / `:VimwikiTableMoveColumnRight` | Move the current table column left / right | +| `:NuwikiTableAlign` | `:VimwikiTableAlignQ` / `:VimwikiTableAlignW` | Re-align the current table's columns | **Contents, links & tags** @@ -335,9 +346,10 @@ instead. | `:NuwikiFindOrphans` | `:VimwikiFindOrphans` | List pages with no incoming links in the quickfix list | | `:NuwikiRebuildTags` | `:VimwikiRebuildTags` | Force a full workspace re-index | | `:NuwikiSearchTags {tag}` | `:VimwikiSearchTags {tag}` | Quickfix listing every occurrence of `:tag:` | -| `:NuwikiGenerateTagLinks [tag]` | `:VimwikiGenerateTagLinks [tag]` | Insert a section linking every page that has `` | +| `:NuwikiGenerateTagLinks [tag]` | `:VimwikiGenerateTagLinks [tag]` (`:VimwikiGenerateTags`) | Insert a section linking every page that has `` | | `:NuwikiColorize {color}` | `:VimwikiColorize {color}` | Wrap the word / visual selection in a coloured `` | | `:NuwikiPasteLink` / `:NuwikiPasteUrl` | `:VimwikiPasteLink` / `:VimwikiPasteUrl` | Paste the clipboard contents as a wikilink / raw URL | +| `:NuwikiCatUrl` | `:VimwikiCatUrl` | Echo the `file://` URL of the current page's HTML export | **HTML export** diff --git a/development/tests/test-keymaps-vim.vim b/development/tests/test-keymaps-vim.vim index 06bd04c..0a5f69f 100644 --- a/development/tests/test-keymaps-vim.vim +++ b/development/tests/test-keymaps-vim.vim @@ -104,10 +104,14 @@ endif let s:both_forms = [ \ 'Index', 'TabIndex', 'UISelect', 'Goto', 'FollowLink', 'Backlinks', \ 'NextLink', 'PrevLink', 'BaddLink', 'RenameFile', 'DeleteFile', - \ 'MakeDiaryNote', 'MakeYesterdayDiaryNote', 'MakeTomorrowDiaryNote', + \ 'MakeDiaryNote', 'TabMakeDiaryNote', 'MakeYesterdayDiaryNote', + \ 'MakeTomorrowDiaryNote', \ 'DiaryIndex', 'DiaryGenerateLinks', 'DiaryNextDay', 'DiaryPrevDay', \ 'TOC', 'GenerateLinks', 'CheckLinks', 'SearchTags', 'GenerateTagLinks', \ 'RebuildTags', '2HTML', '2HTMLBrowse', 'All2HTML', 'Rss', + \ 'NormalizeLink', 'RenumberList', 'RenumberAllLists', + \ 'ListToggle', 'IncrementListItem', 'DecrementListItem', + \ 'CatUrl', \ ] for s:suffix in s:both_forms for s:prefix in ['Nuwiki', 'Vimwiki'] @@ -121,6 +125,22 @@ let s:ok = exists(':NuwikiInstall') == 2 call s:record(s:ok ? 1 : 0, 'surface.NuwikiInstall', \ s:ok ? '' : ':NuwikiInstall not registered') +" Asymmetric / compat-only spellings: the canonical :Nuwiki* name differs +" from the upstream :Vimwiki* name (or has no canonical counterpart because +" nuwiki already exposes it under a clearer name). +for s:cmd in [ + \ 'NuwikiTableAlign', 'VimwikiTableAlignQ', 'VimwikiTableAlignW', + \ 'NuwikiChangeSymbol', 'VimwikiChangeSymbolTo', 'VimwikiListChangeSymbolI', + \ 'NuwikiChangeSymbolInList', 'VimwikiChangeSymbolInListTo', + \ 'VimwikiDeleteLink', 'VimwikiRenameLink', 'VimwikiGenerateTags', + \ 'NuwikiRemoveCheckbox', 'VimwikiRemoveSingleCB', + \ 'NuwikiRemoveCheckboxInList', 'VimwikiRemoveCBInList', + \ ] + let s:ok = exists(':' . s:cmd) == 2 + call s:record(s:ok ? 1 : 0, 'surface.' . s:cmd, + \ s:ok ? '' : ':' . s:cmd . ' not registered') +endfor + " ===== Pure-VimL command invocation (cursor movement) ===== " :NuwikiNextLink / :NuwikiPrevLink wrap search('\[\[', …) so they run " entirely in VimL and move the cursor without touching the LSP. diff --git a/development/tests/test-keymaps.lua b/development/tests/test-keymaps.lua index 68aaac8..bed5a2c 100644 --- a/development/tests/test-keymaps.lua +++ b/development/tests/test-keymaps.lua @@ -131,10 +131,14 @@ vim.defer_fn(function() local both_forms = { 'Index', 'TabIndex', 'UISelect', 'Goto', 'FollowLink', 'Backlinks', 'NextLink', 'PrevLink', 'BaddLink', 'RenameFile', 'DeleteFile', - 'MakeDiaryNote', 'MakeYesterdayDiaryNote', 'MakeTomorrowDiaryNote', + 'MakeDiaryNote', 'TabMakeDiaryNote', 'MakeYesterdayDiaryNote', + 'MakeTomorrowDiaryNote', 'DiaryIndex', 'DiaryGenerateLinks', 'DiaryNextDay', 'DiaryPrevDay', 'TOC', 'GenerateLinks', 'CheckLinks', 'SearchTags', 'GenerateTagLinks', 'RebuildTags', '2HTML', '2HTMLBrowse', 'All2HTML', 'Rss', + 'NormalizeLink', 'RenumberList', 'RenumberAllLists', + 'ListToggle', 'IncrementListItem', 'DecrementListItem', + 'CatUrl', } for _, suffix in ipairs(both_forms) do for _, prefix in ipairs({ 'Nuwiki', 'Vimwiki' }) do @@ -148,6 +152,21 @@ vim.defer_fn(function() record(exists, 'surface.NuwikiInstall', exists and '' or ':NuwikiInstall not registered') end + -- Asymmetric / compat-only spellings: the canonical :Nuwiki* name differs + -- from the upstream :Vimwiki* name (or has no canonical counterpart because + -- nuwiki already exposes it under a clearer name). + local extra_surface = { + 'NuwikiTableAlign', 'VimwikiTableAlignQ', 'VimwikiTableAlignW', + 'NuwikiChangeSymbol', 'VimwikiChangeSymbolTo', 'VimwikiListChangeSymbolI', + 'NuwikiChangeSymbolInList', 'VimwikiChangeSymbolInListTo', + 'VimwikiDeleteLink', 'VimwikiRenameLink', 'VimwikiGenerateTags', + 'NuwikiRemoveCheckbox', 'VimwikiRemoveSingleCB', + 'NuwikiRemoveCheckboxInList', 'VimwikiRemoveCBInList', + } + for _, cmd in ipairs(extra_surface) do + local exists = vim.fn.exists(':' .. cmd) == 2 + record(exists, 'surface.' .. cmd, exists and '' or (':' .. cmd .. ' not registered')) + end -- ===== Pure-Lua command invocation (cursor movement) ===== -- :NuwikiNextLink / :NuwikiPrevLink wrap the link-search motion and run