Mercurial > vim
view src/testdir/test_wordcount.vim @ 33525:09dac7f0916b v9.0.2011
patch 9.0.2011: INI files not detected
Commit: https://github.com/vim/vim/commit/4a82bdfaa8022402b1ca0f0000c94c47a13f1014
Author: Martin Tournoij <martin@arp242.net>
Date: Wed Oct 11 21:20:06 2023 +0200
patch 9.0.2011: INI files not detected
Problem: INI files not detected
Solution: detect uppercase .INI as dosini files
It previo~1 only worked for lower-case .ini files, but upperc~1 .INI is
also somewhat common on account of DOS' old 8.3 upperc~2 only filena~1.
closes: #13316
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Martin Tournoij <martin@arp242.net>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 11 Oct 2023 21:30:07 +0200 |
parents | 08940efa6b4e |
children |
line wrap: on
line source
" Test for wordcount() function func Test_wordcount() let save_enc = &enc set encoding=utf-8 set selection=inclusive fileformat=unix fileformats=unix new " Test 1: empty window call assert_equal({'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, \ 'bytes': 0, 'cursor_bytes': 0}, wordcount()) " Test 2: some words, cursor at start call append(1, 'one two three') call cursor([1, 1, 0]) call assert_equal({'chars': 15, 'cursor_chars': 1, 'words': 3, 'cursor_words': 0, \ 'bytes': 15, 'cursor_bytes': 1}, wordcount()) " Test 3: some words, cursor at end %d _ call append(1, 'one two three') call cursor([2, 99, 0]) call assert_equal({'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, \ 'bytes': 15, 'cursor_bytes': 14}, wordcount()) " Test 4: some words, cursor at end, ve=all set ve=all %d _ call append(1, 'one two three') call cursor([2, 99, 0]) call assert_equal({'chars': 15, 'cursor_chars': 15, 'words': 3, 'cursor_words': 3, \ 'bytes': 15, 'cursor_bytes': 15}, wordcount()) set ve= " Test 5: several lines with words %d _ call append(1, ['one two three', 'one two three', 'one two three']) call cursor([4, 99, 0]) call assert_equal({'chars': 43, 'cursor_chars': 42, 'words': 9, 'cursor_words': 9, \ 'bytes': 43, 'cursor_bytes': 42}, wordcount()) " Test 6: one line with BOM set %d _ call append(1, 'one two three') set bomb w! Xtest call cursor([2, 99, 0]) call assert_equal({'chars': 15, 'cursor_chars': 14, 'words': 3, 'cursor_words': 3, \ 'bytes': 18, 'cursor_bytes': 14}, wordcount()) set nobomb w! call delete('Xtest') " Test 7: one line with multibyte words %d _ call append(1, ['Äne M¤ne Müh']) call cursor([2, 99, 0]) call assert_equal({'chars': 14, 'cursor_chars': 13, 'words': 3, 'cursor_words': 3, \ 'bytes': 17, 'cursor_bytes': 16}, wordcount()) " Test 8: several lines with multibyte words %d _ call append(1, ['Äne M¤ne Müh', 'und raus bist dü!']) call cursor([3, 99, 0]) call assert_equal({'chars': 32, 'cursor_chars': 31, 'words': 7, 'cursor_words': 7, \ 'bytes': 36, 'cursor_bytes': 35}, wordcount()) " Visual map to capture wordcount() in visual mode vnoremap <expr> <F2> execute("let g:visual_stat = wordcount()") " Test 9: visual mode, complete buffer let g:visual_stat = {} %d _ call append(1, ['Äne M¤ne Müh', 'und raus bist dü!']) " start visual mode and select the complete buffer 0 exe "normal V2j\<F2>y" call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32, \ 'visual_words': 7, 'visual_bytes': 36}, g:visual_stat) " Test 10: visual mode (empty) %d _ call append(1, ['Äne M¤ne Müh', 'und raus bist dü!']) " start visual mode and select the complete buffer 0 exe "normal v$\<F2>y" call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1, \ 'visual_words': 0, 'visual_bytes': 1}, g:visual_stat) " Test 11: visual mode, single line %d _ call append(1, ['Äne M¤ne Müh', 'und raus bist dü!']) " start visual mode and select the complete buffer 2 exe "normal 0v$\<F2>y" call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13, \ 'visual_words': 3, 'visual_bytes': 16}, g:visual_stat) set selection& fileformat& fileformats& let &enc = save_enc enew! close endfunc " vim: shiftwidth=2 sts=2 expandtab