aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.lua
Commit message (Collapse)AuthorAge
...
* feat: cmdline funcs (#18284)Shougo2022-05-09
| | | | | | | | | | | | | | vim-patch:8.2.4903: cannot get the current cmdline completion type and position Problem: Cannot get the current cmdline completion type and position. Solution: Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita, closes vim/vim#10344) https://github.com/vim/vim/commit/79d599b8772022af1d657f368c2fc97aa342c0da vim-patch:8.2.4910: imperfect coding Problem: Imperfect coding. Solution: Make code nicer. https://github.com/vim/vim/commit/9ff7d717aa3176de5c61de340deb93f41c7780fc
* vim-patch:8.2.3226: new digraph functions use old naming schemezeertzjq2022-04-12
| | | | | | Problem: New digraph functions use old naming scheme. Solution: Use the digraph_ prefix. (Hirohito Higashi, closes vim/vim#8580) https://github.com/vim/vim/commit/29b857150c111a455f1a38a8f748243524f692e1
* vim-patch:8.2.3184: cannot add a digraph with a leading spacezeertzjq2022-04-12
| | | | | | | | | | | | | | | Problem: Cannot add a digraph with a leading space. It is not easy to list existing digraphs. Solution: Add setdigraph(), setdigraphlist(), getdigraph() and getdigraphlist(). (closes vim/vim#8580) https://github.com/vim/vim/commit/6106504e9edc8500131f7a36e59bc146f90180fa Use GA_APPEND_VIA_PTR in registerdigraph(). Use tv_list_append_*() in getdigraphlist_appendpair(). Put the error messages in digraph.c. E196 is N/A. Remove mentions about 'encoding' being non-Unicode. Nvim doesn't support setting encoding=japan, so skip a test.
* vim-patch:8.2.0915: search() cannot skip over matches like searchpair() canSean Dewar2022-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Search() cannot skip over matches like searchpair() can. Solution: Add an optional "skip" argument. (Christian Brabandt, closes vim/vim#861) https://github.com/vim/vim/commit/adc17a5f9d207fd1623fd923457a46efc9214777 Enable skip arg usage in autoload/freebasic.vim evalarg_T doesn't really matter because it's deleted in v8.2.0918 (and reincarnated for Vim9 script in v8.2.1047), but I found out too late :P Anyway: - Port evalarg_T into eval.h and use const char * and Callback fields - Use EVALARG_INIT to initialize - Return bool over OK/FAIL from evalarg functions - Remove check from evalarg_clean as callback_free ignores None callbacks anyway - Move eva_buf field into evalarg_get as a local (not sure what reason it has being in the struct) N/A patches for version.c: vim-patch:8.2.4355: unnecessary call to check_colorcolumn() Problem: Unnecessary call to check_colorcolumn(). Solution: Remove the call. (Sean Dewar, closes vim/vim#9748) https://github.com/vim/vim/commit/0f7ff851cb721bb3c07261adbf82b591229f530d
* Merge pull request #16553 from seandewar/vim-8.2.0878Sean Dewar2022-02-08
|\ | | | | vim-patch:8.2.{0882,1051,1083}: port `reduce()` function
| * feat(eval): partially port v8.2.0878Sean Dewar2022-01-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: No reduce() function. Solution: Add a reduce() function. (closes vim/vim#5481) https://github.com/vim/vim/commit/85629985b71035608a37ba3bde86968481490d46 Needs CHECK_LIST_MATERIALIZE from v8.2.0751 (and range_list_materialize from 8.2.0149). Move e_reduceempty to funcs.c, as it's only used there. Make it static. Use tv_blob_len, tv_list_len == 0 for empty checks. Replace vim_memset(&funcexe, 0, ...) with FUNCEXE_INIT. Leave li initially undefined (tv_list_first returns NULL if list is NULL). This patch has a memory leak fixed by v8.2.0882.
* | vim-patch:8.2.1726: fuzzy matching only works on stringsSean Dewar2022-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Fuzzy matching only works on strings. Solution: Support passing a dict. Add matchfuzzypos() to also get the match positions. (Yegappan Lakshmanan, closes vim/vim#6947) https://github.com/vim/vim/commit/4f73b8e9cc83f647b34002554a8bdf9abec0a82f Also remove some N/A and seemingly useless NULL checks -- Nvim allocs can't return NULL. I'm not sure why the retmatchpos stuff in match_fuzzy checks for NULL too, given that Vim checks for NULL alloc in do_fuzzymatch; assert that the li stuff is not NULL as that's the one check I'm ever-so-slightly unsure about. Adjust tests. Note that the text_cb tests actually throw E6000 in Nvim, but we also can't assert that error due to v8.2.1183 not being ported yet.
* | vim-patch:8.2.1665: cannot do fuzzy string matchingSean Dewar2022-02-07
| | | | | | | | | | | | | | | | | | | | | | Problem: Cannot do fuzzy string matching. Solution: Add matchfuzzy(). (Yegappan Lakshmanan, closes vim/vim#6932) https://github.com/vim/vim/commit/635414dd2f3ae7d4d972d79b806348a6516cb91a Adjust Test_matchfuzzy's 2nd assert to expect the last error thrown, as v8.2.1183 hasn't been ported yet (to be honest, the error message is kinda weird if the 2nd argument is not convertible to string). We can still port this fully as porting v8.2.1183 would require removing this change to pass CI.
* | vim-patch:8.2.1741: pathshorten() only supports using one characterzeertzjq2022-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: pathshorten() only supports using one character. Solution: Add an argument to control the length. (closes vim/vim#7006) https://github.com/vim/vim/commit/6a33ef0deb5c75c003a9f3bd1c57f3ca5e77327e Cherry-pick a line in test from patch 8.2.0634. Use Nvim's config paths in docs. shorten_dir() returning a pointer looks a bit confusing here, as it is actually the same pointer passed to it, and it doesn't really reduce much code, so change it back to void. Assigning rettv->vval.v_string = NULL is not needed if a pointer is within 64 bits. While this is usually the case, I'm not sure if it can be taken for granted.
* | vim-patch:8.2.2324: not easy to get mark en cursor posotion by character countzeertzjq2022-02-06
| | | | | | | | | | | | | | Problem: Not easy to get mark en cursor posotion by character count. Solution: Add functions that use character index. (Yegappan Lakshmanan, closes vim/vim#7648) https://github.com/vim/vim/commit/6f02b00bb0958f70bc15534e115b4c6dadff0e06
* | vim-patch:8.2.1727: a popup created with "cursorline" will ignore "firstline"zeertzjq2022-02-06
| | | | | | | | | | | | | | | | | | | | | | Problem: A popup created with "cursorline" will ignore "firstline". Solution: When both "cursorline" and "firstline" are present put the cursor on "firstline". (closes vim/vim#7000) Add the "winid" argument to getcurpos(). https://github.com/vim/vim/commit/99ca9c4868bb1669706b9e3de9a9218bd11cc459 Skip popup window related code. Cherry-pick all of Test_getcurpos_setpos() from patch 8.2.0610.
* | vim-patch:8.1.2342: random number generator in Vim script is slowSean Dewar2022-02-05
|/ | | | | | | | | | | | | Problem: Random number generator in Vim script is slow. Solution: Add rand() and srand(). (Yasuhiro Matsumoto, closes vim/vim#1277) https://github.com/vim/vim/commit/06b0b4bc27077013e9b4b48fd1d9b33e543ccf99 Add missing method call usage to builtin.txt. vim_time and test_settime is N/A. Add a modeline to test_random.vim. Use typval_T* over listitem_T* vars so we don't need to use TV_LIST_ITEM_TV all over the place... Remove NULL list checks (tv_list_len covers this).
* feat(provider)!: remove support for python2 and python3.[3-5]Björn Linse2022-01-29
| | | | | | These versions of python has reached End-of-life. getting rid of python2 support removes a lot of logic to support two incompatible python versions in the same version.
* vim-patch:8.2.4052: not easy to resize a window from a plugin (#17028)Daniel Steinberg2022-01-29
|
* vim-patch:8.2.2468: not easy to get the full command name from a shortened onezeertzjq2021-12-25
| | | | | | Problem: Not easy to get the full command name from a shortened one. Solution: Add fullcommand(). (Martin Tournoij, closes vim/vim#7777) https://github.com/vim/vim/commit/038e09ee7645731de0296d255aabb17603276443
* feat(autocmd): add Recording autocmdsThomas Vigouroux2021-12-18
| | | | | | | | | | | | | | feat(eval): add reg_recorded() This function is used the get the last recorded register. style(Recording): rename handler to match suggestions fix(RecordingLeave): send autocommand earlier This makes the autocommand fire just before setting reg_recorded to reg_recording, this way we clearly show that we are actually just before actually quitting the recording mode.
* fix(eval/method): add missing method support for existing built-insSean Dewar2021-11-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | These functions were ported with the vim-patch token, but didn't actually port the method call support that was in their patches (method call syntax wasn't ported yet). Add the missing method call support and latest docs for: - assert_nobeep: https://github.com/vim/vim/commit/5b8cabfef7c3707f3e53e13844d90e5a217e1e84 - buffer_name, buffer_number: (obsolete) https://github.com/vim/vim/commit/a8eee21e75324d199acb1663cb5009e03014a13a - charidx: https://github.com/vim/vim/commit/17793ef23aae0bc94539390ccfe5e63b0ad39ff2 - flatten: https://github.com/vim/vim/commit/077a1e670ad69ef4cefc22103ca6635bd269e764 - prompt_getprompt: https://github.com/vim/vim/commit/077cc7aa0e0c431e97795612374fe17fe7c88803 - searchcount: https://github.com/vim/vim/commit/e8f5ec0d30b629d7166f0ad03434065d8bc822df - strptime: https://github.com/vim/vim/commit/10455d43fef041309ce0613fa792c635dd71e3a8 - win_gettype: https://github.com/vim/vim/commit/00f3b4e007af07870168bf044cecc9d544483953 - win_splitmove: https://github.com/vim/vim/commit/d20dcb3d011da6111153109f6e46fbd5c7fe9fb6 Also fix assert_beeps, assert_nobeep and getenv to accept exactly one argument. Previously, they could erroneously accept one or more.
* vim-patch:8.2.1241: cannot use getbufinfo() as a methodSean Dewar2021-11-26
| | | | | | Problem: Cannot use getbufinfo() as a method. Solution: Support using getbufinfo() as a method. (closes vim/vim#6458) https://github.com/vim/vim/commit/6434fc574dfbde11461e70e5a62712370edf38e6
* vim-patch:8.2.1168: wrong method argument for appendbufline()Sean Dewar2021-11-26
| | | | | | | | | | | | | Problem: Wrong method argument for appendbufline(). Solution: Use FEARG_3. https://github.com/vim/vim/commit/92053ce59ecf93838f4d6e3019eef1bc47be4184 Cherry-pick base change for append (and appendbufline) from v8.2.1167. These changes have no visible impact, but helps us sync with Vim. Like Vim, BASE_LAST is now unused after this commit. Keep it anyway in case it sees use in the future. Comment-out LAST definition in eval.lua to appease linter.
* vim-patch:8.2.0871: cannot use getmarklist() as a methodSean Dewar2021-11-26
| | | | | | | | | | Problem: Cannot use getmarklist() as a method. Solution: Make getmarklist() work as a method. Add one to the column number to match getpos(). (Yegappan Lakshmanan, closes vim/vim#6176) https://github.com/vim/vim/commit/f17e7ea67a798d0aa45ce24ea80c9e21d5164326 The rest of this patch was ported in: https://github.com/neovim/neovim/commit/a1ed941a7881122fda2fd48e71e890ed55e4d08e
* vim-patch:8.2.0532: cannot use simplify() as a methodSean Dewar2021-11-26
| | | | | | Problem: Cannot use simplify() as a method. Solution: Add FEARG_1. (closes vim/vim#5996) https://github.com/vim/vim/commit/7035fd9d909c49cf5105a53753c1772c193d05b8
* vim-patch:8.1.2013: more functions can be used as methodsSean Dewar2021-11-26
| | | | | | | | | | | Problem: More functions can be used as methods. Solution: Make various functions usable as a method. https://github.com/vim/vim/commit/f92e58cadb03156879e9bdbf6341bf662d9c87cc Cherry-pick s:normalize_fname for tolower test from v8.1.0894 and v8.1.1417 (even though it is unused for now). Fix header for win_id2tabwin in eval.txt.
* vim-patch:8.1.2011: more functions can be used as methodsSean Dewar2021-11-26
| | | | | | | | | | | | | Problem: More functions can be used as methods. Solution: Make various functions usable as a method. Make the window command test faster. https://github.com/vim/vim/commit/ce90e36f5969e733a0a919f1736453332c33aad6 test_* functions in the patch are N/A as they modify internal state. Include test changes for test_ignore_error and test_feedinput (though they aren't run). Other changed tests were excluded from previous patches, except test_termcodes.vim, which hasn't been ported yet.
* feat(eval/method): partially port v8.1.2004Sean Dewar2021-11-26
| | | | | | | | | | | Problem: More functions can be used as methods. Solution: Make various functions usable as a method. https://github.com/vim/vim/commit/f6ed61e1489e40eada55a4f1782e1ed82bcad7d9 +sound is needed for sound_* functions. Make swapinfo and swapname take exactly one argument. Previously, they could erroneously take one or more.
* feat(eval/method): partially port v8.1.1996Sean Dewar2021-11-26
| | | | | | | | | | | | | | | | Problem: More functions can be used as methods. Solution: Make various functions usable as a method. https://github.com/vim/vim/commit/aad222c9c9a1e4fe6ae5a1fe95bb084619be0e65 Partial port as this does not include eval.txt change for listener_add. Cherry-pick eval.txt changes for: - bufadd from v8.1.1626: https://github.com/vim/vim/commit/5ca1ac373ae62b37152cb6f85916b402eda520a5 - setloclist and setqflist headers from: https://github.com/vim/vim/commit/b0d45e7f5354375edd02afafde3bd37dac1515ff Correct eval.txt typo for settabwinvar method call (matches latest Vim).
* vim-patch:8.1.1995: more functions can be used as methodsSean Dewar2021-11-26
| | | | | | | | | Problem: More functions can be used as methods. Solution: Make sign functions usable as a method. https://github.com/vim/vim/commit/93476fd6343ef40d088e064289cc279659d03953 Make sign_placelist and sign_unplacelist accept exactly one argument. Before, they erroneously accepted one or more arguments.
* feat(eval/method): partially port v8.1.1993Sean Dewar2021-11-26
| | | | | | | | | | | | Problem: More functions can be used as methods. Solution: Make various functions usable as a method. https://github.com/vim/vim/commit/196b4664432f932625cfb6371dc42c24efe6c203 server2client requires +clientserver, which hasn't been ported yet. The eval.txt docs and test_clientserver.vim tests for server2client already exist, so include those changes. test_bufline.vim: Test for setbufline requires v8.1.1189 (which was reverted in #10848).
* vim-patch:8.1.1291: not easy to change directory and restorezeertzjq2021-10-17
| | | | | | | | Problem: Not easy to change directory and restore. Solution: Add the chdir() function. (Yegappan Lakshmanan, closes vim/vim#4358) https://github.com/vim/vim/commit/1063f3d2008f22d02ccfa9dab83a23db52febbdc Also includes some documentation changes from patch 8.1.1218.
* feat(eval/method): partially port v8.1.1987Sean Dewar2021-10-03
| | | | | | | | Cannot be fully ported as the remote_*() functions from +clientserver are not yet ported. Include the test changes anyway. line()'s optional winid argument was already ported. (Wasn't added in this patch; this just adds documentation)
* vim-patch:8.1.1984: more functions can be used as methodsSean Dewar2021-10-03
| | | | | | | | | Problem: More functions can be used as methods. Solution: Make various functions usable as a method. https://github.com/vim/vim/commit/3f4f3d8e7e6fc0494d00cfb75669a554c8e67c8b test_prompt_buffer.vim already had all the changes, except Test_prompt_garbage_collect().
* vim-patch:8.1.1961: more functions can be used as a methodSean Dewar2021-10-03
| | | | | | | | | Problem: More functions can be used as a method. Solution: Allow more functions to be used as a method. Add a test for mapcheck(). https://github.com/vim/vim/commit/a1449836334355b1fb00cd1bf083e7d353f6c4d7 mzeval() (if_mzscheme) is N/A.
* feat(eval/method): partially port v8.1.1954Sean Dewar2021-10-03
| | | | | | | | | | | Does not include listener_*() functions. js_*() functions are N/A. json_encode() and json_decode() didn't include tests; add some anyway (to json_functions_spec.lua). test_lua.vim isn't included yet, so add tests to luaeval_spec.lua.
* feat(eval/method): partially port v8.1.1953Sean Dewar2021-10-03
| | | | | | | | | | | | | | | | | | | Adds method call support for all functions in the patch, but it cannot be fully ported due to missing tests for: - index(): requires Blobs from v8.1.0735. Note that index() was already added as a method in v8.1.1803; this patch only adds a test. - iconv(): requires v8.1.1136 for test_termcodes.vim. Nvim deprecated inputdialog(), so it no longer has an eval.txt entry. Keep the test for hlexists() commented-out, just like previously. (Nvim always defines the Number group, so it always returns 1 instead) Cannot include both changes to test_syn_attr.vim as Nvim doesn't support ":hi term=..."; however, both test the same ->hlID() syntax anyway.
* vim-patch:8.1.1952: more functions can be used as a methodSean Dewar2021-10-03
| | | | | | Problem: More functions can be used as a method. Solution: Allow more functions to be used as a method. https://github.com/vim/vim/commit/5d69fdb7c4b91faf2d92b8d449cc9460f3035fb3
* feat(eval/method): partially port v8.1.1925Sean Dewar2021-10-03
| | | | | | | | | | | | | | | | | Adds method call support for all functions in the patch, but it cannot be fully ported due to missing tests for: - getcwd(): requires chdir() and Test_chdir_func() from v8.1.1291. Note that the method call tests for getreg() and getregtype() were removed in v8.2.1547, which has already been ported, but doesn't seem to have been replaced with a new test... This patch also makes getchangelist()'s argument optional (defaults to the current buffer). eval.txt includes a typo for gettabwinvar(), which is fixed in v8.1.1952.
* feat(eval/method): partially port v8.1.1921Sean Dewar2021-10-03
| | | | | | | | | | | | | | | | | | | | | Adds method call support for all functions in the patch, but it cannot be fully ported due to missing tests for: - filereadable(): requires v8.1.1378 for Test_delete_rf(), but there appears to have been some trouble porting it. (#12784) - confirm(): requires v8.1.0832 for Test_confirm() and v8.1.0815 for feedkeys()'s "L" flag. (I did attempt to port the test using nvim_input() instead, but seems that input handling for confirm() doesn't work in --headless mode?) Note that confirm() was actually added as a method in v8.1.1915. Uncomment use of method call syntax in Test_Executable() previously included instead from v8.2.2259.
* vim-patch:8.1.2304: cannot get the mouse position when getting a mouse clickDaniel Steinberg2021-09-29
| | | | | | Problem: Cannot get the mouse position when getting a mouse click. Solution: Add getmousepos(). https://github.com/vim/vim/commit/db3a205147ce2c335d5c2181c1f789277f8775b0
* vim-patch:8.2.0924: cannot save and restore a register properlySean Dewar2021-09-23
| | | | | | | | | | | Problem: Cannot save and restore a register properly. Solution: Add getreginfo() and make setreg() accept a dictionary. (Andy Massimino, closes vim/vim#3370) https://github.com/vim/vim/commit/bb861e293e0170455184079fa537278754b07911 Cherry-pick eval.txt changes for getreginfo() from: https://github.com/vim/vim/commit/6aa57295cfbe8f21c15f0671e45fd53cf990d404 https://github.com/vim/vim/commit/207f009326c8f878defde0e594d7d9ed9860106e
* vim-patch:8.1.1071: cannot get composing characters from the screenzeertzjq2021-09-19
| | | | | | | Problem: Cannot get composing characters from the screen. Solution: Add screenchars() and screenstring(). (partly by Ozaki Kiichi, closes vim/vim#4059) https://github.com/vim/vim/commit/2912abb3a2fd72074e3901c8ae1d4a77ce764675
* feat(f_msgpackdump): support dumping to BlobSean Dewar2021-09-16
|
* vim-patch:8.1.2035: recognizing octal numbers is confusingSean Dewar2021-09-11
| | | | | | | | | | | | | | Problem: Recognizing octal numbers is confusing. Solution: Introduce scriptversion 4: do not use octal and allow for single quote inside numbers. https://github.com/vim/vim/commit/60a8de28d11595f4df0419ece8afa7d6accc9fbd :scriptversion is N/A. Cherry-pick Test_readfile_binary() from v8.1.0742. Note that this patch was missing vim_str2nr() changes, and so fails the tests; this was fixed in v8.1.2036.
* feat(eval): partially port v8.1.1915Sean Dewar2021-08-12
| | | | Cannot be fully ported as chdir() hasn't been ported yet.
* vim-patch:8.1.1911: more functions can be used as methodsSean Dewar2021-08-12
| | | | | | | | | | | Problem: More functions can be used as methods. Solution: Make a few more functions usable as a method. https://github.com/vim/vim/commit/64b4d73524b9a2304d89b87529cd8d3cef14b856 Note that the old-style version of Test_byteidx() was already translated to a Lua test in 069_multibyte_formatting_spec.lua. Keep both versions, using Test_byteidx() to mainly test the method call syntax for byteidx() and byteidxcomp().
* vim-patch:8.1.1909: more functions can be used as methodsSean Dewar2021-08-12
| | | | | | Problem: More functions can be used as methods. Solution: Make a few more functions usable as a method. https://github.com/vim/vim/commit/e49fbff384e45dd17fed72321c26937edf6de16b
* vim-patch:8.1.1888: more functions can be used as methodsSean Dewar2021-08-12
| | | | | | | | | Problem: More functions can be used as methods. Solution: Make various functions usable as a method. https://github.com/vim/vim/commit/073e4b92e613d22ce7b16e0fbf5c0e40cb5f9b2c test_popup.vim already has the changes from this patch (they're N/A anyway).
* vim-patch:8.1.1879: more functions can be used as methodsSean Dewar2021-08-12
| | | | | | | | | Problem: More functions can be used as methods. Solution: Make float functions usable as a method. https://github.com/vim/vim/commit/93cf85f9ef02931de3f8c8e536a137da0b48b7dc Fix atan2() doc typo (patch referred to it as atan()). Adjust Test_fmod() method test to expect "str2float('nan')".
* vim-patch:8.1.1861: only some assert functions can be used as a methodSean Dewar2021-08-12
| | | | | | | | Problem: Only some assert functions can be used as a method. Solution: Allow using most assert functions as a method. https://github.com/vim/vim/commit/24278d2407dfbc8d93eb36593cdd006ff5d86f94 Port tests to assert_spec.lua.
* vim-patch:8.1.1835: cannot use printf() as a methodSean Dewar2021-08-12
| | | | | | Problem: Cannot use printf() as a method. Solution: Pass the base as the second argument to printf(). https://github.com/vim/vim/commit/fd8ca21b3ff207e44891aef922935d4adcd140cf
* vim-patch:8.1.1809: more functions can be used as a methodSean Dewar2021-08-12
| | | | | | Problem: More functions can be used as a method. Solution: Add has_key(), split(), str2list(), etc. https://github.com/vim/vim/commit/a74e4946de074d2916e3d6004f7fa1810d12dda9
* vim-patch:8.1.1807: more functions can be used as a methodSean Dewar2021-08-12
| | | | | | | | | Problem: More functions can be used as a method. Solution: Add append(), appendbufline(), assert_equal(), etc. Also add the :eval command. https://github.com/vim/vim/commit/25e42231d3ee27feec2568fa4be2aa2bfba82ae5 :eval is already ported.