diff options
| author | Justin M. Keyes <justinkz@gmail.com> | 2023-12-07 12:19:35 +0100 |
|---|---|---|
| committer | Justin M. Keyes <justinkz@gmail.com> | 2024-01-03 02:09:28 +0100 |
| commit | 59d117ec99b6037cb9fad5bbfb6d0b18f5012927 (patch) | |
| tree | ac8f9b52013066f1145215dd46327d814b8cf02b /test/functional | |
| parent | b3eda5e73f65092d50ccd27a0373e8b9fad076b0 (diff) | |
| download | rneovim-59d117ec99b6037cb9fad5bbfb6d0b18f5012927.tar.gz rneovim-59d117ec99b6037cb9fad5bbfb6d0b18f5012927.tar.bz2 rneovim-59d117ec99b6037cb9fad5bbfb6d0b18f5012927.zip | |
build: enable lintlua for test/ dir
Problem:
Not all Lua code is checked by stylua. Automating code-style is an
important mechanism for reducing time spent on accidental
(non-essential) complexity.
Solution:
- Enable stylua for entire `test/` directory.
- Exclude these high-churn files until this issue is resolved: https://github.com/JohnnyMorganz/StyLua/issues/829
```
test/functional/ui/decorations_spec.lua | 3560 ++++++++++++++++++++++++++++++++++++----------------
test/functional/ui/float_spec.lua | 5826 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
test/functional/ui/multigrid_spec.lua | 1349 ++++++++++++++------
```
- Make surgical changes to these files (or add `stylua: ignore` in some
small scopes) to improve the result:
```
test/functional/vimscript/msgpack_functions_spec.lua | 1414 +++++++++++++++------
test/functional/api/buffer_spec.lua | 1389 +++++++++++----------
test/functional/api/vim_spec.lua | 2740 +++++++++++++++++++++++-----------------
```
- These "high churn" files are NOT excluded because the changes are
largely an improvement:
```
test/functional/plugin/lsp_spec.lua | 2198 ++++++++++++++++++---------------
test/functional/plugin/shada_spec.lua | 4078 +++++++++++++++++++++++++++++++++++-------------------------
test/functional/ui/cmdline_spec.lua | 1199 +++++++++++-------
test/functional/ui/popupmenu_spec.lua | 1267 +++++++++++--------
test/functional/ui/messages_spec.lua | 1643 +++++++++++++++---------
```
- TODO: how to check "all directories"? With `GLOB_DIRS *` and `/.deps/` (or
`.deps/`) in `.styluaignore`, Lua code in `.deps/` is still checked...
Diffstat (limited to 'test/functional')
| -rw-r--r-- | test/functional/api/buffer_spec.lua | 1200 | ||||
| -rw-r--r-- | test/functional/api/vim_spec.lua | 2585 | ||||
| -rw-r--r-- | test/functional/core/spellfile_spec.lua | 22 | ||||
| -rw-r--r-- | test/functional/vimscript/msgpack_functions_spec.lua | 287 |
4 files changed, 2279 insertions, 1815 deletions
diff --git a/test/functional/api/buffer_spec.lua b/test/functional/api/buffer_spec.lua index b89101a5e7..e8fff7443d 100644 --- a/test/functional/api/buffer_spec.lua +++ b/test/functional/api/buffer_spec.lua @@ -23,16 +23,15 @@ describe('api/buf', function() -- access deprecated functions local function curbuf_depr(method, ...) - return request('buffer_'..method, 0, ...) + return request('buffer_' .. method, 0, ...) end - describe('nvim_buf_set_lines, nvim_buf_line_count', function() it('deprecated forms', function() eq(1, curbuf_depr('line_count')) - curbuf_depr('insert', -1, {'line'}) + curbuf_depr('insert', -1, { 'line' }) eq(2, curbuf_depr('line_count')) - curbuf_depr('insert', -1, {'line'}) + curbuf_depr('insert', -1, { 'line' }) eq(3, curbuf_depr('line_count')) curbuf_depr('del_line', -1) eq(2, curbuf_depr('line_count')) @@ -45,88 +44,88 @@ describe('api/buf', function() it("doesn't crash just after set undolevels=1 #24894", function() local buf = meths.create_buf(false, true) meths.buf_set_option(buf, 'undolevels', -1) - meths.buf_set_lines(buf, 0, 1, false, { }) + meths.buf_set_lines(buf, 0, 1, false, {}) assert_alive() end) it('cursor position is maintained after lines are inserted #9961', function() -- replace the buffer contents with these three lines. - request('nvim_buf_set_lines', 0, 0, -1, 1, {"line1", "line2", "line3", "line4"}) + request('nvim_buf_set_lines', 0, 0, -1, 1, { 'line1', 'line2', 'line3', 'line4' }) -- Set the current cursor to {3, 2}. - curwin('set_cursor', {3, 2}) + curwin('set_cursor', { 3, 2 }) -- add 2 lines and delete 1 line above the current cursor position. - request('nvim_buf_set_lines', 0, 1, 2, 1, {"line5", "line6"}) + request('nvim_buf_set_lines', 0, 1, 2, 1, { 'line5', 'line6' }) -- check the current set of lines in the buffer. - eq({"line1", "line5", "line6", "line3", "line4"}, buffer('get_lines', 0, 0, -1, 1)) + eq({ 'line1', 'line5', 'line6', 'line3', 'line4' }, buffer('get_lines', 0, 0, -1, 1)) -- cursor should be moved below by 1 line. - eq({4, 2}, curwin('get_cursor')) + eq({ 4, 2 }, curwin('get_cursor')) -- add a line after the current cursor position. - request('nvim_buf_set_lines', 0, 5, 5, 1, {"line7"}) + request('nvim_buf_set_lines', 0, 5, 5, 1, { 'line7' }) -- check the current set of lines in the buffer. - eq({"line1", "line5", "line6", "line3", "line4", "line7"}, buffer('get_lines', 0, 0, -1, 1)) + eq({ 'line1', 'line5', 'line6', 'line3', 'line4', 'line7' }, buffer('get_lines', 0, 0, -1, 1)) -- cursor position is unchanged. - eq({4, 2}, curwin('get_cursor')) + eq({ 4, 2 }, curwin('get_cursor')) -- overwrite current cursor line. - request('nvim_buf_set_lines', 0, 3, 5, 1, {"line8", "line9"}) + request('nvim_buf_set_lines', 0, 3, 5, 1, { 'line8', 'line9' }) -- check the current set of lines in the buffer. - eq({"line1", "line5", "line6", "line8", "line9", "line7"}, buffer('get_lines', 0, 0, -1, 1)) + eq({ 'line1', 'line5', 'line6', 'line8', 'line9', 'line7' }, buffer('get_lines', 0, 0, -1, 1)) -- cursor position is unchanged. - eq({4, 2}, curwin('get_cursor')) + eq({ 4, 2 }, curwin('get_cursor')) -- delete current cursor line. request('nvim_buf_set_lines', 0, 3, 5, 1, {}) -- check the current set of lines in the buffer. - eq({"line1", "line5", "line6", "line7"}, buffer('get_lines', 0, 0, -1, 1)) + eq({ 'line1', 'line5', 'line6', 'line7' }, buffer('get_lines', 0, 0, -1, 1)) -- cursor position is unchanged. - eq({4, 2}, curwin('get_cursor')) + eq({ 4, 2 }, curwin('get_cursor')) end) it('cursor position is maintained in non-current window', function() - meths.buf_set_lines(0, 0, -1, 1, {"line1", "line2", "line3", "line4"}) - meths.win_set_cursor(0, {3, 2}) + meths.buf_set_lines(0, 0, -1, 1, { 'line1', 'line2', 'line3', 'line4' }) + meths.win_set_cursor(0, { 3, 2 }) local win = meths.get_current_win() local buf = meths.get_current_buf() command('new') - meths.buf_set_lines(buf, 1, 2, 1, {"line5", "line6"}) - eq({"line1", "line5", "line6", "line3", "line4"}, meths.buf_get_lines(buf, 0, -1, true)) - eq({4, 2}, meths.win_get_cursor(win)) + meths.buf_set_lines(buf, 1, 2, 1, { 'line5', 'line6' }) + eq({ 'line1', 'line5', 'line6', 'line3', 'line4' }, meths.buf_get_lines(buf, 0, -1, true)) + eq({ 4, 2 }, meths.win_get_cursor(win)) end) it('cursor position is maintained in TWO non-current windows', function() - meths.buf_set_lines(0, 0, -1, 1, {"line1", "line2", "line3", "line4"}) - meths.win_set_cursor(0, {3, 2}) + meths.buf_set_lines(0, 0, -1, 1, { 'line1', 'line2', 'line3', 'line4' }) + meths.win_set_cursor(0, { 3, 2 }) local win = meths.get_current_win() local buf = meths.get_current_buf() command('split') - meths.win_set_cursor(0, {4, 2}) + meths.win_set_cursor(0, { 4, 2 }) local win2 = meths.get_current_win() -- set current window to third one with another buffer - command("new") + command('new') - meths.buf_set_lines(buf, 1, 2, 1, {"line5", "line6"}) - eq({"line1", "line5", "line6", "line3", "line4"}, meths.buf_get_lines(buf, 0, -1, true)) - eq({4, 2}, meths.win_get_cursor(win)) - eq({5, 2}, meths.win_get_cursor(win2)) + meths.buf_set_lines(buf, 1, 2, 1, { 'line5', 'line6' }) + eq({ 'line1', 'line5', 'line6', 'line3', 'line4' }, meths.buf_get_lines(buf, 0, -1, true)) + eq({ 4, 2 }, meths.win_get_cursor(win)) + eq({ 5, 2 }, meths.win_get_cursor(win2)) end) it('line_count has defined behaviour for unloaded buffers', function() -- we'll need to know our bufnr for when it gets unloaded local bufnr = curbuf('get_number') -- replace the buffer contents with these three lines - request('nvim_buf_set_lines', bufnr, 0, -1, 1, {"line1", "line2", "line3", "line4"}) + request('nvim_buf_set_lines', bufnr, 0, -1, 1, { 'line1', 'line2', 'line3', 'line4' }) -- check the line count is correct eq(4, request('nvim_buf_line_count', bufnr)) -- force unload the buffer (this will discard changes) command('new') - command('bunload! '..bufnr) + command('bunload! ' .. bufnr) -- line count for an unloaded buffer should always be 0 eq(0, request('nvim_buf_line_count', bufnr)) end) @@ -135,12 +134,12 @@ describe('api/buf', function() -- we'll need to know our bufnr for when it gets unloaded local bufnr = curbuf('get_number') -- replace the buffer contents with these three lines - buffer('set_lines', bufnr, 0, -1, 1, {"line1", "line2", "line3", "line4"}) + buffer('set_lines', bufnr, 0, -1, 1, { 'line1', 'line2', 'line3', 'line4' }) -- confirm that getting lines works - eq({"line2", "line3"}, buffer('get_lines', bufnr, 1, 3, 1)) + eq({ 'line2', 'line3' }, buffer('get_lines', bufnr, 1, 3, 1)) -- force unload the buffer (this will discard changes) command('new') - command('bunload! '..bufnr) + command('bunload! ' .. bufnr) -- attempting to get lines now always gives empty list eq({}, buffer('get_lines', bufnr, 1, 3, 1)) -- it's impossible to get out-of-bounds errors for an unloaded buffer @@ -152,12 +151,12 @@ describe('api/buf', function() before_each(function() screen = Screen.new(20, 12) screen:set_default_attr_ids { - [1] = {bold = true, foreground = Screen.colors.Blue1}; - [2] = {reverse = true, bold = true}; - [3] = {reverse = true}; + [1] = { bold = true, foreground = Screen.colors.Blue1 }, + [2] = { reverse = true, bold = true }, + [3] = { reverse = true }, } screen:attach() - meths.buf_set_lines(0, 0, -1, 1, {"aaa", "bbb", "ccc", "ddd", "www", "xxx", "yyy", "zzz"}) + meths.buf_set_lines(0, 0, -1, 1, { 'aaa', 'bbb', 'ccc', 'ddd', 'www', 'xxx', 'yyy', 'zzz' }) meths.set_option_value('modified', false, {}) end) @@ -166,9 +165,10 @@ describe('api/buf', function() local buf = meths.get_current_buf() command('new | wincmd w') - meths.win_set_cursor(win, {8,0}) + meths.win_set_cursor(win, { 8, 0 }) - screen:expect{grid=[[ + screen:expect { + grid = [[ | {1:~ }|*4 {3:[No Name] }| @@ -178,10 +178,12 @@ describe('api/buf', function() ^zzz | {2:[No Name] }| | - ]]} + ]], + } - meths.buf_set_lines(buf, 0, 2, true, {"aaabbb"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 0, 2, true, { 'aaabbb' }) + screen:expect { + grid = [[ | {1:~ }|*4 {3:[No Name] }| @@ -191,11 +193,13 @@ describe('api/buf', function() ^zzz | {2:[No Name] [+] }| | - ]]} + ]], + } -- replacing topline keeps it the topline - meths.buf_set_lines(buf, 3, 4, true, {"wwweeee"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 3, 4, true, { 'wwweeee' }) + screen:expect { + grid = [[ | {1:~ }|*4 {3:[No Name] }| @@ -205,11 +209,13 @@ describe('api/buf', function() ^zzz | {2:[No Name] [+] }| | - ]]} + ]], + } -- inserting just before topline does not scroll up if cursor would be moved - meths.buf_set_lines(buf, 3, 3, true, {"mmm"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 3, 3, true, { 'mmm' }) + screen:expect { + grid = [[ | {1:~ }|*4 {3:[No Name] }| @@ -219,10 +225,13 @@ describe('api/buf', function() ^zzz | {2:[No Name] [+] }| | - ]], unchanged=true} + ]], + unchanged = true, + } - meths.win_set_cursor(0, {7, 0}) - screen:expect{grid=[[ + meths.win_set_cursor(0, { 7, 0 }) + screen:expect { + grid = [[ | {1:~ }|*4 {3:[No Name] }| @@ -232,10 +241,12 @@ describe('api/buf', function() zzz | {2:[No Name] [+] }| | - ]]} + ]], + } - meths.buf_set_lines(buf, 4, 4, true, {"mmmeeeee"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 4, 4, true, { 'mmmeeeee' }) + screen:expect { + grid = [[ | {1:~ }|*4 {3:[No Name] }| @@ -245,7 +256,8 @@ describe('api/buf', function() ^yyy | {2:[No Name] [+] }| | - ]]} + ]], + } end) it('of non-current window', function() @@ -253,9 +265,10 @@ describe('api/buf', function() local buf = meths.get_current_buf() command('new') - meths.win_set_cursor(win, {8,0}) + meths.win_set_cursor(win, { 8, 0 }) - screen:expect{grid=[[ + screen:expect { + grid = [[ ^ | {1:~ }|*4 {2:[No Name] }| @@ -265,10 +278,12 @@ describe('api/buf', function() zzz | {3:[No Name] }| | - ]]} + ]], + } - meths.buf_set_lines(buf, 0, 2, true, {"aaabbb"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 0, 2, true, { 'aaabbb' }) + screen:expect { + grid = [[ ^ | {1:~ }|*4 {2:[No Name] }| @@ -278,11 +293,13 @@ describe('api/buf', function() zzz | {3:[No Name] [+] }| | - ]]} + ]], + } -- replacing topline keeps it the topline - meths.buf_set_lines(buf, 3, 4, true, {"wwweeee"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 3, 4, true, { 'wwweeee' }) + screen:expect { + grid = [[ ^ | {1:~ }|*4 {2:[No Name] }| @@ -292,11 +309,13 @@ describe('api/buf', function() zzz | {3:[No Name] [+] }| | - ]]} + ]], + } -- inserting just before topline scrolls up - meths.buf_set_lines(buf, 3, 3, true, {"mmm"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 3, 3, true, { 'mmm' }) + screen:expect { + grid = [[ ^ | {1:~ }|*4 {2:[No Name] }| @@ -306,7 +325,8 @@ describe('api/buf', function() yyy | {3:[No Name] [+] }| | - ]]} + ]], + } end) it('of split windows with same buffer', function() @@ -314,10 +334,11 @@ describe('api/buf', function() local buf = meths.get_current_buf() command('split') - meths.win_set_cursor(win, {8,0}) - meths.win_set_cursor(0, {1,0}) + meths.win_set_cursor(win, { 8, 0 }) + meths.win_set_cursor(0, { 1, 0 }) - screen:expect{grid=[[ + screen:expect { + grid = [[ ^aaa | bbb | ccc | @@ -330,10 +351,12 @@ describe('api/buf', function() zzz | {3:[No Name] }| | - ]]} - meths.buf_set_lines(buf, 0, 2, true, {"aaabbb"}) + ]], + } + meths.buf_set_lines(buf, 0, 2, true, { 'aaabbb' }) - screen:expect{grid=[[ + screen:expect { + grid = [[ ^aaabbb | ccc | ddd | @@ -346,11 +369,13 @@ describe('api/buf', function() zzz | {3:[No Name] [+] }| | - ]]} + ]], + } -- replacing topline keeps it the topline - meths.buf_set_lines(buf, 3, 4, true, {"wwweeee"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 3, 4, true, { 'wwweeee' }) + screen:expect { + grid = [[ ^aaabbb | ccc | ddd | @@ -363,11 +388,13 @@ describe('api/buf', function() zzz | {3:[No Name] [+] }| | - ]]} + ]], + } -- inserting just before topline scrolls up - meths.buf_set_lines(buf, 3, 3, true, {"mmm"}) - screen:expect{grid=[[ + meths.buf_set_lines(buf, 3, 3, true, { 'mmm' }) + screen:expect { + grid = [[ ^aaabbb | ccc | ddd | @@ -380,20 +407,21 @@ describe('api/buf', function() yyy | {3:[No Name] [+] }| | - ]]} + ]], + } end) end) it('handles clearing out non-current buffer #24911', function() - local buf = meths.get_current_buf() - meths.buf_set_lines(buf, 0, -1, true, {"aaa", "bbb", "ccc"}) - command("new") + local buf = meths.get_current_buf() + meths.buf_set_lines(buf, 0, -1, true, { 'aaa', 'bbb', 'ccc' }) + command('new') - meths.buf_set_lines(0, 0, -1, true, {"xxx", "yyy", "zzz"}) + meths.buf_set_lines(0, 0, -1, true, { 'xxx', 'yyy', 'zzz' }) - meths.buf_set_lines(buf, 0, -1, true, {}) - eq({"xxx", "yyy", "zzz"}, meths.buf_get_lines(0, 0, -1, true)) - eq({''}, meths.buf_get_lines(buf, 0, -1, true)) + meths.buf_set_lines(buf, 0, -1, true, {}) + eq({ 'xxx', 'yyy', 'zzz' }, meths.buf_get_lines(0, 0, -1, true)) + eq({ '' }, meths.buf_get_lines(buf, 0, -1, true)) end) end) @@ -431,8 +459,8 @@ describe('api/buf', function() describe('deprecated: {get,set}_line_slice', function() it('get_line_slice: out-of-bounds returns empty array', function() - curbuf_depr('set_line_slice', 0, 0, true, true, {'a', 'b', 'c'}) - eq({'a', 'b', 'c'}, curbuf_depr('get_line_slice', 0, 2, true, true)) --sanity + curbuf_depr('set_line_slice', 0, 0, true, true, { 'a', 'b', 'c' }) + eq({ 'a', 'b', 'c' }, curbuf_depr('get_line_slice', 0, 2, true, true)) --sanity eq({}, curbuf_depr('get_line_slice', 2, 3, false, true)) eq({}, curbuf_depr('get_line_slice', 3, 9, true, true)) @@ -442,37 +470,36 @@ describe('api/buf', function() end) it('set_line_slice: out-of-bounds extends past end', function() - curbuf_depr('set_line_slice', 0, 0, true, true, {'a', 'b', 'c'}) - eq({'a', 'b', 'c'}, curbuf_depr('get_line_slice', 0, 2, true, true)) --sanity + curbuf_depr('set_line_slice', 0, 0, true, true, { 'a', 'b', 'c' }) + eq({ 'a', 'b', 'c' }, curbuf_depr('get_line_slice', 0, 2, true, true)) --sanity - eq({'c'}, curbuf_depr('get_line_slice', -1, 4, true, true)) - eq({'a', 'b', 'c'}, curbuf_depr('get_line_slice', 0, 5, true, true)) - curbuf_depr('set_line_slice', 4, 5, true, true, {'d'}) - eq({'a', 'b', 'c', 'd'}, curbuf_depr('get_line_slice', 0, 5, true, true)) - curbuf_depr('set_line_slice', -4, -5, true, true, {'e'}) - eq({'e', 'a', 'b', 'c', 'd'}, curbuf_depr('get_line_slice', 0, 5, true, true)) + eq({ 'c' }, curbuf_depr('get_line_slice', -1, 4, true, true)) + eq({ 'a', 'b', 'c' }, curbuf_depr('get_line_slice', 0, 5, true, true)) + curbuf_depr('set_line_slice', 4, 5, true, true, { 'd' }) + eq({ 'a', 'b', 'c', 'd' }, curbuf_depr('get_line_slice', 0, 5, true, true)) + curbuf_depr('set_line_slice', -4, -5, true, true, { 'e' }) + eq({ 'e', 'a', 'b', 'c', 'd' }, curbuf_depr('get_line_slice', 0, 5, true, true)) end) it('works', function() - eq({''}, curbuf_depr('get_line_slice', 0, -1, true, true)) + eq({ '' }, curbuf_depr('get_line_slice', 0, -1, true, true)) -- Replace buffer - curbuf_depr('set_line_slice', 0, -1, true, true, {'a', 'b', 'c'}) - eq({'a', 'b', 'c'}, curbuf_depr('get_line_slice', 0, -1, true, true)) - eq({'b', 'c'}, curbuf_depr('get_line_slice', 1, -1, true, true)) - eq({'b'}, curbuf_depr('get_line_slice', 1, 2, true, false)) + curbuf_depr('set_line_slice', 0, -1, true, true, { 'a', 'b', 'c' }) + eq({ 'a', 'b', 'c' }, curbuf_depr('get_line_slice', 0, -1, true, true)) + eq({ 'b', 'c' }, curbuf_depr('get_line_slice', 1, -1, true, true)) + eq({ 'b' }, curbuf_depr('get_line_slice', 1, 2, true, false)) eq({}, curbuf_depr('get_line_slice', 1, 1, true, false)) - eq({'a', 'b'}, curbuf_depr('get_line_slice', 0, -1, true, false)) - eq({'b'}, curbuf_depr('get_line_slice', 1, -1, true, false)) - eq({'b', 'c'}, curbuf_depr('get_line_slice', -2, -1, true, true)) - curbuf_depr('set_line_slice', 1, 2, true, false, {'a', 'b', 'c'}) - eq({'a', 'a', 'b', 'c', 'c'}, curbuf_depr('get_line_slice', 0, -1, true, true)) - curbuf_depr('set_line_slice', -1, -1, true, true, {'a', 'b', 'c'}) - eq({'a', 'a', 'b', 'c', 'a', 'b', 'c'}, - curbuf_depr('get_line_slice', 0, -1, true, true)) + eq({ 'a', 'b' }, curbuf_depr('get_line_slice', 0, -1, true, false)) + eq({ 'b' }, curbuf_depr('get_line_slice', 1, -1, true, false)) + eq({ 'b', 'c' }, curbuf_depr('get_line_slice', -2, -1, true, true)) + curbuf_depr('set_line_slice', 1, 2, true, false, { 'a', 'b', 'c' }) + eq({ 'a', 'a', 'b', 'c', 'c' }, curbuf_depr('get_line_slice', 0, -1, true, true)) + curbuf_depr('set_line_slice', -1, -1, true, true, { 'a', 'b', 'c' }) + eq({ 'a', 'a', 'b', 'c', 'a', 'b', 'c' }, curbuf_depr('get_line_slice', 0, -1, true, true)) curbuf_depr('set_line_slice', 0, -3, true, false, {}) - eq({'a', 'b', 'c'}, curbuf_depr('get_line_slice', 0, -1, true, true)) + eq({ 'a', 'b', 'c' }, curbuf_depr('get_line_slice', 0, -1, true, true)) curbuf_depr('set_line_slice', 0, -1, true, true, {}) - eq({''}, curbuf_depr('get_line_slice', 0, -1, true, true)) + eq({ '' }, curbuf_depr('get_line_slice', 0, -1, true, true)) end) end) @@ -483,21 +510,25 @@ describe('api/buf', function() it('fails correctly when input is not valid', function() eq(1, api.curbufmeths.get_number()) - eq([['replacement string' item contains newlines]], - pcall_err(bufmeths.set_lines, 1, 1, 2, false, {'b\na'})) + eq( + [['replacement string' item contains newlines]], + pcall_err(bufmeths.set_lines, 1, 1, 2, false, { 'b\na' }) + ) end) it("fails if 'nomodifiable'", function() command('set nomodifiable') - eq([[Buffer is not 'modifiable']], - pcall_err(api.bufmeths.set_lines, 1, 1, 2, false, {'a','b'})) + eq( + [[Buffer is not 'modifiable']], + pcall_err(api.bufmeths.set_lines, 1, 1, 2, false, { 'a', 'b' }) + ) end) it('has correct line_count when inserting and deleting', function() eq(1, line_count()) - set_lines(-1, -1, true, {'line'}) + set_lines(-1, -1, true, { 'line' }) eq(2, line_count()) - set_lines(-1, -1, true, {'line'}) + set_lines(-1, -1, true, { 'line' }) eq(3, line_count()) set_lines(-2, -1, true, {}) eq(2, line_count()) @@ -508,81 +539,80 @@ describe('api/buf', function() end) it('can get, set and delete a single line', function() - eq({''}, get_lines(0, 1, true)) - set_lines(0, 1, true, {'line1'}) - eq({'line1'}, get_lines(0, 1, true)) - set_lines(0, 1, true, {'line2'}) - eq({'line2'}, get_lines(0, 1, true)) + eq({ '' }, get_lines(0, 1, true)) + set_lines(0, 1, true, { 'line1' }) + eq({ 'line1' }, get_lines(0, 1, true)) + set_lines(0, 1, true, { 'line2' }) + eq({ 'line2' }, get_lines(0, 1, true)) set_lines(0, 1, true, {}) - eq({''}, get_lines(0, 1, true)) + eq({ '' }, get_lines(0, 1, true)) end) it('can get a single line with strict indexing', function() - set_lines(0, 1, true, {'line1.a'}) + set_lines(0, 1, true, { 'line1.a' }) eq(1, line_count()) -- sanity eq('Index out of bounds', pcall_err(get_lines, 1, 2, true)) eq('Index out of bounds', pcall_err(get_lines, -3, -2, true)) end) it('can get a single line with non-strict indexing', function() - set_lines(0, 1, true, {'line1.a'}) + set_lines(0, 1, true, { 'line1.a' }) eq(1, line_count()) -- sanity eq({}, get_lines(1, 2, false)) eq({}, get_lines(-3, -2, false)) end) it('can set and delete a single line with strict indexing', function() - set_lines(0, 1, true, {'line1.a'}) - eq('Index out of bounds', pcall_err(set_lines, 1, 2, true, {'line1.b'})) - eq('Index out of bounds', pcall_err(set_lines, -3, -2, true, {'line1.c'})) - eq({'line1.a'}, get_lines(0, -1, true)) + set_lines(0, 1, true, { 'line1.a' }) + eq('Index out of bounds', pcall_err(set_lines, 1, 2, true, { 'line1.b' })) + eq('Index out of bounds', pcall_err(set_lines, -3, -2, true, { 'line1.c' })) + eq({ 'line1.a' }, get_lines(0, -1, true)) eq('Index out of bounds', pcall_err(set_lines, 1, 2, true, {})) eq('Index out of bounds', pcall_err(set_lines, -3, -2, true, {})) - eq({'line1.a'}, get_lines(0, -1, true)) + eq({ 'line1.a' }, get_lines(0, -1, true)) end) it('can set and delete a single line with non-strict indexing', function() - set_lines(0, 1, true, {'line1.a'}) - set_lines(1, 2, false, {'line1.b'}) - set_lines(-4, -3, false, {'line1.c'}) - eq({'line1.c', 'line1.a', 'line1.b'}, get_lines(0, -1, true)) + set_lines(0, 1, true, { 'line1.a' }) + set_lines(1, 2, false, { 'line1.b' }) + set_lines(-4, -3, false, { 'line1.c' }) + eq({ 'line1.c', 'line1.a', 'line1.b' }, get_lines(0, -1, true)) set_lines(3, 4, false, {}) set_lines(-5, -4, false, {}) - eq({'line1.c', 'line1.a', 'line1.b'}, get_lines(0, -1, true)) + eq({ 'line1.c', 'line1.a', 'line1.b' }, get_lines(0, -1, true)) end) it('can handle NULs', function() - set_lines(0, 1, true, {'ab\0cd'}) - eq({'ab\0cd'}, get_lines(0, -1, true)) + set_lines(0, 1, true, { 'ab\0cd' }) + eq({ 'ab\0cd' }, get_lines(0, -1, true)) end) it('works with multiple lines', function() - eq({''}, get_lines(0, -1, true)) + eq({ '' }, get_lines(0, -1, true)) -- Replace buffer - for _, mode in pairs({false, true}) do - set_lines(0, -1, mode, {'a', 'b', 'c'}) - eq({'a', 'b', 'c'}, get_lines(0, -1, mode)) - eq({'b', 'c'}, get_lines(1, -1, mode)) - eq({'b'}, get_lines(1, 2, mode)) + for _, mode in pairs({ false, true }) do + set_lines(0, -1, mode, { 'a', 'b', 'c' }) + eq({ 'a', 'b', 'c' }, get_lines(0, -1, mode)) + eq({ 'b', 'c' }, get_lines(1, -1, mode)) + eq({ 'b' }, get_lines(1, 2, mode)) eq({}, get_lines(1, 1, mode)) - eq({'a', 'b'}, get_lines(0, -2, mode)) - eq({'b'}, get_lines(1, -2, mode)) - eq({'b', 'c'}, get_lines(-3, -1, mode)) - set_lines(1, 2, mode, {'a', 'b', 'c'}) - eq({'a', 'a', 'b', 'c', 'c'}, get_lines(0, -1, mode)) - set_lines(-2, -1, mode, {'a', 'b', 'c'}) - eq({'a', 'a', 'b', 'c', 'a', 'b', 'c'}, - get_lines(0, -1, mode)) + eq({ 'a', 'b' }, get_lines(0, -2, mode)) + eq({ 'b' }, get_lines(1, -2, mode)) + eq({ 'b', 'c' }, get_lines(-3, -1, mode)) + set_lines(1, 2, mode, { 'a', 'b', 'c' }) + eq({ 'a', 'a', 'b', 'c', 'c' }, get_lines(0, -1, mode)) + set_lines(-2, -1, mode, { 'a', 'b', 'c' }) + eq({ 'a', 'a', 'b', 'c', 'a', 'b', 'c' }, get_lines(0, -1, mode)) set_lines(0, -4, mode, {}) - eq({'a', 'b', 'c'}, get_lines(0, -1, mode)) + eq({ 'a', 'b', 'c' }, get_lines(0, -1, mode)) set_lines(0, -1, mode, {}) - eq({''}, get_lines(0, -1, mode)) + eq({ '' }, get_lines(0, -1, mode)) end end) it('can get line ranges with non-strict indexing', function() - set_lines(0, -1, true, {'a', 'b', 'c'}) - eq({'a', 'b', 'c'}, get_lines(0, -1, true)) --sanity + set_lines(0, -1, true, { 'a', 'b', 'c' }) + eq({ 'a', 'b', 'c' }, get_lines(0, -1, true)) --sanity eq({}, get_lines(3, 4, false)) eq({}, get_lines(3, 10, false)) @@ -592,8 +622,8 @@ describe('api/buf', function() end) it('can get line ranges with strict indexing', function() - set_lines(0, -1, true, {'a', 'b', 'c'}) - eq({'a', 'b', 'c'}, get_lines(0, -1, true)) --sanity + set_lines(0, -1, true, { 'a', 'b', 'c' }) + eq({ 'a', 'b', 'c' }, get_lines(0, -1, true)) --sanity eq('Index out of bounds', pcall_err(get_lines, 3, 4, true)) eq('Index out of bounds', pcall_err(get_lines, 3, 10, true)) @@ -604,20 +634,20 @@ describe('api/buf', function() end) it('set_lines: out-of-bounds can extend past end', function() - set_lines(0, -1, true, {'a', 'b', 'c'}) - eq({'a', 'b', 'c'}, get_lines(0, -1, true)) --sanity + set_lines(0, -1, true, { 'a', 'b', 'c' }) + eq({ 'a', 'b', 'c' }, get_lines(0, -1, true)) --sanity - eq({'c'}, get_lines(-2, 5, false)) - eq({'a', 'b', 'c'}, get_lines(0, 6, false)) - eq('Index out of bounds', pcall_err(set_lines, 4, 6, true, {'d'})) - set_lines(4, 6, false, {'d'}) - eq({'a', 'b', 'c', 'd'}, get_lines(0, -1, true)) - eq('Index out of bounds', pcall_err(set_lines, -6, -6, true, {'e'})) - set_lines(-6, -6, false, {'e'}) - eq({'e', 'a', 'b', 'c', 'd'}, get_lines(0, -1, true)) + eq({ 'c' }, get_lines(-2, 5, false)) + eq({ 'a', 'b', 'c' }, get_lines(0, 6, false)) + eq('Index out of bounds', pcall_err(set_lines, 4, 6, true, { 'd' })) + set_lines(4, 6, false, { 'd' }) + eq({ 'a', 'b', 'c', 'd' }, get_lines(0, -1, true)) + eq('Index out of bounds', pcall_err(set_lines, -6, -6, true, { 'e' })) + set_lines(-6, -6, false, { 'e' }) + eq({ 'e', 'a', 'b', 'c', 'd' }, get_lines(0, -1, true)) end) - it("set_lines on alternate buffer does not access invalid line (E315)", function() + it('set_lines on alternate buffer does not access invalid line (E315)', function() feed_command('set hidden') insert('Initial file') command('enew') @@ -637,8 +667,8 @@ describe('api/buf', function() it("set_lines of invisible buffer doesn't move cursor in current window", function() local screen = Screen.new(20, 5) screen:set_default_attr_ids({ - [1] = {bold = true, foreground = Screen.colors.Blue1}, - [2] = {bold = true}, + [1] = { bold = true, foreground = Screen.colors.Blue1 }, + [2] = { bold = true }, }) screen:attach() @@ -646,7 +676,7 @@ describe('api/buf', function() Who would win? A real window with proper text]]) - local buf = api.meths.create_buf(false,true) + local buf = api.meths.create_buf(false, true) screen:expect([[ Who would win? | A real window | @@ -655,7 +685,7 @@ describe('api/buf', function() | ]]) - api.meths.buf_set_lines(buf, 0, -1, true, {'or some', 'scratchy text'}) + api.meths.buf_set_lines(buf, 0, -1, true, { 'or some', 'scratchy text' }) feed('i') -- provoke redraw screen:expect([[ Who would win? | @@ -671,32 +701,31 @@ describe('api/buf', function() visible buffer line 1 line 2 ]]) - local hiddenbuf = api.meths.create_buf(false,true) + local hiddenbuf = api.meths.create_buf(false, true) command('vsplit') command('vsplit') feed('<c-w>l<c-w>l<c-w>l') eq(3, funcs.winnr()) feed('<c-w>h') eq(2, funcs.winnr()) - api.meths.buf_set_lines(hiddenbuf, 0, -1, true, - {'hidden buffer line 1', 'line 2'}) + api.meths.buf_set_lines(hiddenbuf, 0, -1, true, { 'hidden buffer line 1', 'line 2' }) feed('<c-w>p') eq(3, funcs.winnr()) end) it('set_lines on unloaded buffer #8659 #22670', function() local bufnr = curbuf('get_number') - meths.buf_set_lines(bufnr, 0, -1, false, {'a', 'b', 'c'}) + meths.buf_set_lines(bufnr, 0, -1, false, { 'a', 'b', 'c' }) meths.buf_set_name(bufnr, 'set_lines') finally(function() os.remove('set_lines') end) command('write!') command('new') - command('bunload! '..bufnr) + command('bunload! ' .. bufnr) local new_bufnr = funcs.bufnr('set_lines', true) meths.buf_set_lines(new_bufnr, 0, -1, false, {}) - eq({''}, meths.buf_get_lines(new_bufnr, 0, -1, false)) + eq({ '' }, meths.buf_get_lines(new_bufnr, 0, -1, false)) end) end) @@ -709,70 +738,69 @@ describe('api/buf', function() text ]]) - eq({'hello foo!'}, get_lines(0, 1, true)) - + eq({ 'hello foo!' }, get_lines(0, 1, true)) -- can replace a single word - set_text(0, 6, 0, 9, {'world'}) - eq({'hello world!', 'text'}, get_lines(0, 2, true)) + set_text(0, 6, 0, 9, { 'world' }) + eq({ 'hello world!', 'text' }, get_lines(0, 2, true)) -- can insert text - set_text(0, 0, 0, 0, {'well '}) - eq({'well hello world!', 'text'}, get_lines(0, 2, true)) + set_text(0, 0, 0, 0, { 'well ' }) + eq({ 'well hello world!', 'text' }, get_lines(0, 2, true)) -- can delete text - set_text(0, 0, 0, 5, {''}) - eq({'hello world!', 'text'}, get_lines(0, 2, true)) + set_text(0, 0, 0, 5, { '' }) + eq({ 'hello world!', 'text' }, get_lines(0, 2, true)) -- can replace with multiple lines - set_text(0, 6, 0, 11, {'foo', 'wo', 'more'}) - eq({'hello foo', 'wo', 'more!', 'text'}, get_lines(0, 4, true)) + set_text(0, 6, 0, 11, { 'foo', 'wo', 'more' }) + eq({ 'hello foo', 'wo', 'more!', 'text' }, get_lines(0, 4, true)) -- will join multiple lines if needed - set_text(0, 6, 3, 4, {'bar'}) - eq({'hello bar'}, get_lines(0, 1, true)) + set_text(0, 6, 3, 4, { 'bar' }) + eq({ 'hello bar' }, get_lines(0, 1, true)) -- can use negative line numbers - set_text(-2, 0, -2, 5, {'goodbye'}) - eq({'goodbye bar', ''}, get_lines(0, -1, true)) + set_text(-2, 0, -2, 5, { 'goodbye' }) + eq({ 'goodbye bar', '' }, get_lines(0, -1, true)) - set_text(-1, 0, -1, 0, {'text'}) - eq({'goodbye bar', 'text'}, get_lines(0, 2, true)) + set_text(-1, 0, -1, 0, { 'text' }) + eq({ 'goodbye bar', 'text' }, get_lines(0, 2, true)) -- can append to a line - set_text(1, 4, -1, 4, {' and', 'more'}) - eq({'goodbye bar', 'text and', 'more'}, get_lines(0, 3, true)) + set_text(1, 4, -1, 4, { ' and', 'more' }) + eq({ 'goodbye bar', 'text and', 'more' }, get_lines(0, 3, true)) -- can use negative column numbers - set_text(0, -5, 0, -1, {'!'}) - eq({'goodbye!'}, get_lines(0, 1, true)) + set_text(0, -5, 0, -1, { '!' }) + eq({ 'goodbye!' }, get_lines(0, 1, true)) end) it('works with undo', function() - insert([[ + insert([[ hello world! foo bar ]]) - -- setting text - set_text(0, 0, 0, 0, {'well '}) - feed('u') - eq({'hello world!'}, get_lines(0, 1, true)) + -- setting text + set_text(0, 0, 0, 0, { 'well ' }) + feed('u') + eq({ 'hello world!' }, get_lines(0, 1, true)) - -- deleting text - set_text(0, 0, 0, 6, {''}) - feed('u') - eq({'hello world!'}, get_lines(0, 1, true)) + -- deleting text + set_text(0, 0, 0, 6, { '' }) + feed('u') + eq({ 'hello world!' }, get_lines(0, 1, true)) - -- inserting newlines - set_text(0, 0, 0 |