anchor.diff:        // We are in a project - construct options using current properties
         | Some proj, _ ->
           let projFile = ProjectParser.getFileName proj
  -         //Debug.WriteLine (sprintf "CheckOptions: Creating for file '%s' in project '%s'" fileName projFile)
           let files = ProjectParser.getFiles proj
           let args = ProjectParser.getOptions proj
   
  
positive.code:     agent.Post(TriggerParseRequest(opts, full))
  
    /// Invokes dot-completion request and writes information to the standard output
    member x.DoCompletion(opts, ((line, column) as pos), lineStr, time) =
      Debug.print "DoCompletion request with options: %O" opts
      try
        try
          // Get the long identifier before the current location
          // 'residue' is the part after the last dot and 'longName' is before
          // e.g.  System.Console.Wri  --> "Wri", [ "System"; "Console"; ]
          let lookBack = Parsing.createBackStringReader lineStr (column - 1)
          let residue, longName =
            lookBack |> Parsing.getFirst Parsing.parseBackIdentWithResidue
  
          // Try to get type information & run the request
          let op = agent.PostAndAsyncReply(fun r -> GetTypeCheckInfo(opts, time, r))
          let info = Async.RunSynchronously(op, ?timeout = time)
          match info with
          | Some(info) ->
              // Get items & generate output
              let decls = info.GetDeclarations(pos, lineStr, (longName, residue), 0, defaultArg time 1000)
              for d in decls.Items do Console.WriteLine(d.Name)
          | None -> ()
        with :? OperationCanceledException -> ()
      finally Console.WriteLine("<<EOF>>")
  
  
  
negative.code:           return! loop errors }
      loop [||] )
  
    // Copy-paste from monodevelop binding LanguageService.fs and modified
    member x.GetCheckerOptions(fileName, source, proj:Option<ProjectParser.ProjectResolver>) =
      let ext = Path.GetExtension(fileName)
  