title: Make zsh complete arguments from a file
body: <p><code>zsh</code> is great but its completion system is very diverse. And the documentation lacks good examples. Is there a template for completing for a specific application. The completion would get its match data from a file, separated by newlines?</p>
  
  <p>I tried modifying an older example of mine that takes match data "live":</p>
  
  <pre><code>~ % cat .zsh/completers/_jazzup 
  #compdef jazz_up
  _arguments "2: :(`mpc lsplaylists|sed -e 's# #\\\\ #g'`)"
  </code></pre>
  
  <p>I could supply <code>cat my_file</code> there instead of <code>mpc</code> invocation and so on but would there be a more elegant way to do this simple task? And that completion there is placement-specific: can you provide an example where zsh would attempt to complete at any point after the program name is recognized?</p>
  
  <p>The match data will have whitespaces and so on, the completion should escape the WS. Example of that:</p>
  
  <pre><code>Foo bar
  Barbaric
  Get it (42)
  </code></pre>
  
  <p>Now if that completion would be configured for a command <code>Say</code>, we should get this kind of behaviour out of <code>zsh</code>:</p>
  
  <pre><code>$ Say Fo&lt;TAB&gt;
  $ Say Foo\ bar
  $ Say Ge&lt;TAB&gt;
  $ Say Get\ it\ \(42\)
  </code></pre>