1-- File containing table with all functions.
2--
3-- Keys:
4--
5-- args  Number of arguments, list with maximum and minimum number of arguments
6--       or list with a minimum number of arguments only. Defaults to zero
7--       arguments.
8-- base  For methods: the argument to use as the base argument (1-indexed):
9--       base->method()
10--       Defaults to BASE_NONE (function cannot be used as a method).
11-- func  Name of the C function which implements the VimL function. Defaults to
12--       `f_{funcname}`.
13
14local varargs = function(nr)
15  return {nr}
16end
17
18-- Usable with the base key: use the last function argument as the method base.
19-- Value is from funcs.h file. "BASE_" prefix is omitted.
20local LAST = "BASE_LAST"
21
22return {
23  funcs={
24    abs={args=1, base=1},
25    acos={args=1, base=1, func="float_op_wrapper", data="&acos"},  -- WJMc
26    add={args=2, base=1},
27    ['and']={args=2, base=1},
28    api_info={},
29    append={args=2, base=LAST},
30    appendbufline={args=3, base=LAST},
31    argc={args={0, 1}},
32    argidx={},
33    arglistid={args={0, 2}},
34    argv={args={0, 2}},
35    asin={args=1, base=1, func="float_op_wrapper", data="&asin"},  -- WJMc
36    assert_beeps={args={1}, base=1},
37    assert_equal={args={2, 3}, base=2},
38    assert_equalfile={args={2, 3}, base=1},
39    assert_exception={args={1, 2}},
40    assert_fails={args={1, 3}, base=1},
41    assert_false={args={1, 2}, base=1},
42    assert_inrange={args={3, 4}, base=3},
43    assert_match={args={2, 3}, base=2},
44    assert_nobeep={args={1}},
45    assert_notequal={args={2, 3}, base=2},
46    assert_notmatch={args={2, 3}, base=2},
47    assert_report={args=1, base=1},
48    assert_true={args={1, 2}, base=1},
49    atan={args=1, base=1, func="float_op_wrapper", data="&atan"},
50    atan2={args=2, base=1},
51    browse={args=4},
52    browsedir={args=2},
53    bufadd={args=1, base=1},
54    bufexists={args=1, base=1},
55    buffer_exists={args=1, base=1, func='f_bufexists'},  -- obsolete
56    buffer_name={args={0, 1}, func='f_bufname'},  -- obsolete
57    buffer_number={args={0, 1}, func='f_bufnr'},  -- obsolete
58    buflisted={args=1, base=1},
59    bufload={args=1, base=1},
60    bufloaded={args=1, base=1},
61    bufname={args={0, 1}, base=1},
62    bufnr={args={0, 2}, base=1},
63    bufwinid={args=1, base=1},
64    bufwinnr={args=1, base=1},
65    byte2line={args=1, base=1},
66    byteidx={args=2, base=1},
67    byteidxcomp={args=2, base=1},
68    call={args={2, 3}, base=1},
69    ceil={args=1, base=1, func="float_op_wrapper", data="&ceil"},
70    changenr={},
71    chanclose={args={1, 2}},
72    chansend={args=2},
73    char2nr={args={1, 2}, base=1},
74    charidx={args={2, 3}},
75    chdir={args=1, base=1},
76    cindent={args=1, base=1},
77    clearmatches={args={0, 1}, base=1},
78    col={args=1, base=1},
79    complete={args=2, base=2},
80    complete_add={args=1, base=1},
81    complete_check={},
82    complete_info={args={0, 1}, base=1},
83    confirm={args={1, 4}, base=1},
84    copy={args=1, base=1},
85    cos={args=1, base=1, func="float_op_wrapper", data="&cos"},
86    cosh={args=1, base=1, func="float_op_wrapper", data="&cosh"},
87    count={args={2, 4}, base=1},
88    cscope_connection={args={0, 3}},
89    ctxget={args={0, 1}},
90    ctxpop={},
91    ctxpush={args={0, 1}},
92    ctxset={args={1, 2}},
93    ctxsize={},
94    cursor={args={1, 3}, base=1},
95    debugbreak={args={1, 1}, base=1},
96    deepcopy={args={1, 2}, base=1},
97    delete={args={1,2}, base=1},
98    deletebufline={args={2,3}, base=1},
99    dictwatcheradd={args=3},
100    dictwatcherdel={args=3},
101    did_filetype={},
102    diff_filler={args=1, base=1},
103    diff_hlID={args=2, base=1},
104    empty={args=1, base=1},
105    environ={},
106    escape={args=2, base=1},
107    eval={args=1, base=1},
108    eventhandler={},
109    executable={args=1, base=1},
110    execute={args={1, 2}, base=1},
111    exepath={args=1, base=1},
112    exists={args=1, base=1},
113    exp={args=1, base=1, func="float_op_wrapper", data="&exp"},
114    expand={args={1, 3}, base=1},
115    expandcmd={args=1, base=1},
116    extend={args={2, 3}, base=1},
117    feedkeys={args={1, 2}, base=1},
118    file_readable={args=1, base=1, func='f_filereadable'},  -- obsolete
119    filereadable={args=1, base=1},
120    filewritable={args=1, base=1},
121    filter={args=2, base=1},
122    finddir={args={1, 3}, base=1},
123    findfile={args={1, 3}, base=1},
124    flatten={args={1, 2}},
125    float2nr={args=1, base=1},
126    floor={args=1, base=1, func="float_op_wrapper", data="&floor"},
127    fmod={args=2, base=1},
128    fnameescape={args=1, base=1},
129    fnamemodify={args=2, base=1},
130    foldclosed={args=1, base=1},
131    foldclosedend={args=1, base=1},
132    foldlevel={args=1, base=1},
133    foldtext={},
134    foldtextresult={args=1, base=1},
135    foreground={},
136    funcref={args={1, 3}, base=1},
137    ['function']={args={1, 3}, base=1},
138    garbagecollect={args={0, 1}},
139    get={args={2, 3}, base=1},
140    getbufinfo={args={0, 1}},
141    getbufline={args={2, 3}, base=1},
142    getbufvar={args={2, 3}, base=1},
143    getchangelist={args={0, 1}, base=1},
144    getchar={args={0, 1}},
145    getcharmod={},
146    getcharsearch={},
147    getcharstr={args={0, 1}},
148    getcmdline={},
149    getcmdpos={},
150    getcmdtype={},
151    getcmdwintype={},
152    getcompletion={args={2, 3}, base=1},
153    getcurpos={},
154    getcwd={args={0, 2}, base=1},
155    getenv={args={1}, base=1},
156    getfontname={args={0, 1}},
157    getfperm={args=1, base=1},
158    getfsize={args=1, base=1},
159    getftime={args=1, base=1},
160    getftype={args=1, base=1},
161    getjumplist={args={0, 2}, base=1},
162    getline={args={1, 2}, base=1},
163    getloclist={args={1, 2}},
164    getmarklist={args={0, 1}},
165    getmatches={args={0, 1}},
166    getmousepos={},
167    getpid={},
168    getpos={args=1, base=1},
169    getqflist={args={0, 1}},
170    getreg={args={0, 3}, base=1},
171    getreginfo={args={0, 1}, base=1},
172    getregtype={args={0, 1}, base=1},
173    gettabinfo={args={0, 1}, base=1},
174    gettabvar={args={2, 3}, base=1},
175    gettabwinvar={args={3, 4}, base=1},
176    gettagstack={args={0, 1}, base=1},
177    getwininfo={args={0, 1}, base=1},
178    getwinpos={args={0, 1}, base=1},
179    getwinposx={},
180    getwinposy={},
181    getwinvar={args={2, 3}, base=1},
182    glob={args={1, 4}, base=1},
183    glob2regpat={args=1, base=1},
184    globpath={args={2, 5}, base=2},
185    has={args=1},
186    has_key={args=2, base=1},
187    haslocaldir={args={0, 2}, base=1},
188    hasmapto={args={1, 3}, base=1},
189    highlightID={args=1, base=1, func='f_hlID'},  -- obsolete
190    highlight_exists={args=1, base=1, func='f_hlexists'},  -- obsolete
191    histadd={args=2, base=2},
192    histdel={args={1, 2}, base=1},
193    histget={args={1, 2}, base=1},
194    histnr={args=1, base=1},
195    hlID={args=1, base=1},
196    hlexists={args=1, base=1},
197    hostname={},
198    iconv={args=3, base=1},
199    indent={args=1, base=1},
200    index={args={2, 4}, base=1},
201    input={args={1, 3}, base=1},
202    inputdialog={args={1, 3}, base=1},
203    inputlist={args=1, base=1},
204    inputrestore={},
205    inputsave={},
206    inputsecret={args={1, 2}, base=1},
207    insert={args={2, 3}, base=1},
208    interrupt={args=0},
209    invert={args=1, base=1},
210    isdirectory={args=1, base=1},
211    isinf={args=1, base=1},
212    islocked={args=1, base=1},
213    isnan={args=1, base=1},
214    id={args=1},
215    items={args=1, base=1},
216    jobclose={args={1, 2}, func="f_chanclose"},
217    jobpid={args=1},
218    jobresize={args=3},
219    jobsend={args=2, func="f_chansend"},
220    jobstart={args={1, 2}},
221    jobstop={args=1},
222    jobwait={args={1, 2}},
223    join={args={1, 2}, base=1},
224    json_decode={args=1, base=1},
225    json_encode={args=1, base=1},
226    keys={args=1, base=1},
227    last_buffer_nr={},  -- obsolete
228    len={args=1, base=1},
229    libcall={args=3, base=3},
230    libcallnr={args=3, base=3},
231    line={args={1, 2}, base=1},
232    line2byte={args=1, base=1},
233    lispindent={args=1, base=1},
234    list2str={args={1, 2}, base=1},
235    localtime={},
236    log={args=1, base=1, func="float_op_wrapper", data="&log"},
237    log10={args=1, base=1, func="float_op_wrapper", data="&log10"},
238    luaeval={args={1, 2}, base=1},
239    map={args=2, base=1},
240    maparg={args={1, 4}, base=1},
241    mapcheck={args={1, 3}, base=1},
242    match={args={2, 4}, base=1},
243    matchadd={args={2, 5}, base=1},
244    matchaddpos={args={2, 5}, base=1},
245    matcharg={args=1, base=1},
246    matchdelete={args={1, 2}, base=1},
247    matchend={args={2, 4}, base=1},
248    matchlist={args={2, 4}, base=1},
249    matchstr={args={2, 4}, base=1},
250    matchstrpos={args={2,4}, base=1},
251    max={args=1, base=1},
252    menu_get={args={1, 2}},
253    min={args=1, base=1},
254    mkdir={args={1, 3}, base=1},
255    mode={args={0, 1}, base=1},
256    msgpackdump={args={1, 2}},
257    msgpackparse={args=1},
258    nextnonblank={args=1, base=1},
259    nr2char={args={1, 2}, base=1},
260    ['or']={args=2, base=1},
261    pathshorten={args=1, base=1},
262    pow={args=2, base=1},
263    prevnonblank={args=1, base=1},
264    printf={args=varargs(1), base=2},
265    prompt_getprompt={args=1},
266    prompt_setcallback={args={2, 2}, base=1},
267    prompt_setinterrupt={args={2, 2}, base=1},
268    prompt_setprompt={args={2, 2}, base=1},
269    pum_getpos={},
270    pumvisible={},
271    py3eval={args=1, base=1},
272    pyeval={args=1, base=1},
273    pyxeval={args=1, base=1},
274    perleval={args=1, base=1},
275    range={args={1, 3}, base=1},
276    readdir={args={1, 2}, base=1},
277    readfile={args={1, 3}, base=1},
278    reg_executing={},
279    reg_recording={},
280    reltime={args={0, 2}, base=1},
281    reltimefloat={args=1, base=1},
282    reltimestr={args=1, base=1},
283    remove={args={2, 3}, base=1},
284    rename={args=2, base=1},
285    ['repeat']={args=2, base=1},
286    resolve={args=1, base=1},
287    reverse={args=1, base=1},
288    round={args=1, base=1, func="float_op_wrapper", data="&round"},
289    rpcnotify={args=varargs(2)},
290    rpcrequest={args=varargs(2)},
291    rpcstart={args={1, 2}},
292    rpcstop={args=1},
293    rubyeval={args=1, base=1},
294    screenattr={args=2},
295    screenchar={args=2},
296    screenchars={args=2},
297    screencol={},
298    screenpos={args=3},
299    screenrow={},
300    screenstring={args=2},
301    search={args={1, 4}},
302    searchcount={args={0,1}},
303    searchdecl={args={1, 3}},
304    searchpair={args={3, 7}},
305    searchpairpos={args={3, 7}},
306    searchpos={args={1, 4}},
307    serverlist={},
308    serverstart={args={0, 1}},
309    serverstop={args=1},
310    setbufline={args=3},
311    setbufvar={args=3},
312    setcharsearch={args=1},
313    setcmdpos={args=1},
314    setenv={args=2},
315    setfperm={args=2, base=1},
316    setline={args=2},
317    setloclist={args={2, 4}},
318    setmatches={args={1, 2}},
319    setpos={args=2},
320    setqflist={args={1, 3}},
321    setreg={args={2, 3}},
322    settabvar={args=3},
323    settabwinvar={args=4},
324    settagstack={args={2, 3}},
325    setwinvar={args=3},
326    sha256={args=1},
327    shellescape={args={1, 2}},
328    shiftwidth={args={0, 1}},
329    sign_define={args={1, 2}},
330    sign_getdefined={args={0, 1}},
331    sign_getplaced={args={0, 2}},
332    sign_jump={args={3, 3}},
333    sign_place={args={4, 5}},
334    sign_placelist={args={1}},
335    sign_undefine={args={0, 1}},
336    sign_unplace={args={1, 2}},
337    sign_unplacelist={args={1}},
338    simplify={args=1},
339    sin={args=1, base=1, func="float_op_wrapper", data="&sin"},
340    sinh={args=1, base=1, func="float_op_wrapper", data="&sinh"},
341    sockconnect={args={2,3}},
342    sort={args={1, 3}, base=1},
343    soundfold={args=1},
344    stdioopen={args=1},
345    spellbadword={args={0, 1}},
346    spellsuggest={args={1, 3}},
347    split={args={1, 3}, base=1},
348    sqrt={args=1, base=1, func="float_op_wrapper", data="&sqrt"},
349    stdpath={args=1},
350    str2float={args=1, base=1},
351    str2list={args={1, 2}, base=1},
352    str2nr={args={1, 3}},
353    strcharpart={args={2, 3}},
354    strchars={args={1,2}},
355    strdisplaywidth={args={1, 2}},
356    strftime={args={1, 2}},
357    strgetchar={args={2, 2}},
358    stridx={args={2, 3}},
359    string={args=1, base=1},
360    strlen={args=1, base=1},
361    strpart={args={2, 4}},
362    strptime={args=2},
363    strridx={args={2, 3}},
364    strtrans={args=1, base=1},
365    strwidth={args=1, base=1},
366    submatch={args={1, 2}},
367    substitute={args=4, base=1},
368    swapinfo={args={1}},
369    swapname={args={1}},
370    synID={args=3},
371    synIDattr={args={2, 3}, base=1},
372    synIDtrans={args=1, base=1},
373    synconcealed={args=2},
374    synstack={args=2},
375    system={args={1, 2}, base=1},
376    systemlist={args={1, 3}, base=1},
377    tabpagebuflist={args={0, 1}},
378    tabpagenr={args={0, 1}},
379    tabpagewinnr={args={1, 2}},
380    tagfiles={},
381    taglist={args={1, 2}},
382    tan={args=1, base=1, func="float_op_wrapper", data="&tan"},
383    tanh={args=1, base=1, func="float_op_wrapper", data="&tanh"},
384    tempname={},
385    termopen={args={1, 2}},
386    test_garbagecollect_now={},
387    test_write_list_log={args=1},
388    timer_info={args={0,1}},
389    timer_pause={args=2},
390    timer_start={args={2,3}},
391    timer_stop={args=1},
392    timer_stopall={args=0},
393    tolower={args=1},
394    toupper={args=1},
395    tr={args=3},
396    trim={args={1,3}},
397    trunc={args=1, base=1, func="float_op_wrapper", data="&trunc"},
398    type={args=1, base=1},
399    undofile={args=1},
400    undotree={},
401    uniq={args={1, 3}, base=1},
402    values={args=1, base=1},
403    virtcol={args=1},
404    visualmode={args={0, 1}},
405    wait={args={2,3}},
406    wildmenumode={},
407    win_execute={args={2, 3}},
408    win_findbuf={args=1},
409    win_getid={args={0,2}},
410    win_gettype={args={0,1}},
411    win_gotoid={args=1},
412    win_id2tabwin={args=1},
413    win_id2win={args=1},
414    win_screenpos={args=1},
415    win_splitmove={args={2, 3}},
416    winbufnr={args=1, base=1},
417    wincol={},
418    windowsversion={},
419    winheight={args=1},
420    winlayout={args={0, 1}},
421    winline={},
422    winnr={args={0, 1}},
423    winrestcmd={},
424    winrestview={args=1},
425    winsaveview={},
426    winwidth={args=1},
427    wordcount={},
428    writefile={args={2, 3}},
429    xor={args=2, base=1},
430  },
431}
432