diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2019-05-23 14:57:52 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2019-05-23 14:57:52 +1200 |
commit | 25989141c2ec675ce4b63fff6025776596c1ff5b (patch) | |
tree | d8148c9b94ed16ebe2cba7ef765f471c6651c6ef /vim | |
parent | Merge branch 'release/v4.41.0' (diff) | |
parent | Bump VERSION (diff) | |
download | dotfiles-4.42.0.tar.gz (sig) dotfiles-4.42.0.zip |
Merge branch 'release/v4.42.0'v4.42.0
* release/v4.42.0:
Bump VERSION
Delete blank lines at top of quoted reply
Don't add spaces when quoting mail
Make space appending for quote indent configurable
Use get() for mail buffer variable fetch
Diffstat (limited to 'vim')
-rw-r--r-- | vim/after/ftplugin/mail.vim | 11 | ||||
-rw-r--r-- | vim/autoload/quote.vim | 19 |
2 files changed, 21 insertions, 9 deletions
diff --git a/vim/after/ftplugin/mail.vim b/vim/after/ftplugin/mail.vim index e01872d6..fd2c9705 100644 --- a/vim/after/ftplugin/mail.vim +++ b/vim/after/ftplugin/mail.vim @@ -1,3 +1,7 @@ +" Don't append spaces after quote chars, for strict compliance with +" format=flowed +let b:quote_space = 0 + " If something hasn't already moved the cursor, we'll move to an optimal point " to start writing if line('.') == 1 && col('.') == 1 @@ -6,10 +10,17 @@ if line('.') == 1 && col('.') == 1 " no quote, which is fine call search('\m^>', 'c') + " Delete quoted blank lines until we get to something with substance + while getline('.') =~# '^>\s*$' + delete + endwhile + " Check this line to see if it's a generic hello or hello-name greeting that " we can just strip out; delete any following lines too, if they're blank if getline('.') =~? '^>\s*\%(<hello\|hey\+\|hi\)\%(\s\+\S\+\)\=[,;]*\s*$' delete + + " Delete quoted blank lines again while getline('.') =~# '^>\s*$' delete endwhile diff --git a/vim/autoload/quote.vim b/vim/autoload/quote.vim index b84a87e8..616fd307 100644 --- a/vim/autoload/quote.vim +++ b/vim/autoload/quote.vim @@ -9,10 +9,9 @@ endfunction " Quoting operator function function! quote#QuoteOpfunc(type) abort - " May as well make this configurable - let char = exists('b:quote_char') - \ ? b:quote_char - \ : '>' + " Make character and space appending configurable + let char = get(b:, 'quote_char', '>') + let space = get(b:, 'quote_space', 1) " Iterate over each matched line for li in range(line('''['), line(''']')) @@ -25,11 +24,13 @@ function! quote#QuoteOpfunc(type) abort continue endif - " Only add a space after the quote character if this line isn't already - " quoted with the same character - let new = cur[0] == char - \ ? char.cur - \ : char.' '.cur + " If configured to do so, add a a space after the quote character, but + " only if this line isn't already quoted + let new = char + if l:space && cur[0] != char + let new .= ' ' + endif + let new .= cur call setline(li, new) endfor |