On 1 July 2017, Yegappan Lakshmanan <[email protected]> wrote:
> Hi all,
>
> When one plugin is asynchronously updating a quickfix list, currently it
> is not possible for another plugin to update another quickfix list
> synchronously or asynchronously using the cexpr, cfile, and other
> commands. The setqflist() function can update any quickfix list in the
> stack. But this function currently doesn't support parsing output using
> 'errorformat'.
>
> For example, let us say one plugin asynchronously updates the quickfix
> list with a build tool output. Now if the user runs a query command to
> create and update another quickfix list, then both the plugins will end
> up updating the same quickfix list.
What do you mean by "asynchronously" in this context? Vim is single
threaded, as far as I can tell there is no way to run f.i. two cexpr
commands at the same time. Do you have an ecxample of code that fails
this way?
/lcd
> This is because the commands like cexpr, cfile, etc. use the
> qf_init_ext() function to parse the output and add entries to the
> quickfix list. The qf_init_ext() function supports updating only the
> last quickfix list.
>
> This problem can be solved by changing the qf_init_ext() function to
> operate on any quickfix list in the stack. But this function currently
> saves state information across multiple invocations to support
> directory/file stack and multi-line error output. This state information
> is stored in qf_info_S (entire quickfix stack) instead of qf_list_T (per
> list). This state information needs to be stored per quickfix list by
> moving to qf_list_T. Does anyone see any issues with this or any other
> suggestions?
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.