Age | Commit message (Collapse) | Author |
|
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)
|
|
Problem: More functions can be used as a method.
Solution: Add append(), appendbufline(), assert_equal(), etc.
Also add the :eval command.
|
|
Problem: Alloc() returning "char_u *" causes a lot of type casts.
Solution: Have it return "void *". (Mike Williams) Define ALLOC_ONE() to
check the simple allocations.
|
|
Problem: Using "int" for alloc() often results in compiler warnings.
Solution: Use "size_t" and remove type casts. Remove alloc_check(), Vim
only works with 32 bit ints anyway.
|
|
Problem: Argument for message functions is inconsistent.
Solution: Make first argument to msg() "char *".
|
|
Problem: Giving error messages is not flexible.
Solution: Add semsg(). Change argument from "char_u *" to "char *", also
for msg() and get rid of most MSG macros. (Ozaki Kiichi, closes
#3302) Also make emsg() accept a "char *" argument. Get rid of
an enormous number of type casts.
|
|
Problem: Unnecessary static function prototypes.
Solution: Remove unnecessary prototypes.
|
|
Problem: Crash when there is an error in a timer callback. (Aron Griffis,
Ozaki Kiichi)
Solution: Check did_throw before discarding an exception. NULLify
current_exception when no longer valid.
|
|
Problem: Using number for exception type lacks type checking.
Solution: Use an enum.
|
|
Problem: Cannot make Vim fail on an internal error.
Solution: Add IEMSG() and IEMSG2(). (Domenique Pelle) Avoid reporting an
internal error without mentioning where.
|
|
Problem: Modelines in source code are inconsistant.
Solution: Use the same line in most files. Add 'noet'. (Naruhiko Nishino)
|
|
Problem: Should_free flag set to FALSE.
Solution: Set it to TRUE. (Neovim 4415)
|
|
Problem: Crash when evaluating the pattern of ":catch" causes an error.
(Dominique Pelle)
Solution: Block error messages at this point.
|
|
Problem: Using old style function declarations.
Solution: Change to new style function declarations. (script by Hirohito
Higashi)
|
|
Problem: Still using __ARGS.
Solution: Remove __ARGS in several files. (script by Hirohito Higashi)
|
|
Problem: Python: When vim.eval() encounters a Vim error, a try/catch in the
Python code doesn't catch it. (Yggdroot Chen)
Solution: Throw exceptions on errors in vim.eval(). (ZyX)
|
|
Problem: New regexp engine: Matching plain text could be faster.
Solution: Detect a plain text match and handle it specifically. Add
vim_regfree().
|
|
Problem: Typos in source files.
Solution: Fix the typos. (Ken Takata)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|