Bram Moolenaar
91c7cbfe31
patch 9.0.0225: using freed memory with multiple line breaks in expression
...
Problem: Using freed memory with multiple line breaks in expression.
Solution: Free eval_tofree later.
2022-08-18 13:28:31 +01:00
Bram Moolenaar
e442d59f6d
patch 8.2.4869: expression in command block does not look after NL
...
Problem: Expression in command block does not look after NL.
Solution: Skip over NL to check what follows. (closes #10358 )
2022-05-05 12:20:28 +01:00
Bram Moolenaar
8acb9cc620
patch 8.2.4526: Vim9: cannot set variables to a null value
...
Problem: Vim9: cannot set variables to a null value.
Solution: Add null_list, null_job, etc.
2022-03-08 13:18:55 +00:00
Bram Moolenaar
381692b6f1
patch 8.2.4286: Vim9: strict type checking after copy() and deepcopy()
...
Problem: Vim9: strict type checking after copy() and deepcopy().
Solution: Allow type to change after making a copy. (closes #9644 )
2022-02-02 20:01:27 +00:00
Bram Moolenaar
9530b580a7
patch 8.2.4179: 'foldtext' is evaluated in the current script context
...
Problem: 'foldtext' is evaluated in the current script context.
Solution: Use the script context where the option was set.
2022-01-22 13:39:08 +00:00
Bram Moolenaar
e70dd11ef4
patch 8.2.4173: cannot use an import in 'foldexpr'
...
Problem: Cannot use an import in 'foldexpr'.
Solution: Set the script context to where 'foldexpr' was set. (closes #9584 )
Fix that the script context was not set for all buffers.
2022-01-21 16:31:11 +00:00
Bram Moolenaar
32884ad753
patch 8.2.4024: confusing error message if imported name is used directly
...
Problem: Confusing error message if imported name is used directly.
Solution: Give a better error message.
2022-01-07 12:45:29 +00:00
Bram Moolenaar
d5f400c607
patch 8.2.4019: Vim9: import mechanism is too complicated
...
Problem: Vim9: import mechanism is too complicated.
Solution: Do not use the Javascript mechanism but a much simpler one.
2022-01-06 21:10:28 +00:00
Yegappan Lakshmanan
6ae8fae869
patch 8.2.3788: lambda for option that is a function may be freed
...
Problem: Lambda for option that is a function may be garbage collected.
Solution: Set a reference in the funcref. (Yegappan Lakshmanan,
closes #9330 )
2021-12-12 16:26:44 +00:00
Yegappan Lakshmanan
6409553b6e
patch 8.2.3751: cannot assign a lambda to an option that takes a function
...
Problem: Cannot assign a lambda to an option that takes a function.
Solution: Automatically convert the lambda to a string. (Yegappan
Lakshmanan, closes #9286 )
2021-12-06 11:03:55 +00:00
Bram Moolenaar
844fb64a60
patch 8.2.3560: using freed memory with lambda
...
Problem: Using freed memory with lambda.
Solution: Do not free lines early, keep them until the expression is
finished.
2021-10-23 13:32:30 +01:00
Bram Moolenaar
4f0884d6e2
patch 8.2.3332: Vim9: cannot assign to range in list
...
Problem: Vim9: cannot assign to range in list.
Solution: Implement overwriting a list range.
2021-08-11 21:49:23 +02:00
Yegappan Lakshmanan
a2438132a6
patch 8.2.3139: functions for string manipulation are spread out
...
Problem: Functions for string manipulation are spread out.
Solution: Move string related functions to a new source file. (Yegappan
Lakshmanan, closes #8470 )
2021-07-10 21:29:18 +02:00
Yegappan Lakshmanan
01c798c31a
patch 8.2.2928: the evalfunc.c file is too big
...
Problem: The evalfunc.c file is too big.
Solution: Move float related functionality to a separate file. (Yegappan
Lakshmanan, closes #8287 )
2021-06-02 17:07:18 +02:00
Bram Moolenaar
f785aa1354
patch 8.2.2501: not always clear where an error is reported
...
Problem: Not always clear where an error is reported.
Solution: Add the where_T structure and pass it around. (closes #7796 )
2021-02-11 21:19:34 +01:00
Bram Moolenaar
c5f59fab23
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
...
Problem: Vim9: divide by zero does not abort expression execution.
Solution: Use a "failed" flag. (issue #7704 )
2021-01-21 12:34:14 +01:00
Bram Moolenaar
883cf97f10
patch 8.2.2356: Vim9: ":put =expr" does not handle a list properly
...
Problem: Vim9: ":put =expr" does not handle a list properly.
Solution: Use the same logic as eval_to_string_eap(). (closes #7684 )
2021-01-15 18:04:43 +01:00
Bram Moolenaar
6601b62943
patch 8.2.2344: using inclusive index for slice is not always desired
...
Problem: Using inclusive index for slice is not always desired.
Solution: Add the slice() method, which has an exclusive index. (closes
#7408 )
2021-01-13 21:47:15 +01:00
Bram Moolenaar
6f02b00bb0
patch 8.2.2324: not easy to get mark en cursor posotion by character count
...
Problem: Not easy to get mark en cursor posotion by character count.
Solution: Add functions that use character index. (Yegappan Lakshmanan,
closes #7648 )
2021-01-10 20:22:54 +01:00
Bram Moolenaar
e7525c5520
patch 8.2.2318: Vim9: string and list index work differently
...
Problem: Vim9: string and list index work differently.
Solution: Make string index work like list index. (closes #7643 )
2021-01-09 13:20:37 +01:00
Bram Moolenaar
b23279d7a2
patch 8.2.2305: Vim9: "++var" and "--var" are silently accepted
...
Problem: Vim9: "++var" and "--var" are silently accepted.
Solution: Give an error message.
2021-01-05 22:08:20 +01:00
Bram Moolenaar
5b3d1bb0f5
patch 8.2.2186: Vim9: error when using 'opfunc'
...
Problem: Vim9: error when using 'opfunc'.
Solution: Do not expect a return value from 'opfunc'. (closes #7510 )
2020-12-22 12:20:08 +01:00
Bram Moolenaar
b4bcea474d
patch 8.2.1914: Vim9: cannot put line break in expression for '=' register
...
Problem: Vim9: cannot put line break in expression for '=' register.
Solution: Pass fgetline to set_expr_line(). (closes #7209 )
2020-10-28 13:53:50 +01:00
Bram Moolenaar
683581eb49
patch 8.2.1891: Vim9: skipping over expression doesn't handle line breaks
...
Problem: Vim9: skipping over expression doesn't handle line breaks.
Solution: Pass evalarg to skip_expr(). (closes #7157 )
2020-10-22 21:22:58 +02:00
Bram Moolenaar
cc673e746a
patch 8.2.1466: Vim9: cannot index or slice a variable with type "any"
...
Problem: Vim9: cannot index or slice a variable with type "any".
Solution: Add runtime index and slice.
2020-08-16 17:33:35 +02:00
Bram Moolenaar
11107bab7e
patch 8.2.1462: Vim9: string slice not supported yet
...
Problem: Vim9: string slice not supported yet.
Solution: Add support for string slicing.
2020-08-15 21:10:16 +02:00
Bram Moolenaar
e3c37d8ebf
patch 8.2.1461: Vim9: string indexes are counted in bytes
...
Problem: Vim9: string indexes are counted in bytes.
Solution: Use character indexes. (closes #6574 )
2020-08-15 18:39:05 +02:00
Bram Moolenaar
b13ab99908
patch 8.2.1306: checking for first character of dict key is inconsistent
...
Problem: Checking for first character of dict key is inconsistent.
Solution: Add eval_isdictc(). (closes #6546 )
2020-07-27 21:43:28 +02:00
Bram Moolenaar
8e2730a315
patch 8.2.1161: Vim9: using freed memory
...
Problem: Vim9: using freed memory.
Solution: Put pointer back in evalarg instead of freeing it.
2020-07-08 22:01:49 +02:00
Bram Moolenaar
962d721319
patch 8.2.1125: Vim9: double quote can be a string or a comment
...
Problem: Vim9: double quote can be a string or a comment.
Solution: Only support comments starting with # to avoid confusion.
2020-07-04 14:15:00 +02:00
Bram Moolenaar
e6b5324e3a
patch 8.2.1110: Vim9: line continuation does not work in function arguments
...
Problem: Vim9: line continuation does not work in function arguments.
Solution: Pass "evalarg" to get_func_tv(). Fix seeing double quoted string
as comment.
2020-07-01 17:28:33 +02:00
Bram Moolenaar
b7a78f7a67
patch 8.2.1080: Vim9: no line break allowed in a for loop
...
Problem: Vim9: no line break allowed in a for loop.
Solution: Skip line breaks in for command.
2020-06-28 18:43:40 +02:00
Bram Moolenaar
faf8626b79
patch 8.2.1076: Vim9: no line break allowed in :if expression
...
Problem: Vim9: no line break allowed in :if expression.
Solution: Skip linebreak.
2020-06-27 23:07:36 +02:00
Bram Moolenaar
9215f01218
patch 8.2.1074: Vim9: no line break allowed after some operators
...
Problem: Vim9: no line break allowed after some operators.
Solution: Skip a line break after the operator. Add
eval_may_get_next_line() to simplify checking for a line break.
2020-06-27 21:18:00 +02:00
Bram Moolenaar
e40fbc2ca9
patch 8.2.1071: Vim9: no line break allowed inside a lambda
...
Problem: Vim9: no line break allowed inside a lambda.
Solution: Handle line break inside a lambda in Vim9 script.
2020-06-27 18:06:45 +02:00
Bram Moolenaar
0b1cd52ff6
patch 8.2.1067: expression "!expr->func()" does not work
...
Problem: Expression "!expr->func()" does not work.
Solution: Apply plus and minus earlier. (closes #6348 )
2020-06-27 13:11:50 +02:00
Bram Moolenaar
7147820cb9
patch 8.2.1065: Vim9: no line break allowed inside a list
...
Problem: Vim9: no line break allowed inside a list.
Solution: Handle line break inside a list in Vim9 script.
2020-06-26 22:46:27 +02:00
Bram Moolenaar
b171fb1790
patch 8.2.1049: Vim9: leaking memory when using continuation line
...
Problem: Vim9: leaking memory when using continuation line.
Solution: Keep a pointer to the continuation line in evalarg_T. Centralize
checking for a next command.
2020-06-24 20:34:03 +02:00
Bram Moolenaar
5409f5d8c9
patch 8.2.1047: Vim9: script cannot use line continuation like :def function
...
Problem: Vim9: script cannot use line continuation like in a :def function.
Solution: Pass the getline function pointer to the eval() functions. Use it
for addition and multiplication operators.
2020-06-24 18:37:35 +02:00
Bram Moolenaar
a9c0104947
patch 8.2.0918: duplicate code for evaluating expression argument
...
Problem: Duplicate code for evaluating expression argument.
Solution: Merge the code and make the use more flexible.
2020-06-07 14:50:50 +02:00
Bram Moolenaar
367d59e6ba
patch 8.2.0847: typval related code is spread out
...
Problem: Typval related code is spread out.
Solution: Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093 )
2020-05-30 17:06:14 +02:00
Bram Moolenaar
8a7d6542b3
patch 8.2.0149: maintaining a Vim9 branch separately is more work
...
Problem: Maintaining a Vim9 branch separately is more work.
Solution: Merge the Vim9 script changes.
2020-01-26 15:56:19 +01:00
Bram Moolenaar
07a3db89b8
patch 8.2.0044: expression type is used inconsistently
...
Problem: Expression type is used inconsistently.
Solution: Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values. Rename
"TYPE_" to "ETYPE_" to avoid confusion.
2019-12-25 18:14:14 +01:00
Bram Moolenaar
b005cd80cf
patch 8.1.1979: code for handling file names is spread out
...
Problem: Code for handling file names is spread out.
Solution: Move code to new filepath.c file. Graduate FEAT_MODIFY_FNAME.
2019-09-04 15:54:55 +02:00
Bram Moolenaar
1e1d30048e
patch 8.1.1978: the eval.c file is too big
...
Problem: The eval.c file is too big.
Solution: Move filter() and map() to list.c.
2019-09-04 14:41:14 +02:00
Bram Moolenaar
da6c033421
patch 8.1.1957: more code can be moved to evalvars.c
...
Problem: More code can be moved to evalvars.c.
Solution: Move code to where it fits better. (Yegappan Lakshmanan,
closes #4883 )
2019-09-01 16:01:30 +02:00
Bram Moolenaar
8d71b54409
patch 8.1.1943: more code can be moved to evalvars.c
...
Problem: More code can be moved to evalvars.c.
Solution: Move it, clean up comments. Also move some window related
functions to window.c. (Yegappan Lakshmanan, closes #4874 )
2019-08-30 15:46:30 +02:00
Bram Moolenaar
e5cdf153bc
patch 8.1.1939: code for handling v: variables in generic eval file
...
Problem: Code for handling v: variables in generic eval file.
Solution: Move v: variables to evalvars.c. (Yegappan Lakshmanan,
closes #4872 )
2019-08-29 22:09:46 +02:00
Bram Moolenaar
0522ba0359
patch 8.1.1933: the eval.c file is too big
...
Problem: The eval.c file is too big.
Solution: Move code related to variables to evalvars.c. (Yegappan
Lakshmanan, closes #4868 )
2019-08-27 22:48:30 +02:00
Bram Moolenaar
5843f5f37b
patch 8.1.1891: functions used in one file are global
...
Problem: Functions used in one file are global.
Solution: Add "static". (Yegappan Lakshmanan, closes #4840 )
2019-08-20 20:13:45 +02:00