Age | Commit message (Collapse) | Author |
|
Problem: Using a partial for timer_start() may cause a crash.
Solution: Set the copyID in timer objects. (Ozaki Kiichi)
|
|
Problem: Valgrind reports memory leak for job that is not freed.
Solution: Free all jobs on exit. Add test for failing job.
|
|
Problem: May try to access buffer that's already freed.
Solution: When freeing a buffer remove it from any channel.
|
|
Problem: A channel may be garbage collected while it's still being used by
a job. (James McCoy)
Solution: Mark the channel as used if the job is still used. Do the same
for channels that are still used.
|
|
Problem: Netbeans channel gets garbage collected.
Solution: Set reference in nb_channel.
|
|
Problem: 'guicolors' is a confusing option name.
Solution: Use 'termguicolors' instead. (Hirohito Higashi)
|
|
Problem: Color name decoding is implemented several times.
Solution: Move it to term.c. (Christian Brabandt)
|
|
Problem: Cannot use ch_read() in the close callback.
Solution: Do not discard the channel if there is readahead. Do not discard
readahead if there is a close callback.
|
|
Problem: When a job ends the close callback is invoked before other
callbacks. On Windows the close callback is not called.
Solution: First invoke out/err callbacks before the close callback.
Make the close callback work on Windows.
|
|
Problem: Cannot use true color in the terminal.
Solution: Add the 'guicolors' option. (Nikolai Pavlov)
|
|
Problem: "noinsert" in 'completeopt' is sometimes ignored.
Solution: Set the variables when the 'completeopt' was set. (Ozaki Kiichi)
|
|
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: Leaking memory when opening a channel fails.
Solution: Unreference partials in job options.
|
|
Problem: Old style function declaration breaks build.
Solution: Remove __ARGS().
|
|
Problem: The 'guifont' option does not allow for a quality setting.
Solution: Add the "q" item, supported on MS-Windows. (Yasuhiro Matsumoto)
|
|
Problem: Display problems when the 'ambiwidth' and 'emoji' options are not
set properly or the terminal doesn't behave as expected.
Solution: After drawing an ambiguous width character always position the
cursor.
|
|
Problem: When using :stopinsert in a silent mapping the "INSERT" message
isn't cleared. (Coacher)
Solution: Always clear the message. (Christian Brabandt, closes #718)
|
|
Problem: When writing buffer lines to a pipe Vim may block.
Solution: Avoid blocking, write more lines later.
|
|
Problem: Can't get info about a channel.
Solution: Add ch_info().
|
|
Problem: All Channels share the message ID, it keeps getting bigger.
Solution: Use a message ID per channel.
|
|
Problem: There is no way to invoke a function later or periodically.
Solution: Add timer support.
|
|
Problem: Missing update to proto file.
Solution: Change the proto file.
|
|
Problem: Passing cookie to a callback is clumsy.
Solution: Change function() to take arguments and return a partial.
|
|
Problem: It is not easy to find out what windows display a buffer.
Solution: Add win_findbuf().
|
|
Problem: Windows cannot be identified.
Solution: Add a unique window number to each window and functions to use it.
|
|
Problem: Cannot generate help tags in all doc directories.
Solution: Make ":helptags ALL" work.
|
|
Problem: Cannot load packages early.
Solution: Add the ":packloadall" command.
|
|
Problem: Missing job_info().
Solution: Implement it.
|
|
Problem: Too much code in eval.c.
Solution: Move job and channel code to channel.c.
|
|
Problem: Cannot re-use a channel for another job.
Solution: Add the "channel" option to job_start().
|
|
Problem: Writing last-but-one line of buffer to a channel isn't implemented
yet.
Solution: Implement it. Fix leaving a swap file behind.
|
|
Problem: Job input from buffer is not implemented.
Solution: Implement it. Add "in-top" and "in-bot" options.
|
|
Problem: Cannot add a pack direcory without loading a plugin.
Solution: Add the :packadd command.
|
|
Problem: Syntax error in rarily used code.
Solution: Fix the mch_rename() declaration. (Ken Takata)
|
|
Problem: Vim hangs when a channel has a callback but isn't referenced.
Solution: Have channel_unref() only return TRUE when the channel was
actually freed.
|
|
Problem: May free a channel when a callback may need to be invoked.
Solution: Keep the channel when refcount is zero.
|
|
Problem: When calling ch_close() the close callback is invoked, even though
the docs say it isn't. (Christian J. Robinson)
Solution: Don't call the close callback.
|
|
Problem: The MS-DOS code does not build.
Solution: Remove the old MS-DOS code.
|
|
Problem: The close-cb option is not implemented yet.
Solution: Implemente close-cb. (Yasuhiro Matsumoto)
|
|
Problem: It is not easy to use a set of plugins and their dependencies.
Solution: Add packages, ":loadopt", 'packpath'.
|
|
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: channel read implementation is incomplete.
Solution: Add ch_read() and options for ch_readraw().
|
|
Problem: Channels don't have a queue for stderr.
Solution: Have a queue for each part of the channel.
|
|
Problem: One more Win16 file remains.
Solution: Delete it.
|
|
Problem: The Win 16 code is not maintained and unused.
Solution: Remove the Win 16 support.
|
|
Problem: Can't remove a callback with ch_setoptions().
Solution: When passing zero or an empty string remove the callback.
|
|
Problem: Job and channel options parsing is scattered.
Solution: Move all option value parsing to get_job_options();
|