anchor.diff:                       file,
                        text)
   
  +    let printMsg ty s =
  +      match state.OutputMode with
  +      | Text ->
  +        printfn "%s: %s\n<<EOF>>" ty s
  +      | Json ->
  +        { Kind = ty; Data = s }
  +        |> JsonConvert.SerializeObject
  +        |> Console.WriteLine
   
       // Debug.print "main state is:\nproject: %b\nfiles: %A\nmode: %A"
       //             (Option.isSome state.Project)
  
positive.code:                                     file,
                                      text)
            agent.TriggerParseRequest(opts, full)
            Console.WriteLine("INFO: Background parsing started\n<<EOF>>")
            main { state with Files = Map.add file lines state.Files }
          else
            printfn "ERROR: File '%s' does not exist\n<<EOF>>" file
            main state
  
      | Project file ->
          // Load project file and store in state
          if File.Exists file then
            match ProjectParser.load file with
            | Some p -> Console.WriteLine("DATA: project")
                        for f in ProjectParser.getFiles p do
                          Console.WriteLine(IO.Path.Combine(ProjectParser.getDirectory p, f))
                        Console.WriteLine("<<EOF>>")
                        main { state with Project = Some p }
            | None   -> printfn "ERROR: Project file '%s' is invalid\n<<EOF>>" file
                        main state
          else
            printfn "ERROR: File '%s' does not exist\n<<EOF>>" file
            main state
  
      | Declarations file ->
          let file = Path.GetFullPath file
          if parsed file then
            let decls = agent.GetDeclarations(getoptions file)
            printfn "DATA: declarations"
            for tld in decls do
              let (s1, e1), (s2, e2) = tld.Declaration.Range
              printfn "[%d:%d-%d:%d] %s" e1 s1 e2 s2 tld.Declaration.Name
              for d in tld.Nested do
                let (s1, e1), (s2, e2) = d.Range
                printfn "  - [%d:%d-%d:%d] %s" e1 s1 e2 s2 d.Name
            printfn "<<EOF>>"
          main state
  
      | PosCommand(cmd, file, ((line, col) as pos), timeout) ->
  
negative.code:   {
      HelpText: Map<String,String>
    }
  
  /// Provides an easy access to F# IntelliSense service
  type internal IntelliSenseAgent() =
  