Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolves #62 - Change the way visual mode is restored after a command #65

Merged
merged 2 commits into from
Sep 2, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1265,15 +1265,15 @@ To prevent mapping of a key from happening, see: [unmapping functionality](#unma

|description|modes|mapping|Execute|
|----|----|-------|-------|
|Prev checkbox state|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>-</kbd>|`<Plug>(mkdx-checkbox-prev)`|
|Next checkbox state|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>=</kbd>|`<Plug>(mkdx-checkbox-next)`|
|Prev checkbox state|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>-</kbd>|`<Plug>(mkdx-checkbox-prev-{n\|v})`|
|Next checkbox state|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>=</kbd>|`<Plug>(mkdx-checkbox-next-{n\|v})`|
|Promote header|normal|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>\[</kbd>|`<Plug>(mkdx-promote-header)`|
|Demote header|normal|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>\]</kbd>|`<Plug>(mkdx-demote-header)`|
|Toggle kbd shortcut|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>k</kbd>|`<Plug>(mkdx-toggle-to-kbd-{n\|v})`|
|Toggle quote|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>'</kbd>|`<Plug>(mkdx-toggle-quote)`|
|Toggle checkbox item|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>t</kbd>|`<Plug>(mkdx-toggle-checkbox)`|
|Toggle checklist item|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>l</kbd><kbd>t</kbd>|`<Plug>(mkdx-toggle-checklist)`|
|Toggle list item|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>l</kbd><kbd>l</kbd>|`<Plug>(mkdx-toggle-list)`|
|Toggle quote|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>'</kbd>|`<Plug>(mkdx-toggle-quote-{n\|v})`|
|Toggle checkbox item|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>t</kbd>|`<Plug>(mkdx-toggle-checkbox-{n\|v})`|
|Toggle checklist item|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>l</kbd><kbd>t</kbd>|`<Plug>(mkdx-toggle-checklist-{n\|v})`|
|Toggle list item|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>l</kbd><kbd>l</kbd>|`<Plug>(mkdx-toggle-list-{n\|v})`|
|Wrap link|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>l</kbd><kbd>n</kbd>|`<Plug>(mkdx-wrap-link-{n\|v})`|
|Italicize text|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>/</kbd>|`<Plug>(mkdx-mkdx-text-italic-{n\|v})`|
|Bolden text|normal, visual|<kbd>[\<PREFIX\>](#gmkdxsettingsmapprefix)</kbd><kbd>b</kbd>|`<Plug>(mkdx-mkdx-text-bold-{n\|v}))`|
Expand Down Expand Up @@ -1352,10 +1352,10 @@ All of the functions of mkdx are mapped using `<Plug>` mappings.
To disable a `<Plug>` mapping, first find it [here](#mappings) or at: `:h mkdx-plugs`.

Say you want to disable the behaviour for toggling the next checkbox state.
The corresponding `<Plug>` is called `<Plug>(mkdx-checkbox-next)`. To disable it, add the following to your _.vimrc_:
The corresponding `<Plug>` is called `<Plug>(mkdx-checkbox-next-n)`. To disable it, add the following to your _.vimrc_:

```viml
map <Plug> <Plug>(mkdx-checkbox-next)
map <Plug> <Plug>(mkdx-checkbox-next-n)
```

# Supported `grep` programs
Expand Down
14 changes: 10 additions & 4 deletions autoload/mkdx.vim
Original file line number Diff line number Diff line change
Expand Up @@ -1233,6 +1233,12 @@ fun! mkdx#ToggleCheckboxState(...)
silent! call repeat#set("\<Plug>(mkdx-checkbox-" . (reverse ? 'prev' : 'next') . ")")
endfun

fun! mkdx#MaybeRestoreVisual()
if (g:mkdx#settings.restore_visual)
normal! gv
endif
endfun

fun! mkdx#WrapText(...)
let m = get(a:000, 0, 'n')
let w = get(a:000, 1, '')
Expand Down Expand Up @@ -1282,23 +1288,23 @@ endfun

fun! mkdx#ToggleList()
call setline('.', s:util.ToggleLineType(getline('.'), 'list'))
silent! call repeat#set("\<Plug>(mkdx-toggle-list)")
silent! call repeat#set("\<Plug>(mkdx-toggle-list-n)")
endfun

fun! mkdx#ToggleChecklist()
call setline('.', s:util.ToggleLineType(getline('.'), 'checklist'))
silent! call repeat#set("\<Plug>(mkdx-toggle-checklist)")
silent! call repeat#set("\<Plug>(mkdx-toggle-checklist-n)")
endfun

fun! mkdx#ToggleCheckboxTask()
call setline('.', s:util.ToggleLineType(getline('.'), 'checkbox'))
silent! call repeat#set("\<Plug>(mkdx-toggle-checkbox)")
silent! call repeat#set("\<Plug>(mkdx-toggle-checkbox-n)")
endfun

fun! mkdx#ToggleQuote()
let line = getline('.')
if (!empty(line)) | call setline('.', s:util.transform(getline('.'), ['toggle-quote'])) | endif
silent! call repeat#set("\<Plug>(mkdx-toggle-quote)")
silent! call repeat#set("\<Plug>(mkdx-toggle-quote-n)")
endfun

fun! mkdx#ToggleHeader(...)
Expand Down
126 changes: 102 additions & 24 deletions doc/mkdx.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,11 +84,12 @@ CONTENTS *mkdx-contents*
<Plug>(mkdx-ctrl-n-compl)
<Plug>(mkdx-ctrl-p-compl)
<Plug>(mkdx-link-compl)
<Plug>(mkdx-checkbox-next)
<Plug>(mkdx-checkbox-prev)
<Plug>(mkdx-checkbox-next-n)
<Plug>(mkdx-checkbox-next-v)
<Plug>(mkdx-checkbox-prev-n)
<Plug>(mkdx-checkbox-prev-v)
<Plug>(mkdx-promote-header)
<Plug>(mkdx-demote-header)
<Plug>(mkdx-toggle-quote)
<Plug>(mkdx-wrap-link-n)
<Plug>(mkdx-wrap-link-v)
<Plug>(mkdx-jump-to-header)
Expand All @@ -106,11 +107,16 @@ CONTENTS *mkdx-contents*
<Plug>(mkdx-text-strike-v)
<Plug>(mkdx-text-inline-code-n)
<Plug>(mkdx-text-inline-code-v)
<Plug>(mkdx-toggle-checkbox)
<Plug>(mkdx-toggle-checklist)
<Plug>(mkdx-toggle-list)
<Plug>(mkdx-toggle-checkbox-n)
<Plug>(mkdx-toggle-checkbox-v)
<Plug>(mkdx-toggle-checklist-n)
<Plug>(mkdx-toggle-checklist-v)
<Plug>(mkdx-toggle-list-n)
<Plug>(mkdx-toggle-list-v)
<Plug>(mkdx-toggle-to-kbd-n)
<Plug>(mkdx-toggle-to-kbd-v)
<Plug>(mkdx-toggle-quote-n)
<Plug>(mkdx-toggle-quote-v)
<Plug>(mkdx-o)
<Plug>(mkdx-shift-o)
<Plug>(mkdx-shift-enter)
Expand Down Expand Up @@ -179,6 +185,9 @@ CONTENTS *mkdx-contents*
Only valid
Only list

Deprecated
V1.8.0

==============================================================================
INTRODUCTION *mkdx-introduction*

Expand Down Expand Up @@ -287,11 +296,12 @@ for functions. Below is a list of all helptags:
- |mkdx-plug-ctrl-n-compl|
- |mkdx-plug-ctrl-p-compl|
- |mkdx-plug-link-compl|
- |mkdx-plug-checkbox-next|
- |mkdx-plug-checkbox-prev|
- |mkdx-plug-checkbox-next-n|
- |mkdx-plug-checkbox-next-v|
- |mkdx-plug-checkbox-prev-n|
- |mkdx-plug-checkbox-prev-v|
- |mkdx-plug-promote-header|
- |mkdx-plug-demote-header|
- |mkdx-plug-toggle-quote|
- |mkdx-plug-wrap-link-n|
- |mkdx-plug-wrap-link-v|
- |mkdx-plug-jump-to-header|
Expand All @@ -312,10 +322,15 @@ for functions. Below is a list of all helptags:
- |mkdx-plug-wrap-text-in-backticks-n|
- |mkdx-plug-wrap-text-in-backticks-v|
- |mkdx-plug-toggle-checkbox|
- |mkdx-plug-toggle-checkbox-v|
- |mkdx-plug-toggle-checklist|
- |mkdx-plug-toggle-checklist-v|
- |mkdx-plug-toggle-list|
- |mkdx-plug-toggle-list-v|
- |mkdx-plug-toggle-to-kbd-n|
- |mkdx-plug-toggle-to-kbd-v|
- |mkdx-plug-toggle-quote|
- |mkdx-plug-toggle-quote-v|
- |mkdx-plug-o|
- |mkdx-plug-shift-o|
- |mkdx-plug-enter|
Expand Down Expand Up @@ -1054,15 +1069,25 @@ using {repeat.vim} by Tim Pope (https://github.com/tpope/vim-repeat).
`mkdx#CompleteLink()`

==============================================================================
<Plug>(mkdx-checkbox-next) *mkdx-plug-checkbox-next*
<Plug>(mkdx-checkbox-next-n) *mkdx-plug-checkbox-next-v*

`:call mkdx#ToggleCheckboxState()<Cr>`

==============================================================================
<Plug>(mkdx-checkbox-prev) *mkdx-plug-checkbox-prev*
<Plug>(mkdx-checkbox-next-v) *mkdx-plug-checkbox-next-v*

`:call mkdx#ToggleCheckboxState()<Cr>:call mkdx#MaybeRestoreVisual()<Cr>`

==============================================================================
<Plug>(mkdx-checkbox-prev-n) *mkdx-plug-checkbox-prev-n*

`:call mkdx#ToggleCheckboxState(1)<Cr>`

==============================================================================
<Plug>(mkdx-checkbox-prev-v) *mkdx-plug-checkbox-prev-v*

`:call mkdx#ToggleCheckboxState(1)<Cr>:call mkdx#MaybeRestoreVisual()<Cr>`

==============================================================================
<Plug>(mkdx-promote-header) *mkdx-plug-promote-header*

Expand All @@ -1074,10 +1099,15 @@ using {repeat.vim} by Tim Pope (https://github.com/tpope/vim-repeat).
`:<C-U>call mkdx#ToggleHeader()<Cr>`

==============================================================================
<Plug>(mkdx-toggle-quote) *mkdx-plug-toggle-quote*
<Plug>(mkdx-toggle-quote-n) *mkdx-plug-toggle-quote-n*

`:call mkdx#ToggleQuote()<Cr>`

==============================================================================
<Plug>(mkdx-toggle-quote-v) *mkdx-plug-toggle-quote-v*

`:call mkdx#ToggleQuote()<Cr>:call mkdx#MaybeRestoreVisual()<Cr>`

==============================================================================
<Plug>(mkdx-wrap-link-n) *mkdx-plug-wrap-link-n*

Expand All @@ -1096,7 +1126,7 @@ using {repeat.vim} by Tim Pope (https://github.com/tpope/vim-repeat).
==============================================================================
<Plug>(mkdx-tableize) *mkdx-plug-tableize*

`:call mkdx#Tableize()<Cr>`
`:call mkdx#Tableize()<Cr>:call mkdx#MaybeRestoreVisual()<Cr>`

==============================================================================
<Plug>(mkdx-generate-toc) *mkdx-plug-generate-toc*
Expand Down Expand Up @@ -1173,19 +1203,35 @@ using {repeat.vim} by Tim Pope (https://github.com/tpope/vim-repeat).
:<C-U>call mkdx#WrapText('v', '`', '`')<Cr>

==============================================================================
<Plug>(mkdx-toggle-checkbox) *mkdx-plug-toggle-checkbox*
<Plug>(mkdx-toggle-checkbox-n) *mkdx-plug-toggle-checkbox-n*

`:call mkdx#ToggleCheckboxTask()<Cr>`

==============================================================================
<Plug>(mkdx-toggle-checklist) *mkdx-plug-toggle-checklist*
<Plug>(mkdx-toggle-checkbox-v) *mkdx-plug-toggle-checkbox-v*

`:call mkdx#ToggleCheckboxTask()<Cr>:call mkdx#MaybeRestoreVisual()<Cr>`

==============================================================================
<Plug>(mkdx-toggle-checklist-n) *mkdx-plug-toggle-checklist-n*

`:call mkdx#ToggleChecklist()<Cr>`

==============================================================================
<Plug>(mkdx-toggle-checklist-v) *mkdx-plug-toggle-checklist-v*

`:call mkdx#ToggleChecklist()<Cr>:call mkdx#MaybeRestoreVisual()<Cr>`

==============================================================================
<Plug>(mkdx-toggle-list) *mkdx-plug-toggle-list*
<Plug>(mkdx-toggle-list-n) *mkdx-plug-toggle-list-n*

`:call mkdx#ToggleList()<Cr>`

==============================================================================
<Plug>(mkdx-toggle-list-v) *mkdx-plug-toggle-list-v*

`:call mkdx#ToggleList()<Cr>:call mkdx#MaybeRestoreVisual()<Cr>`

==============================================================================
<Plug>(mkdx-toggle-to-kbd-n) *mkdx-plug-toggle-to-kbd-n*

Expand Down Expand Up @@ -1251,12 +1297,12 @@ which it won't do anything anymore:
`nmap <leader>= <Nop>`
`vmap <leader>= <Nop>`

Will disable |mkdx-plug-checkbox-next| in normal and visual mode.
Will disable |mkdx-plug-checkbox-next-n| and |mkdx-plug-checkbox-next-v|.
A better way in general, to prevent mkdx from setting an option is by
remapping it's <Plug>, this will take care of both scenario's with one mapping
and it is easier to understand "what" you unmapped, e.g:

`map <Plug> <Plug>(mkdx-checkbox-next)`
`map <Plug> <Plug>(mkdx-checkbox-next-n)`

will result in the same as using regular `nmap` and `vmap`. For an overview of
available <Plug> mappings that can be disabled, visit: |mkdx-plugs|.
Expand Down Expand Up @@ -1313,8 +1359,8 @@ When toggling an item which is nested in a list, the parent and child list
items will be updated as well. Automatic updating of checkboxes
can be disabled setting |mkdx-setting-checkbox-update-tree|.

`nmap <MAP_PREFIX>- <Plug>(mkdx-checkbox-next)`
`vmap <MAP_PREFIX>- <Plug>(mkdx-checkbox-next)`
`nmap <MAP_PREFIX>- <Plug>(mkdx-checkbox-next-n)`
`vmap <MAP_PREFIX>- <Plug>(mkdx-checkbox-next-v)`

==============================================================================
Toggle checkbox backward *mkdx-mapping-toggle-checkbox-backward*
Expand All @@ -1329,8 +1375,8 @@ When toggling an item which is nested in a list, the parent and child list
items will be updated as well. Automatic updating of checkboxes
can be disabled setting |mkdx-setting-checkbox-update-tree|.

`nmap <MAP_PREFIX>= <Plug>(mkdx-checkbox-prev)`
`vmap <MAP_PREFIX>= <Plug>(mkdx-checkbox-prev)`
`nmap <MAP_PREFIX>= <Plug>(mkdx-checkbox-prev-n)`
`vmap <MAP_PREFIX>= <Plug>(mkdx-checkbox-prev-v)`

==============================================================================
Wrap text in link *mkdx-mapping-wrap-text-in-link*
Expand Down Expand Up @@ -1415,8 +1461,8 @@ Toggles a markdown quote on the current line or on every nonblank line in a
visual selection. This function restores visual selection if
|mkdx-setting-restore-visual| is set.

`nmap <MAP_PREFIX>' <Plug>(mkdx-toggle-quote)`
`vmap <MAP_PREFIX>' <Plug>(mkdx-toggle-quote)`
`nmap <MAP_PREFIX>' <Plug>(mkdx-toggle-quote-n)`
`vmap <MAP_PREFIX>' <Plug>(mkdx-toggle-quote-v)`

==============================================================================
List items *mkdx-mapping-list-items*
Expand Down Expand Up @@ -2314,4 +2360,36 @@ option in this specific validation:
The error will point out what valid options are in the context of the variable
that you are trying to modify.

==============================================================================
DEPRECATED *mkdx-deprecated*

The following section provides information about deprecated functionality,
plugs, mappings etc...

======
V1.8.0

Deprecated plugs:
- `mkdx-checkbox-next` replaced by:
- `mkdx-checkbox-next-n`
- `mkdx-checkbox-next-v`
- `mkdx-checkbox-prev` replaced by:
- `mkdx-checkbox-prev-n`
- `mkdx-checkbox-prev-v`
- `mkdx-toggle-quote` replaced by:
- `mkdx-toggle-quote-n`
- `mkdx-toggle-quote-v`
- `mkdx-toggle-checklist` replaced by:
- `mkdx-toggle-checklist-n`
- `mkdx-toggle-checklist-v`
- `mkdx-toggle-checkbox` replaced by:
- `mkdx-toggle-checkbox-n`
- `mkdx-toggle-checkbox-v`
- `mkdx-toggle-list` replaced by:
- `mkdx-toggle-list-n`
- `mkdx-toggle-list-v`

While the old plugs will still work, they will no longer restore visual mode
regardless of |mkdx-setting-restore-visual|.

vim:tw=78:sw=4:ft=help:norl:
Loading