File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -301,6 +301,13 @@ function! s:indent_like_previous_line(lnum)
301301
302302 let empty = getline (a: lnum ) = ~# ' ^\s*$'
303303
304+ " Current and prev line are empty, next is not -> indent like next.
305+ if empty && a: lnum > 1 &&
306+ \ (getline (a: lnum - 1 ) = ~# ' ^\s*$' ) &&
307+ \ ! (getline (a: lnum + 1 ) = ~# ' ^\s*$' )
308+ return indent (a: lnum + 1 )
309+ endif
310+
304311 " If the previous statement was a stop-execution statement or a pass
305312 if getline (start ) = ~# s: stop_statement
306313 " Remove one level of indentation if the user hasn't already dedented
Original file line number Diff line number Diff line change 168168 end
169169 end
170170
171+ describe "when an empty line is after empty line / before non-empty" do
172+ it "is indented like the next line" do
173+ vim . feedkeys 'idef a():\<CR>1\<CR>\<CR>\<CR>2\<ESC><<kcc'
174+ indent . should == 0
175+ end
176+ end
177+
178+ describe "when an empty line is after empty line / before non-empty (nested)" do
179+ it "is indented like the next line" do
180+ vim . feedkeys 'idef a():\<CR>1\<CR>\<CR>\<CR>\<ESC>0i\<TAB>2\<ESC>kcc'
181+ indent . should == shiftwidth
182+ end
183+ end
184+
171185 describe "when line is empty inside a block following multi-line statement" do
172186 it "is indented like the previous line" do
173187 vim . feedkeys 'idef a():\<CR>x = (1 +\<CR>2)\<CR>\<CR>y\<ESC>kcc'
You can’t perform that action at this time.
0 commit comments