aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir/test_indent.vim
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2023-11-30 20:35:25 +0000
committerJosh Rahm <joshuarahm@gmail.com>2023-11-30 20:35:25 +0000
commit1b7b916b7631ddf73c38e3a0070d64e4636cb2f3 (patch)
treecd08258054db80bb9a11b1061bb091c70b76926a /src/nvim/testdir/test_indent.vim
parenteaa89c11d0f8aefbb512de769c6c82f61a8baca3 (diff)
parent4a8bf24ac690004aedf5540fa440e788459e5e34 (diff)
downloadrneovim-aucmd_textputpost.tar.gz
rneovim-aucmd_textputpost.tar.bz2
rneovim-aucmd_textputpost.zip
Merge remote-tracking branch 'upstream/master' into aucmd_textputpostaucmd_textputpost
Diffstat (limited to 'src/nvim/testdir/test_indent.vim')
-rw-r--r--src/nvim/testdir/test_indent.vim279
1 files changed, 0 insertions, 279 deletions
diff --git a/src/nvim/testdir/test_indent.vim b/src/nvim/testdir/test_indent.vim
deleted file mode 100644
index 3b5b643177..0000000000
--- a/src/nvim/testdir/test_indent.vim
+++ /dev/null
@@ -1,279 +0,0 @@
-" Test for various indent options
-
-func Test_preserveindent()
- new
- " Test for autoindent copying indent from the previous line
- setlocal autoindent
- call setline(1, [repeat(' ', 16) .. 'line1'])
- call feedkeys("A\nline2", 'xt')
- call assert_equal("\t\tline2", getline(2))
- setlocal autoindent&
-
- " Test for using CTRL-T with and without 'preserveindent'
- set shiftwidth=4
- call cursor(1, 1)
- call setline(1, " \t ")
- call feedkeys("Al\<C-T>", 'xt')
- call assert_equal("\t\tl", getline(1))
- set preserveindent
- call setline(1, " \t ")
- call feedkeys("Al\<C-T>", 'xt')
- call assert_equal(" \t \tl", getline(1))
- set pi& sw&
-
- " Test for using CTRL-T with 'expandtab' and 'preserveindent'
- call cursor(1, 1)
- call setline(1, "\t \t")
- set shiftwidth=4 expandtab preserveindent
- call feedkeys("Al\<C-T>", 'xt')
- call assert_equal("\t \t l", getline(1))
- set sw& et& pi&
-
- close!
-endfunc
-
-" Test for indent()
-func Test_indent_func()
- call assert_equal(-1, indent(-1))
- new
- call setline(1, "\tabc")
- call assert_equal(8, indent(1))
- call setline(1, " abc")
- call assert_equal(4, indent(1))
- call setline(1, " \t abc")
- call assert_equal(12, indent(1))
- close!
-endfunc
-
-" Test for reindenting a line using the '=' operator
-func Test_reindent()
- new
- call setline(1, 'abc')
- set nomodifiable
- call assert_fails('normal ==', 'E21:')
- set modifiable
-
- call setline(1, ['foo', 'bar'])
- call feedkeys('ggVG=', 'xt')
- call assert_equal(['foo', 'bar'], getline(1, 2))
- close!
-endfunc
-
-" Test indent operator creating one undo entry
-func Test_indent_operator_undo()
- enew
- call setline(1, range(12)->map('"\t" .. v:val'))
- func FoldExpr()
- let g:foldcount += 1
- return '='
- endfunc
- set foldmethod=expr foldexpr=FoldExpr()
- let g:foldcount = 0
- redraw
- call assert_equal(12, g:foldcount)
- normal gg=G
- call assert_equal(24, g:foldcount)
- undo
- call assert_equal(38, g:foldcount)
-
- bwipe!
- set foldmethod& foldexpr=
- delfunc FoldExpr
- unlet g:foldcount
-endfunc
-
-" Test for shifting a line with a preprocessor directive ('#')
-func Test_preproc_indent()
- new
- set sw=4
- call setline(1, '#define FOO 1')
- normal >>
- call assert_equal(' #define FOO 1', getline(1))
-
- " with 'smartindent'
- call setline(1, '#define FOO 1')
- set smartindent
- normal >>
- call assert_equal('#define FOO 1', getline(1))
- set smartindent&
-
- " with 'cindent'
- set cindent
- normal >>
- call assert_equal('#define FOO 1', getline(1))
- set cindent&
-
- close!
-endfunc
-
-" Test for 'copyindent'
-func Test_copyindent()
- new
- set shiftwidth=4 autoindent expandtab copyindent
- call setline(1, " \t abc")
- call feedkeys("ol", 'xt')
- call assert_equal(" \t l", getline(2))
- set noexpandtab
- call setline(1, " \t abc")
- call feedkeys("ol", 'xt')
- call assert_equal(" \t l", getline(2))
- set sw& ai& et& ci&
- close!
-endfunc
-
-" Test for changing multiple lines with lisp indent
-func Test_lisp_indent_change_multiline()
- new
- setlocal lisp autoindent
- call setline(1, ['(if a', ' (if b', ' (return 5)))'])
- normal! jc2j(return 4))
- call assert_equal(' (return 4))', getline(2))
- close!
-endfunc
-
-func Test_lisp_indent()
- new
- setlocal lisp autoindent
- call setline(1, ['(if a', ' ;; comment', ' \ abc', '', ' " str1\', ' " st\b', ' (return 5)'])
- normal! jo;; comment
- normal! jo\ abc
- normal! jo;; ret
- normal! jostr1"
- normal! jostr2"
- call assert_equal([' ;; comment', ' ;; comment', ' \ abc', ' \ abc', '', ' ;; ret', ' " str1\', ' str1"', ' " st\b', ' str2"'], getline(2, 11))
- close!
-endfunc
-
-func Test_lisp_indent_quoted()
- " This was going past the end of the line
- new
- setlocal lisp autoindent
- call setline(1, ['"[', '='])
- normal Gvk=
-
- bwipe!
-endfunc
-
-" Test for setting the 'indentexpr' from a modeline
-func Test_modeline_indent_expr()
- let modeline = &modeline
- set modeline
- func GetIndent()
- return line('.') * 2
- endfunc
- call writefile(['# vim: indentexpr=GetIndent()'], 'Xfile.txt')
- set modelineexpr
- new Xfile.txt
- call assert_equal('GetIndent()', &indentexpr)
- exe "normal Oa\nb\n"
- call assert_equal([' a', ' b'], getline(1, 2))
-
- set modelineexpr&
- delfunc GetIndent
- let &modeline = modeline
- close!
- call delete('Xfile.txt')
-endfunc
-
-func Test_indent_func_with_gq()
-
- function GetTeXIndent()
- " Sample indent expression for TeX files
- let lnum = prevnonblank(v:lnum - 1)
- " At the start of the file use zero indent.
- if lnum == 0
- return 0
- endif
- let line = getline(lnum)
- let ind = indent(lnum)
- " Add a 'shiftwidth' after beginning of environments.
- if line =~ '\\begin{center}'
- let ind = ind + shiftwidth()
- endif
- return ind
- endfunction
-
- new
- setl et sw=2 sts=2 ts=2 tw=50 indentexpr=GetTeXIndent()
- put =[ '\documentclass{article}', '', '\begin{document}', '',
- \ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ut enim non',
- \ 'libero efficitur aliquet. Maecenas metus justo, facilisis convallis blandit',
- \ 'non, semper eu urna. Suspendisse diam diam, iaculis faucibus lorem eu,',
- \ 'fringilla condimentum lectus. Quisque euismod diam at convallis vulputate.',
- \ 'Pellentesque laoreet tortor sit amet mauris euismod ornare. Sed varius',
- \ 'bibendum orci vel vehicula. Pellentesque tempor, ipsum et auctor accumsan,',
- \ 'metus lectus ultrices odio, sed elementum mi ante at arcu.', '', '\begin{center}', '',
- \ 'Proin nec risus consequat nunc dapibus consectetur. Mauris lacinia est a augue',
- \ 'tristique accumsan. Morbi pretium, felis molestie eleifend condimentum, arcu',
- \ 'ipsum congue nisl, quis euismod purus libero in ante.', '',
- \ 'Donec id semper purus.',
- \ 'Suspendisse eget aliquam nunc. Maecenas fringilla mauris vitae maximus',
- \ 'condimentum. Cras a quam in mi dictum eleifend at a lorem. Sed convallis',
- \ 'ante a commodo facilisis. Nam suscipit vulputate odio, vel dapibus nisl',
- \ 'dignissim facilisis. Vestibulum ante ipsum primis in faucibus orci luctus et',
- \ 'ultrices posuere cubilia curae;', '', '']
- 1d_
- call cursor(5, 1)
- ka
- call cursor(14, 1)
- kb
- norm! 'agqap
- norm! 'bgqG
- let expected = [ '\documentclass{article}', '', '\begin{document}', '',
- \ 'Lorem ipsum dolor sit amet, consectetur adipiscing',
- \ 'elit. Fusce ut enim non libero efficitur aliquet.',
- \ 'Maecenas metus justo, facilisis convallis blandit',
- \ 'non, semper eu urna. Suspendisse diam diam,',
- \ 'iaculis faucibus lorem eu, fringilla condimentum',
- \ 'lectus. Quisque euismod diam at convallis',
- \ 'vulputate. Pellentesque laoreet tortor sit amet',
- \ 'mauris euismod ornare. Sed varius bibendum orci',
- \ 'vel vehicula. Pellentesque tempor, ipsum et auctor',
- \ 'accumsan, metus lectus ultrices odio, sed',
- \ 'elementum mi ante at arcu.', '', '\begin{center}', '',
- \ ' Proin nec risus consequat nunc dapibus',
- \ ' consectetur. Mauris lacinia est a augue',
- \ ' tristique accumsan. Morbi pretium, felis',
- \ ' molestie eleifend condimentum, arcu ipsum congue',
- \ ' nisl, quis euismod purus libero in ante.',
- \ '',
- \ ' Donec id semper purus. Suspendisse eget aliquam',
- \ ' nunc. Maecenas fringilla mauris vitae maximus',
- \ ' condimentum. Cras a quam in mi dictum eleifend',
- \ ' at a lorem. Sed convallis ante a commodo',
- \ ' facilisis. Nam suscipit vulputate odio, vel',
- \ ' dapibus nisl dignissim facilisis. Vestibulum',
- \ ' ante ipsum primis in faucibus orci luctus et',
- \ ' ultrices posuere cubilia curae;', '', '']
- call assert_equal(expected, getline(1, '$'))
-
- bwipe!
- delmark ab
- delfunction GetTeXIndent
-endfu
-
-func Test_formatting_keeps_first_line_indent()
- let lines =<< trim END
- foo()
- {
- int x; // manually positioned
- // more text that will be formatted
- // but not reindented
- END
- new
- call setline(1, lines)
- setlocal sw=4 cindent tw=45 et
- normal! 4Ggqj
- let expected =<< trim END
- foo()
- {
- int x; // manually positioned
- // more text that will be
- // formatted but not
- // reindented
- END
- call assert_equal(expected, getline(1, '$'))
- bwipe!
-endfunc
-
-" vim: shiftwidth=2 sts=2 expandtab