| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Problem: A timer may change v:count unexpectedly.
Solution: Save and restore v:count and similar variables when a timer
callback is invoked. (closes #2897)
|
|
|
|
|
| |
Problem: Assert functions don't return anything.
Solution: Return non-zero when the assertion fails.
|
|
|
|
|
|
| |
Problem: Cannot write and read terminal screendumps.
Solution: Add term_dumpwrite(), term_dumpread() and term_dumpdiff().
Also add assert_equalfile().
|
|
|
|
|
| |
Problem: Some code for the debugger watch expression is clumsy.
Solution: Clean up the code.
|
|
|
|
|
| |
Problem: Cannot test if a command causes a beep.
Solution: Add assert_beeps().
|
|
|
|
|
| |
Problem: Debugger can't break on a condition. (Charles Campbell)
Solution: Add ":breakadd expr". (Christian Brabandt, closes #859)
|
|
|
|
|
|
| |
Problem: Cannot intercept a yank command.
Solution: Add the TextYankPost autocommand event. (Philippe Vaucher et al.,
closes #2333)
|
|
|
|
|
|
| |
Problem: Cannot use a lambda for the skip argument to searchpair().
Solution: Evaluate a partial, funcref and lambda. (LemonBoy, closes #1454,
closes #2265)
|
|
|
|
|
| |
Problem: The client-server test may hang when failing.
Solution: Set a timer. Add assert_report()
|
|
|
|
|
|
| |
Problem: Can't access b:changedtick from a dict reference.
Solution: Make changedtick a member of the b: dict. (inspired by neovim
#6112)
|
|
|
|
|
| |
Problem: ":oldfiles" output is a very long list.
Solution: Add a pattern argument. (Coot, closes #575)
|
|
|
|
|
|
|
| |
Problem: Using function() with a name will find another function when it is
redefined.
Solution: Add funcref(). Refer to lambda using a partial. Fix several
reference counting issues.
|
|
|
|
|
|
| |
Problem: Closures are not supported.
Solution: Capture variables in lambdas from the outer scope. (Yasuhiro
Matsumoto, Ken Takata)
|
|
|
|
|
| |
Problem: Man test fails when run with the GUI.
Solution: Adjust for different behavior of GUI. Add assert_inrange().
|
|
|
|
|
| |
Problem: substitute() does not support a Funcref argument.
Solution: Support a Funcref like it supports a string starting with "\=".
|
|
|
|
|
| |
Problem: eval.c is still too big.
Solution: Split off internal functions to evalfunc.c.
|
|
|
|
|
| |
Problem: eval.c is too big.
Solution: Move user functions to userfunc.c
|
|
|
|
|
| |
Problem: eval.c is too big.
Solution: Move List functions to list.c
|
|
|
|
|
| |
Problem: eval.c is too big.
Solution: Move Dictionary functions to dict.c.
|
|
|
|
|
| |
Problem: Reference counting for callbacks isn't right.
Solution: Add free_callback(). (Ken Takata) Fix reference count.
|
|
|
|
|
|
| |
Problem: evalcmd() has a confusing name.
Solution: Rename to execute(). Make silent optional. Support a list of
commands.
|
|
|
|
|
| |
Problem: evalcmd() doesn't work recursively.
Solution: Use redir_evalcmd instead of redir_vname.
|
|
|
|
|
| |
Problem: Number variables are not 64 bits while they could be.
Solution: Add the num64 feature. (Ken Takata)
|
|
|
|
|
| |
Problem: Python: turns partial into simple funcref.
Solution: Use partials like partials. (Nikolai Pavlov, closes #734)
|
|
|
|
|
|
| |
Problem: Cannot detect a crash in tests when caused by garbagecollect().
Solution: Add garbagecollect_for_testing(). Do not free a job if is still
useful.
|
|
|
|
|
|
|
|
| |
Problem: Leaking memory when there is a cycle involving a job and a
partial.
Solution: Add a copyID to job and channel. Set references in items referred
by them. Go through all jobs and channels to find unreferenced
items. Also, decrement reference counts when garbage collecting.
|
|
|
|
|
| |
Problem: There is no way to invoke a function later or periodically.
Solution: Add timer support.
|
|
|
|
|
| |
Problem: Passing cookie to a callback is clumsy.
Solution: Change function() to take arguments and return a partial.
|
|
|
|
|
| |
Problem: Windows cannot be identified.
Solution: Add a unique window number to each window and functions to use it.
|
|
|
|
|
| |
Problem: Too much code in eval.c.
Solution: Move job and channel code to channel.c.
|
|
|
|
|
| |
Problem: The job exit callback is not implemented.
Solution: Add the "exit-cb" option.
|
|
|
|
|
| |
Problem: Can't change job settings after it started.
Solution: Add job_setoptions() with the "stoponexit" flag.
|
|
|
|
|
|
| |
Problem: Crash when unletting the variable that holds the channel in a
callback function. (Christian Robinson)
Solution: Increase the reference count while invoking the callback.
|
|
|
|
|
| |
Problem: JSON messages are not parsed properly.
Solution: Queue received messages.
|
|
|
|
|
|
| |
Problem: The channel feature isn't working yet.
Solution: Add the connect(), disconnect(), sendexpr() and sendraw()
functions. Add initial documentation. Add a demo server.
|
|
|
|
|
|
| |
Problem: No support for JSON.
Solution: Add jsonencode() and jsondecode(). Also add v:false, v:true,
v:null and v:none.
|
|
|
|
|
| |
Problem: Generated function prototypes still have __ARGS().
Solution: Generate function prototypes without __ARGS().
|
|
|
|
|
| |
Problem: It is not possible for a plugin to adjust to a changed setting.
Solution: Add the OptionSet autocommand event. (Christian Brabandt)
|
|
|
|
|
|
| |
Problem: When using the CompleteDone autocommand event it's difficult to
get to the completed items.
Solution: Add the v:completed_items variable. (Shougo Matsu)
|
|
|
|
|
|
|
| |
Problem: For complicated list and dict use the garbage collector can run
out of stack space.
Solution: Use a stack of dicts and lists to be marked, thus making it
iterative instead of recursive. (Ben Fritz)
|
|
|
|
|
| |
Problem: Various small issues.
Solution: Fix those issues.
|
|
|
|
|
| |
Problem: list_remove() conflicts with function defined in Sun header file.
Solution: Rename the function. (Richard Palo)
|
|
|
|
|
| |
Problem: Python: slices with steps are not supported.
Solution: Support slices in Python vim.List. (ZyX)
|
|
|
|
|
|
| |
Problem: The round() function is not always available. (Christ van
Willegen)
Solution: Use the solution from f_round().
|
|
|
|
|
| |
Problem: Python: Script is auto-loaded on function creation.
Solution: Python patch 27. (ZyX)
|
|
|
|
|
| |
Problem: Python: Function is not standard.
Solution: Python patch 22: make Function subclassable. (ZyX)
|
|
|
|
|
| |
Problem: Python: Dictionary is not standard.
Solution: Python patch 20: Add standard methods and fields. (ZyX)
|
|
|
|
|
| |
Problem: Call of funcref does not succeed in other script.
Solution: Python patch 17: add get_expanded_name(). (ZyX)
|
|
|
|
|
| |
Problem: Python: possible memory leaks.
Solution: Python patch 15. (ZyX) Fix will follow later.
|
|
|
|
|
|
| |
Problem: Setting curbuf without curwin causes trouble.
Solution: Add switch_buffer() and restore_buffer(). Block autocommands to
avoid trouble.
|