anchor.diff:      # generate completion option value
       completions="$line.$column@$kak_timestamp:$candidates"
       # write to Kakoune socket for the buffer that triggered the completion
  -    echo "set buffer=${kak_bufname} completions '$completions'" |
  +    echo "set buffer=${kak_bufname} plugin_completions '$completions'" |
           kak -p ${kak_session}
   ) > /dev/null 2>&1 < /dev/null & }
   -----
  
positive.code: Most of the time, filetype specific completion should be provided by
  external programs.
  
  external completions are provided using the +completions+ option, which
  have the following format.
  
  ----
  line.column[+len]@timestamp:candidate1:candidate2:...
  ----
  
  the first element of this string list specify where and when this completions
  applies, the others are simply completion candidates.
  
  As a completion program may take some time to compute the candidates, it should
  run asynchronously. In order to do that, the following pattern may be used:
  
negative.code: -----
  # Declare the option which will store the temporary filename
  decl str plugin_filename
  # Declare the completion option
  decl str plugin_completions
  # Add plugin_completions to completers for files of good filetype
  hook global BufSetOption filetype=my_filetype %{
      set -add buff completers option=plugin_completions
  }
  %sh{
      # ask Kakoune to write current buffer to temporary file
      filename=$(mktemp -t kak-temp.XXXXXXXX)
  