Mercurial > vim
annotate src/proto/vim9instr.pro @ 32473:c89816c3e2d7 v9.0.1568
patch 9.0.1568: with 'smoothscroll' cursor may move below botline
Commit: https://github.com/vim/vim/commit/d49f646bf56b29d44bbb16e79bc877b59aab38ac
Author: Luuk van Baal <luukvbaal@gmail.com>
Date: Fri May 19 14:04:47 2023 +0100
patch 9.0.1568: with 'smoothscroll' cursor may move below botline
Problem: With 'smoothscroll' cursor may move below botline.
Solution: Call redraw_later() if needed, Compute cursor row with adjusted
condition. (Luuk van Baal, closes #12415)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 19 May 2023 15:15:05 +0200 |
parents | f1a5e67e9a1b |
children | b3a42579bb3f |
rev | line source |
---|---|
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
1 /* vim9instr.c */ |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
2 isn_T *generate_instr(cctx_T *cctx, isntype_T isn_type); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
3 isn_T *generate_instr_drop(cctx_T *cctx, isntype_T isn_type, int drop); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
4 isn_T *generate_instr_type(cctx_T *cctx, isntype_T isn_type, type_T *type); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
5 isn_T *generate_instr_debug(cctx_T *cctx); |
31396
307f68a41b03
patch 9.0.1031: Vim9 class is not implemented yet
Bram Moolenaar <Bram@vim.org>
parents:
30697
diff
changeset
|
6 int generate_CONSTRUCT(cctx_T *cctx, class_T *cl); |
31424
e31fc75f6aff
patch 9.0.1045: in a class object members cannot be initialized
Bram Moolenaar <Bram@vim.org>
parents:
31416
diff
changeset
|
7 int generate_GET_OBJ_MEMBER(cctx_T *cctx, int idx, type_T *type); |
31835
5ce5d78afcc9
patch 9.0.1250: cannot use an object method with :defer
Bram Moolenaar <Bram@vim.org>
parents:
31754
diff
changeset
|
8 int generate_GET_ITF_MEMBER(cctx_T *cctx, class_T *itf, int idx, type_T *type); |
31424
e31fc75f6aff
patch 9.0.1045: in a class object members cannot be initialized
Bram Moolenaar <Bram@vim.org>
parents:
31416
diff
changeset
|
9 int generate_STORE_THIS(cctx_T *cctx, int idx); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
10 int may_generate_2STRING(int offset, int tolerant, cctx_T *cctx); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
11 int generate_add_instr(cctx_T *cctx, vartype_T vartype, type_T *type1, type_T *type2, exprtype_T expr_type); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
12 vartype_T operator_type(type_T *type1, type_T *type2); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
13 int generate_two_op(cctx_T *cctx, char_u *op); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
14 int check_compare_types(exprtype_T type, typval_T *tv1, typval_T *tv2); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
15 int generate_COMPARE(cctx_T *cctx, exprtype_T exprtype, int ic); |
28901
11609f025219
patch 8.2.4973: Vim9: type error for list unpack mentions argument
Bram Moolenaar <Bram@vim.org>
parents:
28598
diff
changeset
|
16 int generate_CONCAT(cctx_T *cctx, int count); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
17 int generate_2BOOL(cctx_T *cctx, int invert, int offset); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
18 int generate_COND2BOOL(cctx_T *cctx); |
31551
67d9fbe516a3
patch 9.0.1108: type error when using "any" type and adding to float
Bram Moolenaar <Bram@vim.org>
parents:
31483
diff
changeset
|
19 int generate_TYPECHECK(cctx_T *cctx, type_T *expected, int number_ok, int offset, int is_var, int argidx); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
20 int generate_SETTYPE(cctx_T *cctx, type_T *expected); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
21 int generate_tv_PUSH(cctx_T *cctx, typval_T *tv); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
22 int generate_PUSHNR(cctx_T *cctx, varnumber_T number); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
23 int generate_PUSHBOOL(cctx_T *cctx, varnumber_T number); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
24 int generate_PUSHSPEC(cctx_T *cctx, varnumber_T number); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
25 int generate_PUSHF(cctx_T *cctx, float_T fnumber); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
26 int generate_PUSHS(cctx_T *cctx, char_u **str); |
28156
088d8dc22045
patch 8.2.4602: Vim9: not enough test coverage for executing :def function
Bram Moolenaar <Bram@vim.org>
parents:
27376
diff
changeset
|
27 int generate_PUSHCHANNEL(cctx_T *cctx); |
088d8dc22045
patch 8.2.4602: Vim9: not enough test coverage for executing :def function
Bram Moolenaar <Bram@vim.org>
parents:
27376
diff
changeset
|
28 int generate_PUSHJOB(cctx_T *cctx); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
29 int generate_PUSHBLOB(cctx_T *cctx, blob_T *blob); |
30065
6cf788ab844c
patch 9.0.0370: cleaning up afterwards can make a function messy
Bram Moolenaar <Bram@vim.org>
parents:
28992
diff
changeset
|
30 int generate_PUSHFUNC(cctx_T *cctx, char_u *name, type_T *type, int may_prefix); |
27376
1a6421c5be20
patch 8.2.4216: Vim9: cannot use a function from an autoload import directly
Bram Moolenaar <Bram@vim.org>
parents:
27148
diff
changeset
|
31 int generate_AUTOLOAD(cctx_T *cctx, char_u *name, type_T *type); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
32 int generate_GETITEM(cctx_T *cctx, int index, int with_op); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
33 int generate_SLICE(cctx_T *cctx, int count); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
34 int generate_CHECKLEN(cctx_T *cctx, int min_len, int more_OK); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
35 int generate_STORE(cctx_T *cctx, isntype_T isn_type, int idx, char_u *name); |
31483
1bebc2093e6b
patch 9.0.1074: class members are not supported yet
Bram Moolenaar <Bram@vim.org>
parents:
31441
diff
changeset
|
36 int generate_CLASSMEMBER(cctx_T *cctx, int load, class_T *cl, int idx); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
37 int generate_STORENR(cctx_T *cctx, int idx, varnumber_T value); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
38 int generate_LOAD(cctx_T *cctx, isntype_T isn_type, int idx, char_u *name, type_T *type); |
30333
fc0830246f49
patch 9.0.0502: a closure in a nested loop in a :def function does not work
Bram Moolenaar <Bram@vim.org>
parents:
30291
diff
changeset
|
39 int generate_LOADOUTER(cctx_T *cctx, int idx, int nesting, int loop_depth, int loop_idx, type_T *type); |
28992
0e9642706a59
patch 8.2.5018: Vim9: some code is not covered by tests
Bram Moolenaar <Bram@vim.org>
parents:
28901
diff
changeset
|
40 int generate_LOADV(cctx_T *cctx, char_u *name); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
41 int generate_UNLET(cctx_T *cctx, isntype_T isn_type, char_u *name, int forceit); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
42 int generate_LOCKCONST(cctx_T *cctx); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
43 int generate_OLDSCRIPT(cctx_T *cctx, isntype_T isn_type, char_u *name, int sid, type_T *type); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
44 int generate_VIM9SCRIPT(cctx_T *cctx, isntype_T isn_type, int sid, int idx, type_T *type); |
28217
662d2d5db9a6
patch 8.2.4634: Vim9: cannot initialize a variable to null_list
Bram Moolenaar <Bram@vim.org>
parents:
28173
diff
changeset
|
45 int generate_NEWLIST(cctx_T *cctx, int count, int use_null); |
662d2d5db9a6
patch 8.2.4634: Vim9: cannot initialize a variable to null_list
Bram Moolenaar <Bram@vim.org>
parents:
28173
diff
changeset
|
46 int generate_NEWDICT(cctx_T *cctx, int count, int use_null); |
31920
f1a5e67e9a1b
patch 9.0.1292: :defer may call the wrong method for an object
Bram Moolenaar <Bram@vim.org>
parents:
31843
diff
changeset
|
47 int generate_FUNCREF(cctx_T *cctx, ufunc_T *ufunc, class_T *cl, int fi, isn_T **isnp); |
30333
fc0830246f49
patch 9.0.0502: a closure in a nested loop in a :def function does not work
Bram Moolenaar <Bram@vim.org>
parents:
30291
diff
changeset
|
48 int generate_NEWFUNC(cctx_T *cctx, char_u *lambda_name, char_u *func_name); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
49 int generate_DEF(cctx_T *cctx, char_u *name, size_t len); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
50 int generate_JUMP(cctx_T *cctx, jumpwhen_T when, int where); |
30269
42a6345b91fd
patch 9.0.0470: in :def function all closures in loop get the same variables
Bram Moolenaar <Bram@vim.org>
parents:
30166
diff
changeset
|
51 int generate_WHILE(cctx_T *cctx, int funcref_idx); |
31441
e572ff386670
patch 9.0.1053: default constructor arguments are not optional
Bram Moolenaar <Bram@vim.org>
parents:
31424
diff
changeset
|
52 int generate_JUMP_IF_ARG(cctx_T *cctx, isntype_T isn_type, int arg_off); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
53 int generate_FOR(cctx_T *cctx, int loop_idx); |
30333
fc0830246f49
patch 9.0.0502: a closure in a nested loop in a :def function does not work
Bram Moolenaar <Bram@vim.org>
parents:
30291
diff
changeset
|
54 int generate_ENDLOOP(cctx_T *cctx, loop_info_T *loop_info); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
55 int generate_TRYCONT(cctx_T *cctx, int levels, int where); |
30166
d1c04b4dc60d
patch 9.0.0419: the :defer command does not check the function arguments
Bram Moolenaar <Bram@vim.org>
parents:
30065
diff
changeset
|
56 int check_internal_func_args(cctx_T *cctx, int func_idx, int argcount, int method_call, type2_T **argtypes, type2_T *shuffled_argtypes); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
57 int generate_BCALL(cctx_T *cctx, int func_idx, int argcount, int method_call); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
58 int generate_LISTAPPEND(cctx_T *cctx); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
59 int generate_BLOBAPPEND(cctx_T *cctx); |
31843
ffa11e2757e7
patch 9.0.1254: calling a method on an interface does not work
Bram Moolenaar <Bram@vim.org>
parents:
31835
diff
changeset
|
60 int generate_CALL(cctx_T *cctx, ufunc_T *ufunc, class_T *cl, int mi, int pushed_argcount); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
61 int generate_UCALL(cctx_T *cctx, char_u *name, int argcount); |
30166
d1c04b4dc60d
patch 9.0.0419: the :defer command does not check the function arguments
Bram Moolenaar <Bram@vim.org>
parents:
30065
diff
changeset
|
62 int check_func_args_from_type(cctx_T *cctx, type_T *type, int argcount, int at_top, char_u *name); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
63 int generate_PCALL(cctx_T *cctx, int argcount, char_u *name, type_T *type, int at_top); |
31835
5ce5d78afcc9
patch 9.0.1250: cannot use an object method with :defer
Bram Moolenaar <Bram@vim.org>
parents:
31754
diff
changeset
|
64 int generate_DEFER(cctx_T *cctx, int var_idx, int obj_method, int argcount); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
65 int generate_STRINGMEMBER(cctx_T *cctx, char_u *name, size_t len); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
66 int generate_ECHO(cctx_T *cctx, int with_white, int count); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
67 int generate_MULT_EXPR(cctx_T *cctx, isntype_T isn_type, int count); |
30697
d914a3812d5b
patch 9.0.0683: cannot specify a time for :echowindow
Bram Moolenaar <Bram@vim.org>
parents:
30333
diff
changeset
|
68 int generate_ECHOWINDOW(cctx_T *cctx, int count, long time); |
28249
4b322951ebac
patch 8.2.4650: "import autoload" only works with using 'runtimepath'
Bram Moolenaar <Bram@vim.org>
parents:
28217
diff
changeset
|
69 int generate_SOURCE(cctx_T *cctx, int sid); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
70 int generate_PUT(cctx_T *cctx, int regname, linenr_T lnum); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
71 int generate_EXEC_copy(cctx_T *cctx, isntype_T isntype, char_u *line); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
72 int generate_EXEC(cctx_T *cctx, isntype_T isntype, char_u *str); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
73 int generate_LEGACY_EVAL(cctx_T *cctx, char_u *line); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
74 int generate_EXECCONCAT(cctx_T *cctx, int count); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
75 int generate_RANGE(cctx_T *cctx, char_u *range); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
76 int generate_UNPACK(cctx_T *cctx, int var_count, int semicolon); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
77 int generate_cmdmods(cctx_T *cctx, cmdmod_T *cmod); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
78 int generate_undo_cmdmods(cctx_T *cctx); |
31483
1bebc2093e6b
patch 9.0.1074: class members are not supported yet
Bram Moolenaar <Bram@vim.org>
parents:
31441
diff
changeset
|
79 int generate_store_var(cctx_T *cctx, assign_dest_T dest, int opt_flags, int vimvaridx, type_T *type, char_u *name, lhs_T *lhs); |
27148
6ed31017c303
patch 8.2.4103: Vim9: variable declared in for loop not initialzed
Bram Moolenaar <Bram@vim.org>
parents:
27032
diff
changeset
|
80 int inside_loop_scope(cctx_T *cctx); |
26729
b969fdb8cd46
patch 8.2.3893: Vim9: many local variables are initialized with an instruction
Bram Moolenaar <Bram@vim.org>
parents:
26662
diff
changeset
|
81 int generate_store_lhs(cctx_T *cctx, lhs_T *lhs, int instr_count, int is_decl); |
26662
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
82 void may_generate_prof_end(cctx_T *cctx, int prof_lnum); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
83 void delete_instr(isn_T *isn); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
84 void clear_instr_ga(garray_T *gap); |
4b23672d1f0e
patch 8.2.3860: Vim9: codecov struggles with the file size
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
85 /* vim: set ft=c : */ |