aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2018-06-20 04:29:09 -0400
committerJustin M. Keyes <justinkz@gmail.com>2018-06-20 10:29:09 +0200
commit8794a551bdbc4c31ed212bbb69e9ce946e5612dd (patch)
tree79a54e1eefae3c8b2dc672c068879b787c4c1be5 /src/nvim/testdir
parentb454d24e044e7fba6888e4b7727c8e0c03a352c4 (diff)
downloadrneovim-8794a551bdbc4c31ed212bbb69e9ce946e5612dd.tar.gz
rneovim-8794a551bdbc4c31ed212bbb69e9ce946e5612dd.tar.bz2
rneovim-8794a551bdbc4c31ed212bbb69e9ce946e5612dd.zip
vim-patch:8.0.0{469,581,583} (#8601)
vim-patch:8.0.0469: compiler warnings on MS-Windows Problem: Compiler warnings on MS-Windows. Solution: Add type casts. (Christian Brabandt) https://github.com/vim/vim/commit/0c0d4eca4dd6252f22ec39f2d561a5e8a68e9a4e vim-patch:8.0.0581: moving folded text is sometimes not correct Problem: Moving folded text is sometimes not correct. Solution: Bail out when "move_end" is zero. (Matthew Malcomson) https://github.com/vim/vim/commit/94be619e30e82d28cadeea5e0766c6f5c321ff8b vim-patch:8.0.0583: fold test hangs on MS-Windows Problem: Fold test hangs on MS-Windows. Solution: Avoid overflow in compare. https://github.com/vim/vim/commit/b11c826ddc459813f9f991cdb8e8736b686a6328
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r--src/nvim/testdir/test_fold.vim71
1 files changed, 52 insertions, 19 deletions
diff --git a/src/nvim/testdir/test_fold.vim b/src/nvim/testdir/test_fold.vim
index 0c2ec08af3..951df349ce 100644
--- a/src/nvim/testdir/test_fold.vim
+++ b/src/nvim/testdir/test_fold.vim
@@ -1,10 +1,10 @@
" Test for folding
-func! PrepIndent(arg)
+func PrepIndent(arg)
return [a:arg] + repeat(["\t".a:arg], 5)
endfu
-func! Test_address_fold()
+func Test_address_fold()
new
call setline(1, ['int FuncName() {/*{{{*/', 1, 2, 3, 4, 5, '}/*}}}*/',
\ 'after fold 1', 'after fold 2', 'after fold 3'])
@@ -68,17 +68,7 @@ func! Test_address_fold()
quit!
endfunc
-func! Test_indent_fold()
- new
- call setline(1, ['', 'a', ' b', ' c'])
- setl fen fdm=indent
- 2
- norm! >>
- let a=map(range(1,4), 'foldclosed(v:val)')
- call assert_equal([-1,-1,-1,-1], a)
-endfunc
-
-func! Test_indent_fold()
+func Test_indent_fold()
new
call setline(1, ['', 'a', ' b', ' c'])
setl fen fdm=indent
@@ -89,7 +79,7 @@ func! Test_indent_fold()
bw!
endfunc
-func! Test_indent_fold2()
+func Test_indent_fold2()
new
call setline(1, ['', '{{{', '}}}', '{{{', '}}}'])
setl fen fdm=marker
@@ -122,7 +112,7 @@ func Test_manual_fold_with_filter()
endfor
endfunc
-func! Test_indent_fold_with_read()
+func Test_indent_fold_with_read()
new
set foldmethod=indent
call setline(1, repeat(["\<Tab>a"], 4))
@@ -224,7 +214,11 @@ func Test_update_folds_expr_read()
set foldmethod& foldexpr&
endfunc
-func! Test_move_folds_around_manual()
+func Check_foldlevels(expected)
+ call assert_equal(a:expected, map(range(1, line('$')), 'foldlevel(v:val)'))
+endfunc
+
+func Test_move_folds_around_manual()
new
let input = PrepIndent("a") + PrepIndent("b") + PrepIndent("c")
call setline(1, PrepIndent("a") + PrepIndent("b") + PrepIndent("c"))
@@ -293,11 +287,50 @@ func! Test_move_folds_around_manual()
6m$
" The first fold has been truncated to the 5'th line.
" Second fold has been moved up because the moved line is now below it.
- call assert_equal([0, 1, 1, 1, 1, 0, 0, 0, 1, 0], map(range(1, line('$')), 'foldlevel(v:val)'))
+ call Check_foldlevels([0, 1, 1, 1, 1, 0, 0, 0, 1, 0])
+
+ %delete
+ set fdm=indent foldlevel=0
+ call setline(1, [
+ \ "a",
+ \ "\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "a",
+ \ "a"])
+ set fdm=manual
+ %foldopen!
+ 4,5m6
+ call Check_foldlevels([0, 1, 2, 0, 0, 0, 0])
+
+ %delete
+ set fdm=indent
+ call setline(1, [
+ \ "\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "\t\ta",
+ \ "\ta",
+ \ "a"])
+ set fdm=manual
+ %foldopen!
+ 13m7
+ call Check_foldlevels([1, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, 1, 0])
+
bw!
endfunc
-func! Test_move_folds_around_indent()
+func Test_move_folds_around_indent()
new
let input = PrepIndent("a") + PrepIndent("b") + PrepIndent("c")
call setline(1, PrepIndent("a") + PrepIndent("b") + PrepIndent("c"))
@@ -357,7 +390,7 @@ func! Test_move_folds_around_indent()
6m$
" The first fold has been truncated to the 5'th line.
" Second fold has been moved up because the moved line is now below it.
- call assert_equal([0, 1, 1, 1, 1, 0, 0, 0, 1, 1], map(range(1, line('$')), 'foldlevel(v:val)'))
+ call Check_foldlevels([0, 1, 1, 1, 1, 0, 0, 0, 1, 1])
bw!
endfunc