From 487515a1de9dab950ac11004181e5b19a0040a81 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Thu, 30 Jul 2015 23:35:53 +0900 Subject: [PATCH] Customizable paragraph boundary Close #20 --- README.md | 6 ++++++ autoload/limelight.vim | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c90bc0a..e9b7225 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,12 @@ let g:limelight_default_coefficient = 0.7 " Number of preceding/following paragraphs to include (default: 0) let g:limelight_paragraph_span = 1 + +" Beginning/end of paragraph +" When there's no empty line between the paragraphs +" and each paragraph starts with indentation +let g:limelight_bop = '^\s' +let g:limelight_eop = '\ze\n^\s' ``` Goyo.vim integration diff --git a/autoload/limelight.vim b/autoload/limelight.vim index 87c00ef..1bfb1a2 100644 --- a/autoload/limelight.vim +++ b/autoload/limelight.vim @@ -43,14 +43,16 @@ function! s:unsupported() endfunction function! s:getpos() + let bop = get(g:, 'limelight_bop', '^\s*$\n\zs') + let eop = get(g:, 'limelight_eop', '^\s*$') let span = max([0, get(g:, 'limelight_paragraph_span', 0) - s:empty(getline('.'))]) let pos = getpos('.') - for _ in range(0, span) - let start = searchpos('^\s*$', 'bW')[0] + for i in range(0, span) + let start = searchpos(bop, i == 0 ? 'cbW' : 'bW')[0] endfor call setpos('.', pos) for _ in range(0, span) - let end = searchpos('^\s*$', 'W')[0] + let end = searchpos(eop, 'W')[0] endfor call setpos('.', pos) return [start, end]