| Test for Lua interface and luaeval() function |
| |
| STARTTEST |
| :so small.vim |
| :so lua.vim |
| :set nocompatible viminfo+=nviminfo |
| :lua l = vim.list():add"item0":add"dictionary with list OK":add"item2" |
| :lua h = vim.dict(); h.list = l |
| :call garbagecollect() |
| /^1 |
| :" change buffer contents |
| :lua curbuf = vim.buffer() |
| :lua curline = vim.eval"line('.')" |
| :lua curbuf[curline] = "1 changed line 1" |
| :" scalar test |
| :let tmp_string = luaeval('"string"') |
| :let tmp_1000 = luaeval('1000') |
| :if printf("%s%.0f", tmp_string, tmp_1000) == "string1000" |
| :let scalar_res = "OK" |
| :else |
| :let scalar_res = "FAILED" |
| :endif |
| :call append(search("^1"), "scalar test " . scalar_res) |
| :" dictionary containing a list |
| :let tmp = luaeval("h").list[1] |
| :/^2/put =tmp |
| :" circular list (at the same time test lists containing lists) |
| :lua l[2] = l |
| :let l2 = luaeval("h").list |
| :if l2[2] == l2 |
| :let res = "OK" |
| :else |
| :let res = "FAILED" |
| :endif |
| :call setline(search("^3"), "circular test " . res) |
| :?^1?,$w! test.out |
| :qa! |
| ENDTEST |
| |
| 1 line 1 |
| 2 line 2 |
| 3 line 3 |