Age | Commit message (Collapse) | Author |
|
Problem: Vim9: no error for an evironment variable by itself.
Solution: Give a "without effect" error. (closes #9166)
|
|
Problem: Vim9: error for variable declared in while loop.
Solution: Do not keep the first variable. (closes #9191)
|
|
Problem: Vim9: The "no effect" error is not given for all registers.
Solution: Include any character following '@'. (closes #8779)
|
|
Problem: Loop variable recreated every time.
Solution: Keep the loop variable when looping.
|
|
Problem: Illegal memory access with invalid sequence of commands.
Solution: Do not call leave_block() when not in a try block. (closes #8966)
Reset did_emsg so that exception is shown as an error.
|
|
Problem: Still crash with error in :catch and also in :finally.
Solution: Only call finish_exception() once. (closes #8954)
|
|
Problem: Crash with error in :catch and also in :finally.
Solution: Only discard an exception if there is one. (closes #8954)
|
|
Problem: Vim9: no warning that "@r" does not do anything.
Solution: Give a "no effect" error. (closes #8779)
|
|
Problem: Vim9: Cannot use :silent with :endwhile.
Solution: Allow for using the :silent modifier. (closes #8737)
|
|
Problem: Vim9: :finally in skipped block not handled correctly.
Solution: Check whether :finally is in a skipped block. (Naruhiko Nishino,
closes #8724)
|
|
Problem: Cannot use all commands inside a {} block after :command and
:autocmd.
Solution: Do consider \n to separate commands. (closes #8620)
|
|
Problem: Vim9: crash when using variable in a loop at script level.
Solution: Do not clear the variable if a function was defined.
Do not create a new entry in sn_var_vals every time.
(closes #8628)
|
|
Problem: Error messages are spread out.
Solution: Move error messages to errors.h and give them a clear name.
|
|
Problem: Vim9: no error when a line only has a variable name.
Solution: Give an error when an expression is evaluated without an effect.
(closes #8538)
|
|
Problem: Vim9: for loop error reports wrong line number.
Solution: Save and restore the line number when evaluating the expression.
(closes #8514)
|
|
Problem: Vim9: missing catch/finally not reported at script level.
Solution: Give an error. (closes #8487)
|
|
Problem: Vim9: message about compiling is wrong when using try/catch.
Solution: Store the compiling flag with the message. (closes #8071)
|
|
Problem: Vim9: error message for declaring variable in for loop.
Solution: Clear variables when entering block again. (closes #8012)
|
|
Problem: Vim9: can use command modifier without an effect.
Solution: Give an error for a misplaced command modifier. Fix error message
number.
|
|
Problem: Vim9: Cannot put "|" after "{".
Solution: Add the EX_TRLBAR flag. (issue #7904)
|
|
Problem: Condition stack values may be used when not set.
Solution: Clear cs_script_var_len and cs_block_id just in case they get used
later. (issue #7733)
|
|
Problem: Vim9: 'cpo' can become empty.
Solution: Use empty_option instead of an empty string. Update quickfix
buffer after restoring 'cpo'. (closes #7608)
|
|
Problem: Crash when discarded exception is the current exception.
Solution: Compare the execption with current_exception. (closes #7499)
|
|
Problem: Vim9: no need to keep all script variables.
Solution: Only keep script variables when a function was defined that could
use them. Fix freeing static string on exit.
|
|
Problem: Vim9: variables declared in a local block are not found in
when a function is compiled.
Solution: Look for script variables in sn_all_vars.
|
|
Problem: Vim9: function defined in a block can't use variables defined in
that block.
Solution: First step: Make a second hashtab that holds all script variables,
also block-local ones, with more information.
|
|
Problem: Vim9: cannot use a {} block at script level.
Solution: Recognize a {} block.
|
|
Problem: Vim9: accessing freed memory.
Solution: Clear sv_name when the variable is deleted.
|
|
Problem: Vim9: variables at the script level escape their scope.
Solution: When leaving a scope remove variables declared in it.
|
|
Problem: Expand('<stack>') does not include the final line number.
Solution: Add the line nuber. (closes #6927)
|
|
Problem: When a test fails it's often not easy to see what the call stack
is.
Solution: Add more entries from the call stack in the exception message.
|
|
Problem: The "trailing characters" error can be hard to understand.
Solution: Add the trailing characters to the message.
|
|
Problem: Ex command error cannot contain an argument.
Solution: Add ex_errmsg() and translate earlier. Use e_trailing_arg where
possible.
|
|
Problem: Vim9: line continuation does not work in function arguments.
Solution: Pass "evalarg" to get_func_tv(). Fix seeing double quoted string
as comment.
|
|
Problem: Vim9: no line break allowed in a for loop.
Solution: Skip line breaks in for command.
|
|
Problem: Vim9: no line break allowed inside a lambda.
Solution: Handle line break inside a lambda in Vim9 script.
|
|
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.
|
|
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.
|
|
Problem: Unnecessary type casts for vim_strnsave().
Solution: Remove the type casts.
|
|
Problem: Vim9: script reload test is disabled.
Solution: Compile a function in the context of the script where it was
defined. Set execution stack for compiled function. Add a test
that an error is reported for the right file/function.
|
|
Problem: Vim9: expressions are evaluated in the discovery phase.
Solution: Bail out if an expression is not a constant. Require a type for
declared constants.
|
|
Problem: Vim9: no check for space before #comment.
Solution: Add space checks.
|
|
Problem: Vim9: no error when omitting type from argument.
Solution: Enforce specifying argument types.
|
|
Problem: Vim9: some code is not tested.
Solution: Add more tests. Fix uncovered problems.
|
|
Problem: Maintaining a Vim9 branch separately is more work.
Solution: Merge the Vim9 script changes.
|
|
Problem: Execution stack is incomplete and inefficient.
Solution: Introduce a proper execution stack and use it instead of
sourcing_name/sourcing_lnum. Create a string only when used.
|
|
Problem: Not using a typedef for condstack.
Solution: Add a typedef.
|
|
Problem: Using old C style comments.
Solution: Use // comments where appropriate.
|
|
Problem: Not so easy to interrupt a script programatically.
Solution: Add the interrupt() function. (Yasuhiro Matsumoto, closes #2834)
|
|
Problem: Functions used in one file are global.
Solution: Add "static". (Yegappan Lakshmanan, closes #4840)
|