Age | Commit message (Collapse) | Author |
|
Problem: Crash when using nested map() and filter().
Solution: Do not set the v:key type to string without clearing the pointer.
|
|
Problem: More code can be moved to evalvars.c.
Solution: Move code to where it fits better. (Yegappan Lakshmanan,
closes #4883)
|
|
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)
|
|
Problem: Script tests fail.
Solution: Don't set vimvars type in set_vim_var_nr().
|
|
Problem: Code for handling v: variables in generic eval file.
Solution: Move v: variables to evalvars.c. (Yegappan Lakshmanan,
closes #4872)
|
|
Problem: The eval.c file is too big.
Solution: Move code related to variables to evalvars.c. (Yegappan
Lakshmanan, closes #4868)
|
|
Problem: Not easy to compute the space on the command line.
Solution: Add v:echospace. (Daniel Hahler, closes #4732)
|
|
Problem: Not checking for out-of-memory of autoload_name().
Solution: Check for NULL. (Dominique Pelle, closes #4846)
|
|
Problem: Functions used in one file are global.
Solution: Add "static". (Yegappan Lakshmanan, closes #4840)
|
|
Problem: The +cmdline_compl feature is not in the tiny version.
Solution: Graduate the +cmdline_compl feature.
|
|
Problem: Negative float before method not parsed correctly.
Solution: Apply "!" and "-" in front of expression before using ->.
|
|
Problem: Cannot use a lambda as a method.
Solution: Implement ->{lambda}(). (closes #4768)
|
|
Problem: Not strict enough checking syntax of method invocation.
Solution: Check there is no white space inside ->method(.
|
|
Problem: Using expr->FuncRef() does not work.
Solution: Make FuncRef work as a method.
|
|
Problem: Cannot use a user defined function as a method.
Solution: Pass the base as the first argument to the user defined function
after "->". (partly by FUJIWARA Takuya)
|
|
Problem: All builtin functions are global.
Solution: Add the method call operator ->. Implemented for a limited number
of functions.
|
|
Problem: Function call functions have too many arguments.
Solution: Pass values in a funcexe_T struct.
|
|
Problem: Code for writing session file is spread out.
Solution: Put it in one file. (Yegappan Lakshmanan, closes #4728)
|
|
Problem: Code for viminfo support is spread out.
Solution: Move to code to viminfo.c. (Yegappan Lakshmanan, closes #4686)
|
|
Problem: Heredoc assignment has no room for new features. (FUJIWARA Takuya)
Solution: Require the marker does not start with a lower case character.
(closes #4705)
|
|
Problem: Error when scriptversion is 2 a making a dictionary access.
Solution: Parse the subscript even when not evaluating the sub-expression.
(closes #4704)
|
|
Problem: Using ~{} for a literal dict is not nice.
Solution: Use #{} instead.
|
|
Problem: Using *{} for literal dict is not backwards compatible. (Yasuhiro
Matsumoto)
Solution: Use ~{} instead.
|
|
Problem: The evalfunc.c file is too big.
Solution: Move testing support to a separate file.
|
|
Problem: "*" of "*{" is recognized as multipy operator. (Yasuhiro Matsumoto)
Solution: Check for the "{".
|
|
Problem: Dictionary with string keys is longer than needed.
Solution: Use *{key: val} for literaly keys.
|
|
Problem: Assert_fails() does not fail inside try/catch.
Solution: Set trylevel to zero. (Ozaki Kiichi, closes #4639)
|
|
Problem: Changing an autoload name into a script file name is inefficient.
Solution: Remember the last replaced #. (Ozaki Kiichi, closes #4618)
|
|
Problem: In :let-heredoc line continuation is recognized.
Solution: Do not consume line continuation. (Ozaki Kiichi, closes #4580)
|
|
Problem: :let-heredoc does not trim enough.
Solution: Trim indent from the contents based on the indent of the first
line. Use let-heredoc in more tests.
|
|
Problem: Set_ref_in_list() only sets ref in items.
Solution: Rename to set_ref_in_list_items() to avoid confusion.
|
|
Problem: Callbacks may be garbage collected.
Solution: Set reference in callbacks. (Ozaki Kiichi, closes #4564)
|
|
Problem: An OptionSet autocommand does not get enough info.
Solution: Add v:option_command, v:option_oldlocal and v:option_oldglobal.
(Latrice Wilgus, closes #4118)
|
|
Problem: Not easy to define a variable and lock it.
Solution: Add ":const".
|
|
Problem: No numerical value for the patchlevel.
Solution: Add v:versionlong.
|
|
Problem: When skipping over code after an exception was thrown expression
evaluation is aborted after a function call. (Ingo Karkat)
Solution: Do not fail if not executing the expression. (closes #4507)
|
|
Problem: Double free when garbage_collect() is used in autocommand.
Solution: Have garbage collection also set the copyID in funccal_stack.
|
|
Problem: Some tests are slow.
Solution: Add timing to the test messages. Fix double free when quitting in
VimLeavePre autocmd.
|
|
Problem: Code to handle callbacks is duplicated.
Solution: Add callback_T and functions to deal with it.
|
|
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 global pointer for tab-local popups is clumsy.
Solution: Use the pointer in tabpage_T.
|
|
Problem: No popup window support.
Solution: Add initial code for popup windows. Add the 'wincolor' option.
|
|
Problem: Unessesary type casts for lalloc().
Solution: Remove type casts. Change lalloc(size, TRUE) to alloc(size).
|
|
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: Obvious mistakes are accepted as valid expressions.
Solution: Be more strict about parsing numbers. (Yasuhiro Matsumoto,
closes #3981)
|
|
Problem: Getting a list of text lines is clumsy.
Solution: Add the =<< assignment. (Yegappan Lakshmanan, closes #4386)
|
|
Problem: Computing function length name in many places.
Solution: compute name length in call_func().
|
|
Problem: No error for quickfix commands with negative range.
Solution: Add ADDR_UNSIGNED and use it for quickfix commands. Make
assert_fails() show the command if the error doesn't match.
|
|
Problem: Cannot set a directory for a tab page.
Solution: Add the tab-local directory. (Yegappan Lakshmanan, closes #4212)
|
|
Problem: Support for user commands is spread out. No good reason to make
user commands optional.
Solution: Move user command support to usercmd.c. Always enable the
user_commands feature.
|