anchor.diff:  have the following format.
   
   ----
  -line.column[+len]@timestamp:candidate1|desc1|menu1:candidate2|desc2|menu2:...
  +line.column[+len]@timestamp candidate1|desc1|menu1 candidate2|desc2|menu2 ...
   ----
   
   the first element of this string list specify where and when this completion
  
positive.code: ----
  
  For asynchronous operations, the Kakoune Unix stream socket can be used. This
  is the same socket that Kakoune clients connect to. It is available through
  +kak_session+ environment variable: the socket is
  +/tmp/kakoune/${username}/${kak_session}+
  
  
negative.code:    client's context the command should be evaluated. A temporary
     context is used, which does not have any user interface, so if we want
     to interact with the user, we need to use the +eval+ command, with
     its +-client+ option to send commands to a specific client.
   * For the command to run asynchronously, we wrap it in a sub shell
     with braces, redirect its +std{in,err,out}+ to +/dev/null+, and
     run it in background with +&+. Using this pattern, the shell does
     not wait for this sub shell to finish before quitting.
  
  